nvm in Docker and CI/CD
Configure nvm for containerized and CI/CD environments where shells run non-interactively.
Workflow
-
Install nvm in a Dockerfile:
ENV NVM_DIR=/usr/local/nvm ENV NODE_VERSION=20.11.0 RUN mkdir -p $NVM_DIR \ && curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash \ && . $NVM_DIR/nvm.sh \ && nvm install $NODE_VERSION \ && nvm alias default $NODE_VERSION # Make nvm available in non-interactive shells ENV BASH_ENV="$NVM_DIR/nvm.sh" -
Load nvm in CI/CD jobs (e.g., GitHub Actions):
steps: - run: | export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" nvm install 20 nvm use 20 node -v -
Validate nvm availability in the container or pipeline:
docker run --rm my-image bash -c "nvm --version && node -v"
Note: Base installation steps are in nvm-install. This skill targets container and CI usage only.
Example file map
examples/install-docker.md- Dockerfile nvm installationexamples/install-docker-cicd.md- CI/CD pipeline configurationexamples/docker-dev.md- Development container setup
Keywords
docker, ci, bash_env, entrypoint, non-interactive shell, nvm in container, GitHub Actions