【问题标题】:Multi stage build can't COPY file from previous stage多阶段构建无法从前一阶段复制文件
【发布时间】:2019-04-24 02:23:27
【问题描述】:

我有一个 React 应用程序,我将它作为一个多阶段构建进行 docker 化。首先它将应用程序构建到/app/build 目录,然后 nginx 尝试复制该目录以提供服务。

FROM node:alpine as build
WORKDIR /app
ADD package.json /app
RUN npm install
ADD . /app
CMD ["npm", "run", "build"]

FROM nginx:alpine
COPY --from=build /app/build/ /usr/share/nginx/html

但是,当我尝试构建映像时,第二阶段似乎无法从上一阶段复制 /app/build

$ docker build -t foo .
...
Step 8/8 : COPY --fromm=build /app/build /usr/share/nginx/html
COPY failed: stat /var/lib/docker/overlay2/cf1f4930e894ad5b1d404943fb81e45cdd06b8a39abe434a342f5f90f4a1f58f/merged/app/build: no such file or directory

出了什么问题,我该如何解决?

【问题讨论】:

    标签: reactjs docker nginx


    【解决方案1】:

    问题是第一阶段的最后一步

    CMD ["npm", "run", "build"]
    

    应该是

    RUN npm run build
    

    difference between CMD and RUN

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-14
      • 2013-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-15
      • 2019-03-25
      相关资源
      最近更新 更多