Docker 将react应用程序停靠在生产环境中,与nginx结合使用时,效果并不理想

Docker 将react应用程序停靠在生产环境中,与nginx结合使用时,效果并不理想,docker,nginx,docker-compose,Docker,Nginx,Docker Compose,长话短说,我有两张图片。一个用于客户端,另一个用于服务器。我正在使用docker compose,当我在开发模式下运行所有东西时,一切都正常工作,我可以访问我的应用程序 我有一行“代理”:http://server:5000“在json包中,它按预期工作 我没有更改docker compose文件中的任何内容,该文件位于: 版本:“3.8” 服务: 服务器: 图:“srdjano1/reaction服务器” 端口: - 5000:5000 环境文件: -./环境 客户: 图:“srdjano1/

长话短说,我有两张图片。一个用于客户端,另一个用于服务器。我正在使用docker compose,当我在开发模式下运行所有东西时,一切都正常工作,我可以访问我的应用程序

我有一行“代理”:http://server:5000“在json包中,它按预期工作

我没有更改docker compose文件中的任何内容,该文件位于:

版本:“3.8”
服务:
服务器:
图:“srdjano1/reaction服务器”
端口:
- 5000:5000
环境文件:
-./环境
客户:
图:“srdjano1/反应客户端产品”
端口:
- 80:80
然而,当我想在生产模式下启动React应用程序并添加
nginx
时,服务器不再接收请求

以下是新的Dockerfile:

FROM node:14-alpine as build

WORKDIR /app

COPY package.json .

RUN yarn install

COPY . .

RUN npm run build

FROM nginx:stable-alpine

COPY --from=build /app/build /usr/share/nginx/html

EXPOSE 80

CMD ["nginx", "-g", "daemon off;"]

有人知道原因吗?

看看这是一个开放源码的nginx管理器,它有一个GUI界面。它可能有助于解决端口问题,使应用变得非常容易,而无需复杂的配置设置

您是否将nginx指向端口5000或默认为80如果是,则需要将5000:5000更改为80:5000我已在服务器配置中更改了80:5000,但是我需要将客户端更改为
3000:80
,因为我不能使用相同的主机端口。无论如何,还是一样的问题。我不知道如何将
nginx
指向端口5000。您可以使用nginx管理器来简化该过程。将docker映像向下拉,并对其进行处理,看看这是否有助于您的情况