【发布时间】: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 上运行的云,我遵循了以下步骤:
- 码头建设-t。
- docker 标签 gcr.io//
- docker push gcr.io//
- 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 路径,所以我不确定从这里去哪里
【问题讨论】: