首页 > 解决方案 > 尝试在 App Engine 上运行 Docker Flask 应用程序时出现错误 502

问题描述

我想在包含基本 Flask 应用程序的 App Engine 上部署 Docker 映像。此外,这个应用程序将成为我前端的 web-socket 端点。

部署是成功的。但我收到错误 502。

我已经阅读了文档,我尝试了很多配置,但我没有得到它的工作,如果有人有任何想法,我将不胜感激。

错误

在此处输入图像描述

我的项目结构:

- socket/
  - socket/
    - main.py
    - Dockerfile
    - app.yaml
    - requirements.txt
  - cloudbuild.yaml

主文件

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def hello():
    """Return a friendly HTTP greeting."""
    return 'Hello World!'


if __name__ == '__main__':
    # This will be only used locally. App Engine will use gunicorn.
    app.run(host='127.0.0.1', port=8080, debug=True)

要求.txt

Flask==1.0.3
Flask-Sockets==0.2.1
gunicorn==19.9.0

Dockerfile

FROM python:2.7

WORKDIR /app

COPY . /app

EXPOSE 8080

RUN pip install --trusted-host pypi.python.org -r requirements.txt

ENTRYPOINT ["gunicorn","--bind=0.0.0.0:8080", "-k flask_sockets.worker", "main:app"]

应用程序.yaml

runtime: custom
env: flex
service: socket
entrypoint: gunicorn -b :$PORT -k flask_sockets.worker main:app
manual_scaling:
  instances: 1
network:
  session_affinity: true

cloudbuild.yaml

steps:
  # Decrypt env secrets
  - name: gcr.io/cloud-builders/gcloud
    args:
      - kms
      - decrypt
      - --ciphertext-file=./socket/conf/gcp_credentials.json.enc
      - --plaintext-file=./socket/conf/gcp_credentials.json
      - --location=global
      - --keyring=cloudbuild-env
      - --key=cloudbuild-env
    id: decrypt
  # Build the docker image
  - name: gcr.io/cloud-builders/docker
    args: [ 'build', '-t', 'gcr.io/$PROJECT_ID/tweets-socket-dataflow', './socket/' ]
    id: build
  # Deploy the image
  - name: gcr.io/cloud-builders/gcloud
    args: ['app', 'deploy', './socket/app.yaml', '-v', '1-socket-latest']
    id: deploy
timeout: 600s

这实际上在本地工作。

使用的 Docker 命令

docker run -it -d -p 8080:8080 144005a4e426

码头工人ps

c2763d0b8b75        144005a4e426        "gunicorn --bind=0.0…"   3 seconds ago       Up 1 second         0.0.0.0:8080->8080/tcp   sleepy_ganguly

http:127.0.0.1:8080

在此处输入图像描述

标签: pythondockergoogle-app-engineflask

解决方案


推荐阅读