为什么dockerfile中的双'COPY'给出错误

时间:2018-11-12 20:21:06

标签: docker dockerfile

出于某种原因,我在构建我的dockerfile时出现此错误:

  

“步骤9/11:COPY --from = builder ./usr/src/app/dist / usr / app / dist   复制文件失败:lstat   / var / lib / docker / overlay2 / d16c06f4e33e70fea8e03cfe566fe72a763bd1949b67b64603937758fdf7fe1f / merged / usr / app / dist:   不是目录”

但是,如果我注释掉“ COPY”之一,则效果很好(不管是哪一个) 这到底是怎么了?

我的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" ]

1 个答案:

答案 0 :(得分:2)

问题是由以下行引起的:

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/