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

部署doccano至Cloud Run后,如何将数据库保存到Google Cloud Storage?

解决doccano Cloud Run容器数据持久化到GCS的方案

1. 先理清doccano的存储逻辑

doccano默认用本地SQLite+本地文件保存数据,重启就丢是因为Cloud Run的本地存储属于临时存储。要对接GCS,得从文件存储和数据库两个维度入手,至少先搞定文件存储的持久化。

2. 给Cloud Run服务配置GCS权限

  • 找到你的Cloud Run服务对应的服务账号,给它添加Storage Object Admin权限(遵循最小权限原则,别给过于宽泛的权限),确保容器能正常读写GCS存储桶。
  • 部署Cloud Run时,记得开启「允许服务账号访问Cloud API」的选项,否则权限设置无法生效。

3. 配置doccano核心环境变量

doccano支持通过环境变量切换存储后端,直接在Cloud Run的环境变量配置里添加以下内容:

必配变量

  • STORAGE_BACKEND: 设置为storages.backends.gcloud.GoogleCloudStorage,指定doccano使用GCS作为文件存储后端
  • GS_BUCKET_NAME: 填写你的GCS存储桶名称,比如my-doccano-data-bucket
  • DJANGO_SETTINGS_MODULE: 设置为config.settings.production,生产环境配置才支持外部存储扩展

可选变量(按需配置)

  • GS_DEFAULT_ACL: 比如设为private,控制文件的默认访问权限
  • GS_FILE_OVERWRITE: 设为False,避免同名文件被覆盖

部署时的环境变量配置示例(直接在Cloud Run控制台填键值对即可):

STORAGE_BACKEND=storages.backends.gcloud.GoogleCloudStorage
GS_BUCKET_NAME=my-doccano-data-bucket
DJANGO_SETTINGS_MODULE=config.settings.production

4. 验证配置是否生效

  • 重新部署Cloud Run服务,导入测试数据并完成几个标注操作。
  • 登录GCS控制台查看对应存储桶,应该会生成media目录,里面包含你导入的数据集和标注数据文件。
  • 手动重启Cloud Run服务,再次登录doccano检查数据是否保留。

5. 额外注意事项

  • 不要将SQLite数据库直接存到GCS!SQLite不兼容网络文件系统,会引发各种异常。要持久化数据库的话,建议改用Cloud SQL的PostgreSQL/MySQL,同时配置DATABASE_URL环境变量对接。
  • GCS存储桶的区域尽量和Cloud Run服务区域保持一致,减少读写延迟。
  • 若自定义了容器启动命令,不要覆盖默认启动脚本,否则环境变量可能无法正常加载。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 15:35:20