Reactjs React Flask应用程序在Docker容器中工作,但部署到云运行时返回404错误

Reactjs React Flask应用程序在Docker容器中工作,但部署到云运行时返回404错误,reactjs,docker,flask,gunicorn,google-cloud-run,Reactjs,Docker,Flask,Gunicorn,Google Cloud Run,我不知道将我的应用程序部署到谷歌云时会出现什么问题。在这里,我在自己的系统上运行Docker容器: $ docker run 829c6a550061 [2020-09-01 15:08:37 +0000] [6] [INFO] Starting gunicorn 20.0.4 [2020-09-01 15:08:37 +0000] [6] [INFO] Listening at: http://0.0.0.0:8080 (6) [2020-09-01 15:08:37 +0000] [6] [

我不知道将我的应用程序部署到谷歌云时会出现什么问题。在这里,我在自己的系统上运行Docker容器:

$ docker run 829c6a550061
[2020-09-01 15:08:37 +0000] [6] [INFO] Starting gunicorn 20.0.4
[2020-09-01 15:08:37 +0000] [6] [INFO] Listening at: http://0.0.0.0:8080 (6)
[2020-09-01 15:08:37 +0000] [6] [INFO] Using worker: threads
[2020-09-01 15:08:37 +0000] [8] [INFO] Booting worker with pid: 8
当我点击http://0.0.0.0:8080“它成功地启动了该网站。当我部署到Cloud Run时,它会在最后给出一个URL,并说“在某个URL上提供100%的流量”,但当我单击该URL时,它是一个404错误。Cloud Run表示,默认情况下,应用程序在8080上侦听。我错过什么了吗?下面是我的Dockerfile,我附上了Cloud Run日志的截图

FROM node:13.12.0-alpine as react-build
WORKDIR /ChessKingsCouncil/react_frontend
RUN mkdir public src
COPY ./react_frontend/public ./public
COPY ./react_frontend/src ./src
COPY ./react_frontend/package.json ./
COPY ./react_frontend/package-lock.json ./
RUN npm install
RUN npm run-script build


FROM python:3.8.2
WORKDIR /ChessKingsCouncil/python_backend
ENV PYTHONPATH "${PYTHONPATH}:/app"
RUN pip install Flask
RUN pip install firebase-admin
RUN pip install gunicorn
RUN pip install termcolor
COPY ./python_backend ./
RUN mkdir build
COPY --from=react-build /ChessKingsCouncil/react_frontend/build ./build
ENV PORT 8080
CMD gunicorn --bind :$PORT --workers 1 --threads 8 app:app

您似乎运行了“$docker run 829c6a550061”,这是一个纯docker命令。然而,您部署到云运行可能会观察到不同的行为。在部署到云运行之前,我建议您先执行以下操作。此外,似乎还没有安装Web服务器。Nginx应该作为web服务器安装,以响应HTTP请求。对于Nginx配置,您可以遵循这一点


请注意,默认情况下,容器侦听0.0.0.0:8080,但是,在运行本地测试命令之前,需要文档测试命令访问端口为9090。

是否可以尝试在中列出的步骤以在本地运行?“你那样做还能用吗?”达斯汀格拉姆说,“我试试看。”。谢谢你能在你的计算机上检查一下你对应用程序的所有本地测试是否都已停止吗?实际上,使用命令“docker run 829c6a550061”可以启动容器,但不能转发端口。为此添加参数
-p 8080:8080
。我很确定,不是容器提供了服务,而是另一个本地执行@纪尧姆·布拉奎尔我不知道为什么我以前没有看到任何关于港口转运的事情。我会试试这个,然后给你回复好的,所以当我运行“$PORT=8080&&docker run-p9090:${PORT}-e PORT=${PORT}gcr.io/chess king council/council kings”和go to localhost:9090时,它是一个404未找到的,就像我部署时的链接一样。谢谢。是否有其他代码有助于查看?第一个链接提供了本地测试命令,您可以参考,第二个链接提供了Ngnix配置,您正在查找示例代码?没有,我的意思是是否有其他代码有助于您查看,来帮助我更多。看看这个页面:好吧,当我运行“$PORT=8080&&docker run-p9090:${PORT}-e PORT=${PORT}gcr.io/chess king council/council kings”和它所说的go to时,它是一个404未找到的