docs(nvm): Document nvm usage in Dockerfiles and CI/CD workflows

- Add comprehensive NVM usage section to README
- Document Dockerfile RUN command usage
- Document CI/CD workflow integration
- Explain nvm vs npmci comparison
- Add technical implementation notes to readme.hints.md
- Update changelog with v5.0.147 feature details

Includes:
- Direct nvm usage examples for Dockerfiles
- CI/CD workflow YAML examples
- Version persistence behavior documentation
- Multi-version testing examples
- Technical architecture details
- Maintenance guidelines
This commit is contained in:
2025-10-26 10:36:05 +00:00
parent c6ba400214
commit 3aea4a70ee
3 changed files with 156 additions and 1 deletions

View File

@@ -41,6 +41,65 @@ RUN npmci install 14.17.0
In this example, `npmci` installs Node.js version `14.17.0` and sets it as the default.
### Using NVM in Dockerfiles
The base image includes **nvm (Node Version Manager)** for flexible Node.js version management. Use nvm commands directly in Dockerfile RUN statements without any sourcing required:
```dockerfile
FROM registry.gitlab.com/hosttoday/ht-docker-node:latest
# Use nvm directly - no sourcing needed
RUN nvm install 18.20.0
RUN nvm use 18 && npm install
# Or chain commands
RUN nvm install 19.0.0 && nvm use 19 && npm ci
```
**Important**: Each RUN command is a separate shell. To persist version changes across RUN commands, set a new default:
```dockerfile
RUN nvm install 18.20.0 && nvm alias default 18
# Subsequent RUN commands will use v18 by default
```
### Using NVM in CI/CD Workflows
NVM is automatically available in CI/CD workflow scripts when using `bash -c`:
```yaml
jobs:
build:
runs-on: ubuntu-latest
container:
image: registry.gitlab.com/hosttoday/ht-docker-node:latest
steps:
- name: Use specific Node version
run: |
nvm install 18.20.0
nvm use 18
npm install
npm test
- name: Test multiple versions
run: |
for version in 16 18 20; do
nvm install $version
nvm use $version
npm test
done
```
### NVM vs npmci
Both tools are available in the image:
- **nvm**: Standard Node version manager, works in Dockerfiles and CI/CD workflows
- **npmci**: CI-focused wrapper with additional shipzone.io features
Choose based on your preference - they work together seamlessly.
### Custom Dockerfile with `npmci` and your Node.js App
You can create a custom Dockerfile for your Node.js application using the `:npmci` flavour: