GCP Cloud Run部署FastAPI应用时出现ModuleNotFoundError问题求助
GCP Cloud Run部署FastAPI应用时出现ModuleNotFoundError问题求助
大家好,我最近在把一个FastAPI应用部署到GCP Cloud Run时遇到了棘手的问题,想请各位大佬帮忙分析下原因。
情况是这样的:我用Dockerfile构建镜像,应用的密钥通过Secret Manager挂载到容器卷中。本地用Docker Compose运行容器完全正常,但一部署到Cloud Run就开始报ModuleNotFoundError,而且不止一个模块出问题——最开始是导入Firebase Auth对象失败,调整代码后又出现了其他模块找不到的情况,现在卡在了services.user.auth这个模块上。
以下是完整的错误回溯:
Traceback (most recent call last): File "/app-backend/main.py", line 3, in <module> import app File "/app-backend/app/__init__.py", line 8, in <module> from app.routes import v1_router File "/app-backend/app/routes/__init__.py", line 3, in <module> from app.routes.user import user_router File "/app-backend/app/routes/user/__init__.py", line 3, in <module> from app.routes.user.auth import user_auth_router File "/app-backend/app/routes/user/auth.py", line 11, in <module> from services.user.auth import AuthService ModuleNotFoundError: No module named 'services.user.auth'
我的项目结构和之前成功部署到Cloud Run的另一个应用类似,只是依赖不同。下面是我的Dockerfile和docker-compose.yaml内容:
Dockerfile
FROM python:3.13.3-slim-bookworm RUN apt-get -y update RUN pip3 install --upgrade pip WORKDIR /app-backend RUN pip3 install uv RUN uv venv COPY requirements.txt requirements.txt RUN uv pip install --system -r requirements.txt COPY . . EXPOSE 8080:8080 CMD ["python3", "main.py" ]
docker-compose.yaml
services: app-backend: container_name: app-backend network_mode: bridge environment: - APP_ENV=DEV - DEBUG=true - DOC_URL=/ # Server Configurtions - HOST=0.0.0.0 - PORT=8080 build: context: . dockerfile: Dockerfile volumes: - .:/app-backend ports: - 8080:8080
我实在搞不懂为什么本地运行一切正常,到了Cloud Run就找不到模块了,有没有大佬能帮我捋捋可能的问题点?
内容来源于stack exchange
相关产品推荐
相关产品推荐

