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

如何低成本在Cloud Run部署带卷的.NET Core Docker容器

低成本.NET Core Docker + SQLite部署方案

方案1:低价学生VPS本地挂载(成本最低)

  • 选一款学生专属低价VPS(月付通常3-5美元),直接在VPS上部署Docker容器,将SQLite文件挂载到VPS本地目录:
    docker run -d -p 80:80 -v /home/your-user/sqlite-data:/app/data your-dotnet-image
    
  • 优点:配置简单,数据访问速度快,完全满足大学项目的流量需求;缺点是VPS故障可能导致数据丢失,适合非生产场景。

方案2:Cloud Run + Cloud Storage(GCP生态内低成本)

  • Cloud Run按使用量计费,低流量下几乎免费。把SQLite文件存在Cloud Storage存储桶,用gcsfuse将存储桶挂载为容器内的文件系统:
    1. 给Cloud Run服务分配Cloud Storage访问权限
    2. 在Dockerfile中安装gcsfuse
    3. 容器启动时先挂载存储桶再启动.NET应用:
      gcsfuse --implicit-dirs your-bucket-name /app/data && dotnet YourApp.dll
      
  • 注意:对象存储挂载成文件系统后,SQLite性能略低于本地磁盘,但大学项目的访问量完全能承受,成本远低于Filestore。

方案3:免费容器托管平台的Docker Compose

  • 找支持Docker Compose的免费容器托管平台(多数平台提供免费额度),用docker-compose.yml定义服务和持久化卷:
    version: '3.8'
    services:
      app:
        image: your-dotnet-image
        ports:
          - "80:80"
        volumes:
          - sqlite-data:/app/data
    volumes:
      sqlite-data:
    
  • 平台会自动管理卷的持久化存储,不用自己维护服务器,免费额度足够支撑大学项目运行。

你之前踩坑的原因

  • Cloud Build运行docker-compose失败:Cloud Build是临时构建环境,不是用来托管长期服务的,它的卷无法持久化,应该用它构建镜像后,再部署到Cloud Run或VPS。
  • Firebase存储SQLite无法访问:Firebase Storage是对象存储,不能直接像本地文件那样随机读写,SQLite不支持这种访问模式,所以必然失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 04:35:32