当我将应用程序部署到Google Cloud时,我不知道该怎么办。在这里,我在自己的系统上运行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
答案 0 :(得分:0)
似乎您运行的是“ $ docker run 829c6a550061”,它是一个纯docker命令。但是,您部署到Cloud Run可能会观察到不同的行为。在部署到Cloud Run之前,我建议您test the container image locally。另外,似乎尚未安装Web服务器。 Nginx应该作为Web服务器安装以响应HTTP请求。您可以按照此documentation进行Nginx配置。
请注意,默认情况下,容器侦听0.0.0.0:8080,但是文档测试命令的访问端口为9090,运行本地测试命令之前需要container port configuration。