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

GitHub Action中云存储下载文件夹无法复制进Docker容器

问题排查与解决方案

针对你遇到的GitHub Action中下载的fine_tuned_model文件夹无法被Docker镜像复制的问题,以下是具体排查方向和解决办法:

1. 检查.gitignore或.dockerignore的排除规则

如果仓库根目录存在.gitignore文件,且其中包含fine_tuned_model或相关路径,Docker构建时会默认读取.gitignore规则排除对应文件/目录,即便你在Action中手动下载了该文件夹也会被忽略。

解决办法:

  • 在仓库根目录创建.dockerignore文件,明确添加规则允许fine_tuned_model目录被包含:
    # 保留其他需要排除的规则,添加以下行
    !fine_tuned_model/
    
  • 若.dockerignore中已有对该目录的排除规则,直接删除即可。

2. 验证Docker构建上下文与文件路径

确认下载后的文件夹结构是否符合预期:

  • 你的Action执行mkdir fine_tuned_model和gcloud storage cp -r gs://mlops/fine_tuned_lora fine_tuned_model/后,fine_tuned_model目录下会存在fine_tuned_lora子目录。
  • 检查Dockerfile中是否找错路径:如果期望/app/fine_tuned_lora存在,需调整COPY指令:
    COPY fine_tuned_model/fine_tuned_lora/ /app/fine_tuned_lora/
    

3. 禁用Docker构建缓存测试

Docker构建缓存可能复用旧镜像层,导致新下载的文件夹未被包含。可在Action的docker/build-push-action步骤中禁用缓存:

- uses: docker/build-push-action@v5
  with:
    file: Dockerfile
    push: true
    tags: europe-docker.pkg.dev/team2137/trygg/app:${{ env.TAG }}
    no-cache: true  # 添加此行禁用缓存

4. 在Dockerfile中添加调试步骤确认文件存在

修改Dockerfile,在COPY后添加目录查看命令,验证文件是否被复制:

FROM python:3.11

WORKDIR /app

COPY requirements.txt .
RUN pip install -r requirements.txt

COPY . .

# 添加调试步骤,查看目录内容
RUN ls -la /app/fine_tuned_model

CMD ["python", "app.py"]

重新运行Action,查看构建日志输出,确认fine_tuned_model目录下的文件是否存在。

5. 检查文件权限问题

若下载的文件/目录权限为root且限制其他用户读取,Docker构建时可能无法正常复制。可在Action的下载步骤后添加权限修改命令:

- name: 'Last ned LORA fra cloud bucket'
  run: |
      mkdir fine_tuned_model
      gcloud storage cp -r gs://mlops/fine_tuned_lora fine_tuned_model/
      chmod -R 755 fine_tuned_model/  # 修改目录权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 18:05:00