【问题标题】:Deploying Flask API to 'cloud run' result in error using gcloud run deploy使用 gcloud run deploy 将 Flask API 部署到“cloud run”会导致错误
【发布时间】:2023-02-03 21:26:38
【问题描述】:

我有一个基本的烧瓶 API 来执行 python 文件。

结构如下:

  • 应用程序.py
  • Docker文件
  • 要求.txt
  • 测试.py

应用程序.py:

from flask import Flask, request
import subprocess
import os

app = Flask(__name__)

@app.route("/execute", methods=["GET"])
def execute():
    result = subprocess.run(["python", "test.py"], capture_output=True)
    return result.stdout

if __name__ == "__main__":
    app.run(port=int(os.environ.get("PORT", 8080)),host='0.0.0.0',debug=True)

文件:

FROM python:3.8-slim-buster

WORKDIR /app
COPY . .

RUN pip install flask
RUN pip install -r requirements.txt --no-cache

EXPOSE 8080

CMD ["python", "app.py"]

测试.py:将一个文档从 mongodb 集合复制到另一个文档作为测试的 Python 脚本。

该应用程序在本地计算机上运行。

为了部署到在 gcloud 上运行的云,我遵循了以下步骤:

  1. 码头建设-t。
  2. docker 标签 gcr.io//
  3. docker push gcr.io//
  4. gcloud run deploy --image gcr.io// --platform managed --command="python app.py"

    第 4 步出错。当我查看日志时,返回的错误如下: 终止:应用程序无法启动:内核初始化:无法解析 init 可执行文件:在 PATH [/usr/local/bin /usr/local/sbin /usr/local/bin /usr/sbin / 中查找可执行文件“python app.py”时出错usr/bin /sbin /bin]: 没有那个文件或目录

    请注意我在 Windows 机器上,错误中的路径看起来像 Linux 路径,所以我不确定从这里去哪里

【问题讨论】:

    标签: python gcloud


    【解决方案1】:

    看起来您正在通过 gcloud 命令覆盖 docker 映像的入口点。

    您不需要这样做,因为它已经在 Dockerfile 中设置。

    尝试将 4. 步骤更改为:

    gcloud run deploy --image gcr.io// --platform managed
    

    【讨论】:

      猜你喜欢
      • 2020-09-11
      • 2020-04-18
      • 2020-03-01
      • 1970-01-01
      • 2021-12-06
      • 2021-05-31
      • 2019-09-05
      • 2021-02-03
      • 2023-02-11
      相关资源
      最近更新 更多