将 dockerize 应用程序部署到 Google 应用程序引擎后,出现 502 bad gateway。
你好,我正在尝试将基于 docker 的 API 部署到谷歌应用程序引擎中。请找到以下代码供您参考。
Initialfile.py 是主文件,其余的 docker-compose.yaml、app.yaml 等
#docker-compose.yaml
version: '3'
services:
web:
build: .
# command: sh -c "uvicorn initialfile:app --host=0.0.0.0 --port=7005 --reload"
ports:
- 8000:8000
volumes:
- .:/app
#docker-compose-depoy.yml
version: '3.9'
services:
gcloud:
image: google/cloud-sdk:latest
volumes:
- gcp-creds:/creds
- .:/app
working_dir: /app
environment:
- CLOUDSDK_CONFIG=/creds
volumes:
gcp-creds:
#app.yaml
runtime: python39
instance_class: F4_1G
#dockerfile
FROM python:3.11.5-bookworm
WORKDIR /app
COPY . /app
RUN pip install -r requirements.txt
EXPOSE 8000
CMD ["uvicorn","initialfile:app","--host","0.0.0.0","--port","8000"]
502错误表明服务器可能还没有开始监听。
您正在尝试在端口 8000 上监听,请按照 GAE 文档在 8080 上尝试 - https://cloud.google.com/appengine/docs/flexible/custom-runtimes/build#listening_to_port_8080
监听8080端口
App Engine 前端会将传入请求路由到端口 8080 上的相应模块。您必须确保您的应用程序代码正在侦听 8080。
#docker-compose.yaml
...
services:
...
...
...
ports:
- 8080:8000
...