为什么在 dockerfile 中使用复制两次?
why using copy two times in dockerfile?
我正在尝试创建 Dockerfile
,然后 运行 和 docker-compose.yml
我的Dockerfile
如下
FROM node:12
WORKDIR /usr/src/app
COPY ["package*.json", "./"]
RUN yarn install
COPY . .
CMD yarn develop
它工作得很好,我想知道的是,为什么我需要 运行 COPY 两次才能工作?当我看一些教程让它工作时,然后回到文件试图更多地理解命令。我认为有 2 个 COPY
,我以为我不小心输入了它,所以我删除了第二个 COPY . .
但后来我想,如果我这样做,再次构建,那么 docker-compose up
将不再起作用.我需要保留第二个 COPY . .
这是什么原因?
提前感谢您帮助澄清
只有当package.json改变时才会执行npm install
。这是好的做法。但是,如果您愿意,可以将 COPY ["package*.json", "./"]
替换为 COPY . .
并删除底部 COPY . .
。因此,每当您在 src 文件中进行代码更改时,这将执行 npm install
。这是一种不好的做法。
我正在尝试创建 Dockerfile
,然后 运行 和 docker-compose.yml
我的Dockerfile
如下
FROM node:12
WORKDIR /usr/src/app
COPY ["package*.json", "./"]
RUN yarn install
COPY . .
CMD yarn develop
它工作得很好,我想知道的是,为什么我需要 运行 COPY 两次才能工作?当我看一些教程让它工作时,然后回到文件试图更多地理解命令。我认为有 2 个 COPY
,我以为我不小心输入了它,所以我删除了第二个 COPY . .
但后来我想,如果我这样做,再次构建,那么 docker-compose up
将不再起作用.我需要保留第二个 COPY . .
这是什么原因?
提前感谢您帮助澄清
只有当package.json改变时才会执行npm install
。这是好的做法。但是,如果您愿意,可以将 COPY ["package*.json", "./"]
替换为 COPY . .
并删除底部 COPY . .
。因此,每当您在 src 文件中进行代码更改时,这将执行 npm install
。这是一种不好的做法。