Node.js Can';t使Docker节点应用程序使用最新版本的node/npm
应用程序的早期版本使用了旧版本的node和npm: 节点v6.9.2 npm v3.10.9 Dockerfile的内容如下:Node.js Can';t使Docker节点应用程序使用最新版本的node/npm,node.js,docker,npm,Node.js,Docker,Npm,应用程序的早期版本使用了旧版本的node和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"] from node:8.11.2 ENV ENV p
from netsblox/base
ADD . /netsblox
WORKDIR /netsblox
RUN npm install -g
RUN mkdir -p src/client/dist
EXPOSE 8080
CMD ["npm", "start"]
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
Dockerfile.base的内容如下:
from netsblox/base
ADD . /netsblox
WORKDIR /netsblox
RUN npm install -g
RUN mkdir -p src/client/dist
EXPOSE 8080
CMD ["npm", "start"]
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
但是当我跑的时候
docker build
它仍然安装节点v6.9.2 npm v3.10,日志记录如下:
npm信息使用npm@3.10.9
npm信息使用node@v6.9.2
我是否也应该在其他地方编辑node/npm版本?
netsblox/base:latest
使用nodejs 6.9.2(docker run netsblox/base:latest node--version
)
docker build.
:将读取Dockerfile
文件并进行构建。此Dockerfile中的FROM
指令的目标是netsblox/base:latest
。使用的节点版本是6.9.2,这是有道理的
要解决此问题,请使用Dockerfile.base
文件重新生成netsblox/base:latest
映像:
docker build -t netsblox/base:latest - < Dockerfile.base
docker build-t netsblox/base:latest-
然后您可以使用docker build重新生成映像。,它应该使用更新版本的
netsblox/base:latest
不要忘记在docker Hub上推送更新的映像,否则在其他计算机上可能会出现类似问题(如持续集成)。我的回答只对你的问题有帮助