docker - 为什么dockerfile中的双重'COPY'会出错
问题描述
出于某种原因,当我构建我的 dockerfile 时,我收到了这个错误:
“步骤 9/11:复制 --from=builder ./usr/src/app/dist /usr/app/dist 无法复制文件:lstat /var/lib/docker/overlay2/d16c06f4e33e70fea8e03cfe566fe72a763bd1949b67b64603937758fdf7fe1f/merged/usr/app/ dist:不是目录”
但是,如果我注释掉其中一个“复制”,它可以正常工作(不管哪一个)这里到底出了什么问题?
我的dockerfile如下:
FROM node:latest as builder
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build:ssr
FROM node:latest
COPY --from=builder /usr/src/app/package.json /usr/app
COPY --from=builder /usr/src/app/dist /usr/app/dist
WORKDIR /usr/app
CMD [ "npm", "run", "serve:ssr" ]
解决方案
问题是由这一行引起的:
COPY --from=builder /usr/src/app/package.json /usr/app
在这里,您将复制/usr/src/app/package.json
到/usr
目录并命名package.json
为app
.
指定app
不是文件名。这是一个目录。使用以下
COPY --from=builder /usr/src/app/package.json /usr/app/
推荐阅读
- python - 为列中的每个潜在值创建一个新列以创建与行值匹配的真值数组
- scala - scala: Async processing using Future.sequence
- mongodb - 为什么 MongoDB 在使用 findOneAndUpdate() 更新新文档时返回 value:null 错误?
- angular - 输入属性绑定问题
- android - 如何在底部导航片段中创建选项卡的示例?
- html - 使用 Powershell 在网页中填充用户名/密码
- hadoop - Pig - 针对主表映射和检索两列?
- apache - Apache2 重定向到主站点
- android - 约束布局 - 将 ImageView 的宽度设置为整个屏幕大小的 1/4
- php - 如何读取文件并在php中求和该文件的数量