reactjs - 多阶段构建无法从上一阶段复制文件

标签 reactjs docker nginx

我有一个React应用程序,我将其作为多阶段构建进行了 jetty 化。首先,它将应用程序构建到/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

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

最佳答案

问题是第一步的最后一步,

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

应该
RUN npm run build

参见difference between CMD and RUN

关于reactjs - 多阶段构建无法从上一阶段复制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49829523/

相关文章:

javascript - 尝试返回从 mapDispatchToProps dispatch 的 Action 创建者的 promise

Docker 容器应用程序无法连接到 Docker 主机中的 SQL Server

ubuntu - Docker 下载了超过 30 个 ubuntu 镜像

configuration - Nginx 代理或重写取决于用户代理

MongoDB半夜关闭,无法恢复

android - 在 React Native 中制作具有子项的绝对定位组件的正确方法是什么?

ios - React-Native NetInfo 始终返回“无互联网连接”

reactjs - 无法在 NPM 链接的库上设置断点

docker - 标签: while pushing image to local registry在本地不存在图像

php - Nginx:X-Accel-Redirect 在具有已知 MIME 扩展名的文件中不起作用