如何在 Dockerfile 中为 ruby:3.0.1-alpine3.13 图像将节点版本设置为 16.x
How to set node version to 16.x for ruby:3.0.1-alpine3.13 image in Dockerfile
以下是我为其中一个应用程序设置的 Dockerfile
:
FROM ruby:3.0.1-alpine3.13
ENV APP_PATH /var/app
ENV BUNDLE_VERSION 2.2.17
ENV RAILS_PORT 3000
ENV LAUNCHY_DRY_RUN true
ENV BROWSER /dev/null
COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
# install dependencies for M1 Macs
RUN apk add --update --no-cache curl py-pip python2 python3
# install dependencies for application
RUN apk -U add --no-cache \
make \
gcc \
build-base \
git \
postgresql-dev \
postgresql-client \
libxml2-dev \
libxslt-dev \
nodejs \
npm \
yarn \
tzdata \
&& rm -rf /var/cache/apk/* \
&& mkdir -p $APP_PATH
RUN gem install bundler --version "$BUNDLE_VERSION"
# navigate to app directory
WORKDIR $APP_PATH
COPY Gemfile Gemfile.lock ./
COPY package.json yarn.lock ./
RUN bundle check || bundle install --jobs=8
RUN yarn install --check-files
COPY . .
EXPOSE $RAILS_PORT
这默认将节点版本设置为 14.17.4
。这曾经在我将 package.json 中的节点引擎值设置为 14.x
时起作用,但由于我已将节点引擎值更改为 16.x
我在尝试使用此 Dockerfile 构建容器。
我已经搜索并尝试了各种方法来使用 nvm、n 等在 Dockerfile 中设置节点版本,但无济于事。
是否有简单的方法来设置和更改此节点版本?
谢谢
要在 Alpine 3.14 上安装 Node.js 16.x,请安装 nodejs-current
软件包:
https://pkgs.alpinelinux.org/package/v3.14/community/x86_64/nodejs-current
只需将包裹列表中的 nodejs
替换为 nodejs-current
。
当前 nodejs-current
版本为 16.6.0-r0.
以下是我为其中一个应用程序设置的 Dockerfile
:
FROM ruby:3.0.1-alpine3.13
ENV APP_PATH /var/app
ENV BUNDLE_VERSION 2.2.17
ENV RAILS_PORT 3000
ENV LAUNCHY_DRY_RUN true
ENV BROWSER /dev/null
COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
# install dependencies for M1 Macs
RUN apk add --update --no-cache curl py-pip python2 python3
# install dependencies for application
RUN apk -U add --no-cache \
make \
gcc \
build-base \
git \
postgresql-dev \
postgresql-client \
libxml2-dev \
libxslt-dev \
nodejs \
npm \
yarn \
tzdata \
&& rm -rf /var/cache/apk/* \
&& mkdir -p $APP_PATH
RUN gem install bundler --version "$BUNDLE_VERSION"
# navigate to app directory
WORKDIR $APP_PATH
COPY Gemfile Gemfile.lock ./
COPY package.json yarn.lock ./
RUN bundle check || bundle install --jobs=8
RUN yarn install --check-files
COPY . .
EXPOSE $RAILS_PORT
这默认将节点版本设置为 14.17.4
。这曾经在我将 package.json 中的节点引擎值设置为 14.x
时起作用,但由于我已将节点引擎值更改为 16.x
我在尝试使用此 Dockerfile 构建容器。
我已经搜索并尝试了各种方法来使用 nvm、n 等在 Dockerfile 中设置节点版本,但无济于事。
是否有简单的方法来设置和更改此节点版本?
谢谢
要在 Alpine 3.14 上安装 Node.js 16.x,请安装 nodejs-current
软件包:
https://pkgs.alpinelinux.org/package/v3.14/community/x86_64/nodejs-current
只需将包裹列表中的 nodejs
替换为 nodejs-current
。
当前 nodejs-current
版本为 16.6.0-r0.