This repository contains Docker images for the volta.sh toolchain.
Either build the image or pull it from the repository:
# Building
docker build . --tag volta.sh:latest
# Pulling
docker pull volta.sh:latest
You can then run it with:
docker run -d volta.sh:latest
In order to customize your image, you can pass arguments to docker before the building process.
The user created inside the container. volta
by default.
docker build --build-arg="VOLTA_USER=jotaro" .
The default node
version installed when starting the image. latest
by default.
# This will run volta install node@16.
docker run -d -e "NODE_VERSION=16" nicoolangood/volta.sh
The default package manager used inside the container.
Possible values are npm
, yarn
and pnpm
, npm
by default.
# This will run volta install yarn.
docker run -d -e "PACKAGE_MANAGER=yarn" nicoolangood/volta.sh
This enables the pnpm
support. Its value is set to 1
by default.
You can find more information in the volta pnpm support page.
This runs the default package manager if set to 1
.
If not, sleep infinity
is run.
Its value is set to 0
by default.
Before running the package manager, it will install dependencies as such:
# If pnpm is the default package manager
pnpm i
pnpm $@
Note that, by default, enabling this feature doesn't do much. It must be coupled with CMD
override to
pass arguments to the package manager:
# ...image customization
CMD ["start"]
will result to:
# If pnpm is the default package manager
pnpm i
pnpm start
This variable appends arguments during the dependencies installation.
It could be used to install only production dependencies:
docker build --build-arg="PACKAGE_MANAGER=yarn" .
docker run -d -e PACKAGE_MANAGER_INSTALL_ARGS='--production' volta.sh:latest
will result to:
yarn install --production
yarn [some command]
The entrypoint script is located in /entrypoint.sh
. It can be replaced to personalize container start behavior.
Here is an example with docker compose
:
services:
web-app:
image: volta.sh:latest
volume:
./my-entrypoint.sh:/entrypoint.sh