Skip to content

Instantly share code, notes, and snippets.

@denvernine
Created January 16, 2023 14:20
Show Gist options
  • Save denvernine/9004aa1e4e000b7f8feceb1b3ac795e5 to your computer and use it in GitHub Desktop.
Save denvernine/9004aa1e4e000b7f8feceb1b3ac795e5 to your computer and use it in GitHub Desktop.
Volta on Docker

以前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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment