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

如何使用Replicate AI的Cog在构建时从云存储拉取文件?

如何在Cog构建镜像时从Google Cloud Storage拉取模型Checkpoint

因为Cog通过cog.yaml管理构建流程,无法直接编辑Dockerfile,你可以通过以下方式实现构建时拉取GCS文件:

1. 在cog.yaml中定义构建命令

利用Cog的build.commands字段添加构建阶段执行的Shell命令,先安装Google Cloud CLI,再执行拉取操作:

build:
  python_version: "3.10" # 根据你的项目需求调整
  system_packages:
    - curl
    - python3-pip
  commands:
    # 安装Google Cloud CLI
    - echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
    - curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -
    - apt-get update && apt-get install -y google-cloud-cli
    # 从GCS拉取模型文件到容器内
    - gcloud storage cp gs://bucket/pytorch_model.bin model.bin

2. 处理私有存储桶的认证

如果你的GCS存储桶不是公开可读的,需要通过构建秘密注入服务账号密钥来认证:

  1. 准备好GCP服务账号密钥文件(service-account-key.json)
  2. 修改cog.yaml的构建命令,添加认证步骤:
    build:
      commands:
        # ... 保留之前的gcloud安装命令 ...
        # 注入服务账号密钥并激活认证
        - echo "$COG_SECRET_GCP_SERVICE_ACCOUNT_KEY" > /tmp/service-account-key.json
        - gcloud auth activate-service-account --key-file=/tmp/service-account-key.json
        # 拉取模型文件
        - gcloud storage cp gs://bucket/pytorch_model.bin model.bin
    
  3. 构建时通过命令行传递秘密变量:
    cog build --secret GCP_SERVICE_ACCOUNT_KEY=$(cat service-account-key.json)
    

3. 优化构建缓存(可选)

为了避免每次构建都重复安装gcloud CLI,将安装命令和拉取命令拆分,利用Docker的分层缓存特性——安装gcloud的步骤只会在首次构建或相关命令修改时执行,后续构建会直接使用缓存:

build:
  system_packages:
    - curl
    - python3-pip
  commands:
    # 安装gcloud CLI(这层会被缓存)
    - echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
    - curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -
    - apt-get update && apt-get install -y google-cloud-cli
    # 认证并拉取模型(仅当密钥或目标文件变化时重新执行)
    - echo "$COG_SECRET_GCP_SERVICE_ACCOUNT_KEY" > /tmp/service-account-key.json
    - gcloud auth activate-service-account --key-file=/tmp/service-account-key.json
    - gcloud storage cp gs://bucket/pytorch_model.bin model.bin

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 19:52:26