Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 在Docker容器中构建用于生产的Create React应用程序_Reactjs_Docker_Deployment_Create React App - Fatal编程技术网

Reactjs 在Docker容器中构建用于生产的Create React应用程序

Reactjs 在Docker容器中构建用于生产的Create React应用程序,reactjs,docker,deployment,create-react-app,Reactjs,Docker,Deployment,Create React App,我在为CRA应用程序创建docker映像时遇到问题。以下是我用于生产环境的Dockerfile: # base image FROM node:10.13.0 # set working directory WORKDIR /usr/src/app # install and cache app dependencies COPY package.json yarn.lock ./ RUN yarn COPY . ./ # RUN yarn cache clean RUN yarn bui

我在为CRA应用程序创建docker映像时遇到问题。以下是我用于生产环境的Dockerfile:

# base image
FROM node:10.13.0
# set working directory
WORKDIR /usr/src/app

# install and cache app dependencies
COPY package.json yarn.lock ./
RUN yarn

COPY . ./
# RUN yarn cache clean 
RUN yarn build

# Stage 2 - the production environment
FROM nginx:latest
# COPY build /usr/share/nginx/html
COPY ./build /var/www
COPY nginx.conf /etc/nginx/nginx.conf
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
docker build
过程成功运行到第8步,返回以下错误:
步骤8/11:COPY./build/var/www-lstat build:没有这样的文件或目录


据我所知,该错误告诉我构建文件夹毕竟不是创建的,因此无法移动

Dockerfile
使用。第八步-
COPY./build/var/www
失败,因为它正在尝试将
build
目录从nginx映像(第二阶段,而不是从运行
warn build
的第一阶段)复制到
/var/www
,而该映像不存在

要使其工作,请指定从第一阶段(运行
warn build
的地方)复制
build
目录。为此,请进行以下更改:

  • 通过将第1行从node:10.13.0更改为
    作为base
    (此处可以使用任何名称而不是
    base
    )来命名基本阶段
  • COPY./build/var/www
    更改为
    COPY--from=base./build/var/www
    ,表示我们希望从第一阶段而不是第二阶段复制
    build
    目录

  • 谢谢上帝保佑。您在回答中提到的是解决我的问题的主要部分。我遇到的另一个问题是docker版本,它不支持
    AS
    关键字和
    --from
    标志。因此,我不得不应用你的建议并更新docker。