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

GitHub Action无法推送镜像至ghcr.io,Dockerfile构建报错求助

问题排查:GitHub Action构建Docker时找不到go.sum文件

可能的原因及解决方法

  • 工作目录不匹配
    本地构建时你大概率是进入./data_pipelines/dataeng_github_metrics目录后执行docker build,但GitHub Action默认在仓库根目录运行构建命令,Docker会在根目录查找go.mod和go.sum,自然找不到子目录里的文件。
    解决:要么在docker build命令中指定构建上下文为该子目录:

    docker build ./data_pipelines/dataeng_github_metrics -t ghcr.io/mirantis/[镜像名]:latest
    

    要么在Action步骤中先切换到目标目录再构建:

    - name: Build Docker image
      run: |
        cd ./data_pipelines/dataeng_github_metrics
        docker build -t ghcr.io/mirantis/[镜像名]:latest .
    
  • .gitignore排除了go.sum文件
    检查仓库根目录的.gitignore规则,如果包含go.sum或*.sum,会导致该文件未被推送到GitHub仓库。本地有文件但仓库中缺失,就会出现本地构建正常、Action失败的情况。
    解决:修改.gitignore移除对go.sum的排除,然后将go.sum提交并推送到仓库。

  • Dockerfile的COPY路径与构建上下文不匹配
    Dockerfile中COPY go.mod go.sum /bin/的路径是相对于构建上下文的。如果构建上下文是仓库根目录,而这两个文件在子目录下,Docker会在根目录搜索,必然找不到。这种情况优先调整构建上下文到子目录(参考第一种解决方法),不建议修改Dockerfile路径,避免破坏本地构建逻辑。

  • GitHub Action的checkout步骤配置异常
    检查actions/checkout@v4步骤,是否设置了path参数导致代码被检出到非默认目录,或者启用了稀疏检出等限制文件检出的配置。确保checkout步骤完整检出仓库所有文件,包括子目录中的go.mod和go.sum。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 02:55:23