docs: Update documentation for modernization changes
- Update readme.hints.md with Ubuntu 24.04 upgrade notes, package changes, MongoDB 8.0 details, and corrected NVM/Node version references - Update readme.md with Ubuntu 24.04 tag description and adjusted image sizes
This commit is contained in:
@@ -84,7 +84,7 @@ RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selectio
|
|||||||
&& rm -r /var/lib/apt/lists/*
|
&& rm -r /var/lib/apt/lists/*
|
||||||
|
|
||||||
# Install nvm with node and npm
|
# Install nvm with node and npm
|
||||||
RUN curl https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
|
RUN mkdir -p $NVM_DIR && curl https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
|
||||||
|
|
||||||
# Make nvm available globally in all bash shells (interactive + non-interactive)
|
# Make nvm available globally in all bash shells (interactive + non-interactive)
|
||||||
# IMPORTANT: Prepend to bashrc, before the "[ -z "$PS1" ] && return" line
|
# IMPORTANT: Prepend to bashrc, before the "[ -z "$PS1" ] && return" line
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# Technical Implementation Notes
|
# Technical Implementation Notes
|
||||||
|
|
||||||
## NVM Support (v5.0.147)
|
## NVM Support (v5.2.0)
|
||||||
|
|
||||||
### How NVM Works in This Image
|
### How NVM Works in This Image
|
||||||
|
|
||||||
@@ -30,7 +30,7 @@ The image provides full nvm support in three contexts:
|
|||||||
- Critical for CI/CD workflow support
|
- Critical for CI/CD workflow support
|
||||||
|
|
||||||
#### 4. ENV PATH Fallback
|
#### 4. ENV PATH Fallback
|
||||||
- Maintains `ENV PATH` pointing to default Node v20.12.2
|
- Maintains `ENV PATH` pointing to default Node v24.13.0
|
||||||
- Ensures non-bash shells (sh, dash) still have node access
|
- Ensures non-bash shells (sh, dash) still have node access
|
||||||
- Backward compatible with existing usage
|
- Backward compatible with existing usage
|
||||||
|
|
||||||
@@ -74,10 +74,23 @@ RUN node --version # Now shows v18.x.x
|
|||||||
|
|
||||||
### Maintenance Notes
|
### Maintenance Notes
|
||||||
|
|
||||||
**If updating nvm version**: Modify line 86 in Dockerfile
|
**If updating nvm version**: Modify line 87 in Dockerfile (currently NVM v0.40.1)
|
||||||
|
|
||||||
**If base image changes**: Verify /etc/bash.bashrc structure still has early return pattern
|
**If base image changes**: Verify /etc/bash.bashrc structure still has early return pattern
|
||||||
|
|
||||||
|
## Ubuntu 24.04 Upgrade Notes
|
||||||
|
|
||||||
|
- Base image upgraded from Ubuntu 20.04 to 24.04
|
||||||
|
- Python 2 removed (EOL since 2020), Python 3 retained
|
||||||
|
- Package changes for 24.04 compatibility:
|
||||||
|
- `gconf-service` and `libgconf-2-4` removed (deprecated GConf)
|
||||||
|
- `libgcc1` replaced with `libgcc-s1`
|
||||||
|
- `libappindicator1` replaced with `libayatana-appindicator3-1`
|
||||||
|
- `libasound2` replaced with `libasound2t64` (t64 transition)
|
||||||
|
- `libgbm1` and `libatk-bridge2.0-0` added for Chrome/Puppeteer
|
||||||
|
- MongoDB upgraded from 4.4 to 8.0 (uses modern gpg keyring approach instead of deprecated apt-key)
|
||||||
|
- Node.js upgraded to v24.13.0 LTS (Krypton, supported until April 2028)
|
||||||
|
|
||||||
**If ENTRYPOINT conflicts**: Users can override with `--entrypoint` flag:
|
**If ENTRYPOINT conflicts**: Users can override with `--entrypoint` flag:
|
||||||
```bash
|
```bash
|
||||||
docker run --entrypoint /bin/bash image -c "commands"
|
docker run --entrypoint /bin/bash image -c "commands"
|
||||||
|
|||||||
40
readme.md
40
readme.md
@@ -25,12 +25,10 @@ Perfect for complex builds requiring native dependencies and maximum compatibili
|
|||||||
|
|
||||||
| Tag | Description | Use Case |
|
| Tag | Description | Use Case |
|
||||||
|-----|-------------|----------|
|
|-----|-------------|----------|
|
||||||
| `:latest` / `:lts` | Node.js LTS with NVM | General purpose, production builds |
|
| `:latest` | Node.js LTS with NVM (Ubuntu 24.04) | General purpose, production builds |
|
||||||
| `:stable` | Node.js stable release | Latest stable features |
|
| `:lts` | Based on latest | Explicit LTS naming |
|
||||||
| `:npmci` | With npmci preinstalled | CI/CD pipelines |
|
| `:npmci` | With npmci preinstalled | CI/CD pipelines |
|
||||||
| `:npmts` | npmci + npmts | TypeScript projects |
|
| `:stableinit` | Stable initialization base | Init scripts |
|
||||||
| `:npmpage` | npmci + npmts + npmpage | Static site generation |
|
|
||||||
| `:mongo` | npmci + npmts + MongoDB | Full-stack development |
|
|
||||||
|
|
||||||
### Alpine-Based Images (Lightweight & Multi-Arch) ⚡
|
### Alpine-Based Images (Lightweight & Multi-Arch) ⚡
|
||||||
|
|
||||||
@@ -41,6 +39,7 @@ Perfect for complex builds requiring native dependencies and maximum compatibili
|
|||||||
| `:alpine-node` | Node.js LTS + NVM + pnpm | ~200MB | amd64, arm64 |
|
| `:alpine-node` | Node.js LTS + NVM + pnpm | ~200MB | amd64, arm64 |
|
||||||
| `:alpine-deno` | Node.js LTS + NVM + Deno | ~180MB | amd64, arm64 |
|
| `:alpine-deno` | Node.js LTS + NVM + Deno | ~180MB | amd64, arm64 |
|
||||||
| `:alpine-bun` | Node.js LTS + NVM + Bun | ~150MB | amd64, arm64 |
|
| `:alpine-bun` | Node.js LTS + NVM + Bun | ~150MB | amd64, arm64 |
|
||||||
|
| `:alpine-npmci` | Alpine Node + npmci + build tools | ~250MB | amd64, arm64 |
|
||||||
|
|
||||||
**✨ Multi-architecture magic:** Docker automatically selects the right image for your platform. Build on Mac, deploy on Linux servers—same Dockerfile, native speed everywhere.
|
**✨ Multi-architecture magic:** Docker automatically selects the right image for your platform. Build on Mac, deploy on Linux servers—same Dockerfile, native speed everywhere.
|
||||||
|
|
||||||
@@ -260,31 +259,34 @@ nvm use 18
|
|||||||
|
|
||||||
## 🏗️ Building Multi-Architecture Images
|
## 🏗️ Building Multi-Architecture Images
|
||||||
|
|
||||||
For teams building custom images:
|
This project uses [@git.zone/tsdocker](https://code.foss.global/git.zone/tsdocker) for Docker image management.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Clone the repo
|
# Install tsdocker
|
||||||
git clone https://github.com/HostToday/ht-docker-node.git
|
pnpm install -g @git.zone/tsdocker@latest
|
||||||
cd ht-docker-node
|
|
||||||
|
|
||||||
# Build Alpine images (native platform for local testing)
|
# List all discovered Dockerfiles and their tags
|
||||||
chmod +x build-alpine-images.sh
|
tsdocker list
|
||||||
./build-alpine-images.sh
|
|
||||||
|
|
||||||
# Test the built images
|
# Build all images (multi-arch: amd64 + arm64)
|
||||||
chmod +x test-alpine-images.sh
|
tsdocker build
|
||||||
./test-alpine-images.sh
|
|
||||||
|
# Test all images
|
||||||
|
tsdocker test
|
||||||
|
|
||||||
|
# Push to a specific registry
|
||||||
|
tsdocker push code.foss.global
|
||||||
```
|
```
|
||||||
|
|
||||||
### Production Multi-Arch Builds
|
### Manual Builds
|
||||||
|
|
||||||
For publishing to registries:
|
For building individual images manually:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Build for both amd64 and arm64, push to registry
|
# Build for both amd64 and arm64, push to registry
|
||||||
docker buildx build \
|
docker buildx build \
|
||||||
--platform linux/amd64,linux/arm64 \
|
--platform linux/amd64,linux/arm64 \
|
||||||
-f Dockerfile_alpine_node \
|
-f Dockerfile_alpine-node \
|
||||||
-t your-registry/your-image:alpine-node \
|
-t your-registry/your-image:alpine-node \
|
||||||
--push \
|
--push \
|
||||||
.
|
.
|
||||||
@@ -463,7 +465,7 @@ USER node
|
|||||||
|
|
||||||
| Feature | Ubuntu `:latest` | Alpine `:alpine-node` |
|
| Feature | Ubuntu `:latest` | Alpine `:alpine-node` |
|
||||||
|---------|------------------|----------------------|
|
|---------|------------------|----------------------|
|
||||||
| Base Size | ~800MB | ~200MB |
|
| Base Size | ~900MB | ~200MB |
|
||||||
| Build Tools | ✅ Full | ⚠️ Install separately |
|
| Build Tools | ✅ Full | ⚠️ Install separately |
|
||||||
| Compatibility | ✅ Maximum | ✅ Good (musl) |
|
| Compatibility | ✅ Maximum | ✅ Good (musl) |
|
||||||
| Multi-arch | ❌ amd64 only | ✅ amd64, arm64 |
|
| Multi-arch | ❌ amd64 only | ✅ amd64, arm64 |
|
||||||
|
|||||||
Reference in New Issue
Block a user