将 dockerize Fast api 部署到谷歌云引擎

问题描述 投票:0回答:1

将 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"]                                                                                                                                                                   
docker google-app-engine fastapi gcloud large-language-model
1个回答
0
投票

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
    ...
© www.soinside.com 2019 - 2024. All rights reserved.