为什么我的容器继续建设同一层?
下面的容器目前未能在第二轮之后。在尝试调试它,我必须再次运行。
FROM node:10-alpine
# Create app directory
WORKDIR /usr/src/app
# Copy app
COPY . .
# USER root
# install packages
RUN apk --no-cache --virtual build-dependencies add \
git \
python \
make \
g++ \
&& npm config set user 0 \
&& npm config set unsafe-perm true \
&& npm i -g wait-on concurrently [email protected]\
&& npm install \
&& apk del build-dependencies
RUN truffle compile --all // FAILS HERE
# Expose the right ports, the commands below are irrelevant when using a docker-compose file.
EXPOSE 3000
CMD ["npm", "run", "server"]
每当我重建容器,它开始从第一次运行,这使得该过程较长接管。
我泊坞窗的理解是,在集装箱层应该被缓存,如果一个文件只更改重建?
我希望在这个指针。
回答如下:在一个Dockerfile每个指令导致的图像层(除少数例外),和图像层被用作高速缓存时生成。但是,一旦一个层被无效,所有后续层必须重建。
在您的例子,如果在差异COPY . .
指令的结果,那么下面RUN apk ...
指令也将失效,从而导致无法重新运行。
我建议安装的高山包你在你的项目中复制文件之前,然后该干嘛NPM安装后。
为什么我的容器继续建设同一层?
下面的容器目前未能在第二轮之后。在尝试调试它,我必须再次运行。
FROM node:10-alpine
# Create app directory
WORKDIR /usr/src/app
# Copy app
COPY . .
# USER root
# install packages
RUN apk --no-cache --virtual build-dependencies add \
git \
python \
make \
g++ \
&& npm config set user 0 \
&& npm config set unsafe-perm true \
&& npm i -g wait-on concurrently [email protected]\
&& npm install \
&& apk del build-dependencies
RUN truffle compile --all // FAILS HERE
# Expose the right ports, the commands below are irrelevant when using a docker-compose file.
EXPOSE 3000
CMD ["npm", "run", "server"]
每当我重建容器,它开始从第一次运行,这使得该过程较长接管。
我泊坞窗的理解是,在集装箱层应该被缓存,如果一个文件只更改重建?
我希望在这个指针。
回答如下:在一个Dockerfile每个指令导致的图像层(除少数例外),和图像层被用作高速缓存时生成。但是,一旦一个层被无效,所有后续层必须重建。
在您的例子,如果在差异COPY . .
指令的结果,那么下面RUN apk ...
指令也将失效,从而导致无法重新运行。
我建议安装的高山包你在你的项目中复制文件之前,然后该干嘛NPM安装后。