如何设置正确的路径以使用多步 docker 构建复制文件?
How to set correct path to copy files with multi-step docker build?
这是 Dockerfile:
# tag block to refering
FROM node:alpine as builder
WORKDIR /home/server
COPY package.json .
RUN npm install
COPY . .
CMD ["npm", "run", "build"]
# on second step use another core image
FROM nginx
# copy files builded on previous step
COPY --from=builder /home/server/build usr/share/nginx/html
当使用命令 'docker build .' 在本地机器上构建图像时 - 它工作正常,但是当我尝试将项目放到 zeit 时,我得到下一个错误:
Step 8/8 : COPY --from=builder /home/server/build usr/share/nginx/html
> COPY failed: stat /var/lib/docker/overlay2/a114ae6aae803ceb3e3cffe48fa1694d84d96a08e8b84c4974de299d5fa35543/merged/home/server/build: no such file or directory
它可以是什么?谢谢
,所以构建目录是空的。将 CMD 行更改为 运行 行。
一个提示:docker build
序列的每一行都会产生自己的中间层,每一层都是一个可运行的 Docker 图像。你会看到类似
的输出
Step 6/8: CMD ["npm", "run", "build"]
---> Running in 02071fceb21b
---> f52f38b7823e
最后一个数字是有效的 Docker 图片 ID,您可以
docker run --rm -it f52f38b7823e sh
查看图片中的内容。
这是 Dockerfile:
# tag block to refering
FROM node:alpine as builder
WORKDIR /home/server
COPY package.json .
RUN npm install
COPY . .
CMD ["npm", "run", "build"]
# on second step use another core image
FROM nginx
# copy files builded on previous step
COPY --from=builder /home/server/build usr/share/nginx/html
当使用命令 'docker build .' 在本地机器上构建图像时 - 它工作正常,但是当我尝试将项目放到 zeit 时,我得到下一个错误:
Step 8/8 : COPY --from=builder /home/server/build usr/share/nginx/html
> COPY failed: stat /var/lib/docker/overlay2/a114ae6aae803ceb3e3cffe48fa1694d84d96a08e8b84c4974de299d5fa35543/merged/home/server/build: no such file or directory
它可以是什么?谢谢
一个提示:docker build
序列的每一行都会产生自己的中间层,每一层都是一个可运行的 Docker 图像。你会看到类似
Step 6/8: CMD ["npm", "run", "build"]
---> Running in 02071fceb21b
---> f52f38b7823e
最后一个数字是有效的 Docker 图片 ID,您可以
docker run --rm -it f52f38b7823e sh
查看图片中的内容。