#node.js #docker #dockerfile #alpine
Вопрос:
Ниже приведены 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
amp;amp; rm -rf /var/cache/apk/*
amp;amp; 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.
Я искал и пробовал различные подходы для установки версии узла в файле Dockerfile с использованием nvm, n и т. Д., Но Безрезультатно.
Есть ли простой способ установить и изменить версию этого узла?
Спасибо
Комментарии:
1. В чем заключается ошибка, которую вы получаете?
2.
#15 1.335 yarn install v1.22.10 #15 1.749 [1/5] Validating package.json... #15 1.757 error @: The engine "node" is incompatible with this module. Expected version "16.x". Got "14.17.4" #15 1.776 error Found incompatible module.
Ответ №1:
Для установки Node.js 16.x в Alpine 3.14 установите nodejs-current
пакет:
https://pkgs.alpinelinux.org/package/v3.14/community/x86_64/nodejs-current
Просто замените nodejs
на nodejs-current
в вашем списке пакетов.
Текущая nodejs-current
версия-16.6.0-r0.