该应用程序的先前版本使用的是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"]
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
但是当我运行
docker build。
它仍会安装节点v6.9.2 npm v3.10,并记录在下面:
使用npm@3.10.9的npm信息
使用node@v6.9.2的npm信息
我还应该在其他地方编辑node / npm版本吗?
答案 0 :(得分:1)
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
要解决此问题,请使用netsblox/base:latest
文件重建Dockerfile.base
图像:
docker build -t netsblox/base:latest - < Dockerfile.base
然后您可以使用docker build .
重建图像,它应该使用netsblox/base:latest
的更新版本