gpt4 book ai didi

reactjs - Docker 多阶段构建 - 复制失败

转载 作者:行者123 更新时间:2023-12-03 13:17:03 24 4
gpt4 key购买 nike

我在弹出的 create-react-app 的多阶段 Dockerfile 方面遇到一些问题。 Dockerfile 如下所示:

FROM node:9.6.1 as builder

RUN mkdir /usr/src/app
WORKDIR /usr/src/app

ENV PATH /usr/src/app/node_modules/.bin:$PATH
COPY package.json /usr/src/app/package.json
RUN npm install --silent
COPY . /usr/src/app

RUN npm run build

FROM nginx:1.13.9-alpine
COPY --from=builder /usr/src/app/build /usr/share/nginx/html
EXPOSE 80

Dockerfile 成功运行,直到到达步骤 10 (COPY),并抛出以下错误:

COPY failed: stat /var/lib/docker/overlay2/2fc8af4cb8db9777246cae48721d8a93917c73e415a02680f1e3a73c8780b903/merged/usr/src/app/build: no such file or directory

我用谷歌搜索但找不到明确的答案。有没有人经历过类似的事情?

最佳答案

当您构建应用程序时,它正在另一个硬币容器/层中构建。您需要先构建应用程序并将构建文件夹复制到/usr/src/app。

所以,这很好:

FROM node:9.6.1 as builder

WORKDIR /usr/src/app

ENV PATH /usr/src/app/node_modules/.bin:$PATH

COPY package.json .
COPY public public
COPY src src

RUN npm install --silent
RUN npm run build

COPY build .

RUN rm -rf src
RUN rm -rf build

FROM nginx:1.13.9-alpine

COPY --from=builder /usr/src/app /usr/share/nginx/html

EXPOSE 80

我将删除 src 和 build 文件夹,因为这不是必需的,而且可能会暴露应用程序的关键部分。

因此,对应用程序进行 Docker 化的安全性是毫无疑问的。

关于reactjs - Docker 多阶段构建 - 复制失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50650626/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com