Reactjs 在Docker容器中构建用于生产的Create React应用程序
我在为CRA应用程序创建docker映像时遇到问题。以下是我用于生产环境的Dockerfile: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
# 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
目录。为此,请进行以下更改:
作为base
(此处可以使用任何名称而不是base
)来命名基本阶段COPY./build/var/www
更改为COPY--from=base./build/var/www
,表示我们希望从第一阶段而不是第二阶段复制build
目录谢谢上帝保佑。您在回答中提到的是解决我的问题的主要部分。我遇到的另一个问题是docker版本,它不支持
AS
关键字和--from
标志。因此,我不得不应用你的建议并更新docker。