You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Google Cloud Run上运行类Maven目录结构的Python Flask应用

配置Google Cloud Run部署指定结构Python Flask应用的步骤

1. 编写Dockerfile

针对你的源代码结构,Dockerfile需要正确映射文件路径、安装依赖并配置生产级服务器:

# 基于官方Python轻量镜像构建
FROM python:3.11-slim

# 设置容器内工作目录
WORKDIR /app

# 复制依赖清单到工作目录
COPY requirements.txt .

# 安装Python依赖(禁用缓存减少镜像体积)
RUN pip install --no-cache-dir -r requirements.txt

# 复制src目录下所有代码到容器工作目录
COPY src/ .

# 设置Flask应用入口环境变量
ENV FLASK_APP=app/main.py

# 配置启动命令:用gunicorn作为生产服务器,监听Cloud Run分配的PORT端口
CMD exec gunicorn --bind :$PORT --workers 1 --threads 8 --timeout 0 app.main:app

2. 完善requirements.txt

确保包含Flask和生产服务器依赖:

Flask==2.3.3
gunicorn==21.2.0

3. 本地验证(可选)

先在本地构建镜像运行,确认应用正常:

# 构建本地镜像
docker build -t flask-cloudrun-test .

# 启动容器,映射本地8080端口到容器PORT端口
docker run -p 8080:8080 -e PORT=8080 flask-cloudrun-test

# 访问http://localhost:8080测试应用是否响应

4. 用gcloud命令部署

确保已安装并初始化gcloud CLI,执行以下命令:

gcloud run deploy flask-cloudrun-service \
  --source . \
  --region us-central1 \
  --allow-unauthenticated

参数说明:

  • flask-cloudrun-service:自定义的Cloud Run服务名称
  • --source .:指定从当前根目录读取Dockerfile和代码进行构建部署
  • --region:替换为你需要的部署区域(如europe-west1、asia-southeast1)
  • --allow-unauthenticated:允许未授权用户访问,若需私有服务可删除此参数

关键注意事项

  • 你的src/app/main.py必须适配Cloud Run的端口要求,示例代码:
from flask import Flask
import os

app = Flask(__name__)

@app.route('/')
def index():
    return "Hello from Cloud Run!"

if __name__ == '__main__':
    # 读取Cloud Run分配的PORT环境变量,默认8080
    port = int(os.environ.get('PORT', 8080))
    app.run(host='0.0.0.0', port=port)
  • 部署前确保gcloud账号拥有Cloud Run Admin和Artifact Registry Admin权限,否则会出现权限报错

内容的提问来源于stack exchange,提问作者St.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 22:57:12