Не удается заставить приложение узла Docker использовать последнюю версию узла / npm - PullRequest
0 голосов
/ 26 февраля 2019

Предыдущая версия приложения использовала старую версию узла и npm:

узел v6.9.2 npm v3.10.9

Dockerfile выглядит следующим образом:

from netsblox/base

ADD . /netsblox
WORKDIR /netsblox
RUN npm install -g

RUN mkdir -p src/client/dist

EXPOSE 8080

CMD ["npm", "start"]

Dockerfile.base выглядит следующим образом:

from node:8.11.2

ENV ENV production
ENV DEBUG netsblox*
ENV NETSBLOX_BLOB_DIR /blob-data

RUN apt-get update && apt-get install build-essential libgd-dev libcairo2-dev libcairo2-dev libpango1.0-dev libgd2-dev -y

RUN echo compile and install gnuplot

RUN mkdir /tmp/gnuInstall -p && cd /tmp/gnuInstall && \
wget https://downloads.sourceforge.net/project/gnuplot/gnuplot/5.2.0/gnuplot-5.2.0.tar.gz && tar -xzvf gnuplot-5.2.0.tar.gz && \
cd gnuplot-5.2.0 && ./configure && make && make install && \
cd ../.. && rm -rf gnuInstall

RUN echo finished installing gnuplot

WORKDIR /netsblox

Однако должно быть так, когда я запускаю

сборку докера.

он все еще устанавливает узел v6.9.2 npm v3.10, ведя журнал ниже:

npm info используя npm@3.10.9

npm info используя node@v6.9.2

Должен ли я редактировать версии node / npm в других местах?

1 Ответ

0 голосов
/ 26 февраля 2019

netsblox/base:latest использует nodejs 6.9.2 (docker run netsblox/base:latest node --version)

docker build .: прочитает файл Dockerfile и создаст его.Инструкция FROM в этом Dockerfile предназначена для netsblox/base:latest.В этом случае имеет смысл использовать версию узла 6.9.2

. Чтобы решить эту проблему, перестройте образ netsblox/base:latest, используя файл Dockerfile.base:

docker build -t netsblox/base:latest - < Dockerfile.base

И затем вы можете перестроитьваше изображение, используя docker build ., должно использовать обновленную версию netsblox/base:latest

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...