Reactjs 如何使用docker和serve-s构建部署React应用程序

Reactjs 如何使用docker和serve-s构建部署React应用程序,reactjs,docker,deployment,Reactjs,Docker,Deployment,到目前为止,我已经构建了映像并将其部署到AWS EC2。但是我想用 serve -s build 以生产模式为应用程序提供服务。 我在当地做的,显然一切都很好我明白了 ┌──────────────────────────────────────────────────┐ │ │ │ 服务│ │

到目前为止,我已经构建了映像并将其部署到AWS EC2。但是我想用

serve -s build
以生产模式为应用程序提供服务。 我在当地做的,显然一切都很好我明白了

┌──────────────────────────────────────────────────┐ │ │ │ 服务│ │ │ │ - 本地:http://localhost:5000 │ │ - 在您的网络上:│ │ │ │ 已将本地地址复制到剪贴板!│ │ │ └──────────────────────────────────────────────────┘

页面进入..但是当我尝试向api发出请求时,我得到404

我想知道react build是如何工作的,以及我需要做什么才能将其置于生产模式。还有,dist文件夹的用途是什么

这是我的Dockerfile:

FROM node

#Create app directory
WORKDIR /app

# A wildcard is used to ensure both package.json AND package-lock.json are copied
# where available (npm@5+)
COPY package*.json ./

#Install dependencies
RUN npm install
RUN npm install react-scripts@3.4.1 -g --silent


#Copy app's source code inside the Docker image
COPY . .

#Expose the app's port
EXPOSE 3000

#Run the app when the container is ran
CMD ["npm", "start""]

谢谢

这是我使用
service-s build运行Dockerfile时使用的Dockerfile

# pull official base image
FROM node:13.12.0-alpine

# set working directory
WORKDIR /app

# Copies package.json and package-lock.json to Docker environment
COPY package*.json ./

# Installs all node packages
RUN npm install

# Copies everything over to Docker environment
COPY . .

# Build for production.
RUN npm run build --production

# Install `serve` to run the application.
RUN npm install -g serve

# Uses port which is used by the actual application
EXPOSE 5000

# Run application
#CMD [ "npm", "start" ]
CMD serve -s build
我只是在npm启动(调试)和服务(生产)之间切换