GCP Cloud Run 容器行为 - ModuleNotFoundError

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

当 Cloud Run 运行容器映像时,容器的失败情况与我在本地运行容器时的失败情况不同。

我在

app/main.py
中添加了这个 try/ except 来调试不同的行为:

print(f'cwd is {os.getcwd()}')
try:
    from .make_sticker.config import StickerConfig
    print('relative worked')
except:
    from make_sticker.config import StickerConfig
    print('except worked')

当我在本地运行容器时,应用程序会记录“除了工作”。 当我在 Cloud Run 中运行容器时,应用程序失败并不会记录任何内容。

这是我的 Dockerfile:

FROM python:3.12

WORKDIR /code

COPY app/requirements.txt /code/requirements.txt
RUN pip install --no-cache-dir -r requirements.txt

COPY app/ /code/app

ENV PYTHONPATH=/code/app

WORKDIR /code/app

RUN ls -la

EXPOSE 5001
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "5001"]

这是怎么回事?

python google-cloud-platform google-cloud-run uvicorn fasthtml
1个回答
0
投票

我将进一步调试以了解发生了什么,但只需将父 python 模块的名称从

app
更改为
fastapp
,导入即可在 Cloud Run 环境中运行。

© www.soinside.com 2019 - 2024. All rights reserved.