Docker运行和卷澄清
下面是我的dockerfile,我在copy命令中复制js文件,然后设置工作目录,然后是volume和run命令。下面是我的dockerfile 1) 我知道当容器第一次初始化时,由于在同一位置创建卷,节点_模块(由于运行npm安装而创建)正在获得wipedoff 我的问题是,为什么我在步骤3中复制的app.js没有被删除,因为它也与卷位于同一路径上Docker运行和卷澄清,docker,Docker,下面是我的dockerfile,我在copy命令中复制js文件,然后设置工作目录,然后是volume和run命令。下面是我的dockerfile 1) 我知道当容器第一次初始化时,由于在同一位置创建卷,节点_模块(由于运行npm安装而创建)正在获得wipedoff 我的问题是,为什么我在步骤3中复制的app.js没有被删除,因为它也与卷位于同一路径上 FROM node:latest ENV NODE_ENV=production ENV PORT=3000 COPY . /app WORK
FROM node:latest
ENV NODE_ENV=production
ENV PORT=3000
COPY . /app
WORKDIR /app
VOLUME ["/app"]
RUN npm install
EXPOSE $PORT
ENTRYPOINT ["node","app.js"]
Q:为什么我的app.js(我在步骤3中复制的)没有被删除,而
节点模块
被删除
A:如docker文档卷部分所述
引用:
从Dockerfile中更改卷:
如果有任何构建步骤
声明后更改卷内的数据,那些
更改将被放弃。
参考:可能相关:两个备注:(i)关于卷,在Dockerfile中使用
卷
命令实际上是一种不好的做法,请参见:;最好改用(或docker compose.yml
文件中的适当选项);(ii)一次性复制所有文件(COPY./app
)会妨碍Docker的缓存机制;你可以看看完美!我得到了答案