gpt4 book ai didi

python - 使用 Docker 在 Google App Engine Flex 上部署 Flask 应用程序

转载 作者:行者123 更新时间:2023-12-03 17:22:33 27 4
gpt4 key购买 nike

我想使用 Docker 在 Google App Engine Flex 上部署一个 Flask 应用程序。

我在本地设置了 Docker 镜像并设法使用命令运行 Flask 应用程序docker build -t myreponame .然后 docker run -p 4000:80 myreponame .
然后我可以在 URL http://localhost:4000 上看到我的应用程序它工作得很好。

但是,当我尝试使用 gcloud app deploy 在 Google App Engine 上部署它时,然后转到 URL http://YOUR_PROJECT_ID.appspot.com ,我收到“502 服务器错误”。

我怀疑可能是端口配置。
我应该在我的 Flask 代码中以不同的方式定义以下内容吗?

if __name__ == '__main__':
HOST = '0.0.0.0'
PORT = 80
app.run(HOST, PORT, debug=True)

或者我应该定义我的 app.yaml文件不同?
runtime: custom
env: flex
entrypoint: gunicorn -b :$PORT app:app

我的 Dockerfile包含以下内容:
FROM python:2.7
WORKDIR /app
COPY . /app
RUN pip install --trusted-host pypi.python.org -r requirements.txt
EXPOSE 80
CMD ["python", "app.py"]

任何帮助都会非常受欢迎。非常感谢

最佳答案

问题确实出在端口配置中。
App Engine 前端在端口 8080 上路由传入请求(引用:https://cloud.google.com/appengine/docs/flexible/custom-runtimes/build?authuser=0),因此我将 Flask 代码更改为:

if __name__ == '__main__':
HOST = '0.0.0.0'
PORT = 8080
app.run(HOST, PORT, debug=True)

我从 app.yaml 中删除了入口点配置:
runtime: custom
env: flex

并将 Dockerfile 更改为:
FROM python:2.7
WORKDIR /app
COPY . /app
RUN pip install --trusted-host pypi.python.org -r requirements.txt
EXPOSE 8080
CMD ["gunicorn", "app:app", "-b", ":8080", "--timeout", "300"]

关于python - 使用 Docker 在 Google App Engine Flex 上部署 Flask 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54028169/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com