name: nvm-docker-ci description: "Install and configure nvm in Docker containers and CI/CD pipelines, including non-interactive shell loading via BASH_ENV or ENTRYPOINT. Use when the user asks about nvm in Docker, CI/CD nvm setup, GitHub Actions node version management, or troubleshooting nvm in non-interactive shells."
Configure nvm for containerized and CI/CD environments where shells run non-interactively.
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.
examples/install-docker.md - Dockerfile nvm installationexamples/install-docker-cicd.md - CI/CD pipeline configurationexamples/docker-dev.md - Development container setupdocker, ci, bash_env, entrypoint, non-interactive shell, nvm in container, GitHub Actions