以前Alpine Linux上でVoltaを動かそうとして挫折した わけですが、じゃあAlpine Linux以外のベースイメージを使ったDockerコンテナでVoltaを動かすにはどうしたらいいんだい、ということでDockerfileを作ってみました。
今回はおとなしくDebianをベースイメージにして、Voltaが使える環境を作ったうえでpackage.jsonでバージョン指定したnodeとyarnをインストールする、という内容になっています。
以前Alpine Linux上でVoltaを動かそうとして挫折した わけですが、じゃあAlpine Linux以外のベースイメージを使ったDockerコンテナでVoltaを動かすにはどうしたらいいんだい、ということでDockerfileを作ってみました。
今回はおとなしくDebianをベースイメージにして、Voltaが使える環境を作ったうえでpackage.jsonでバージョン指定したnodeとyarnをインストールする、という内容になっています。
# syntax=docker/dockerfile:1-labs | |
FROM debian:stable-slim | |
WORKDIR /app | |
RUN <<END_OF_RUN | |
apt-get update | |
apt-get install -y --no-install-recommends \ | |
curl \ | |
ca-certificates | |
apt-get clean | |
rm -rf /var/lib/apt/lists/* | |
curl https://get.volta.sh | bash | |
END_OF_RUN | |
COPY <<END_OF_COPY /app/package.json | |
{ | |
"name": "sample", | |
"volta": { | |
"node": "18.13.0", | |
"yarn": "3.3.1" | |
} | |
} | |
END_OF_COPY | |
SHELL ["/bin/bash", "-c"] | |
RUN <<END_OF_RUN | |
VOLTA_HOME=${HOME}/.volta | |
PATH=${VOLTA_HOME}/bin:${PATH} | |
for package in 'node' 'yarn'; do | |
volta install ${package} | |
done | |
END_OF_RUN |