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

GitHub Actions执行Docker Push时无法找到Dockerfile正确路径的问题

问题分析

这个错误是因为Docker构建步骤中指定的Dockerfile路径不正确,和仓库名与代码目录名是否一致无关,GitHub Actions的路径生成逻辑是正常的。

错误提示里的重复目录名是GitHub Actions的默认工作目录结构导致的:默认情况下,actions/checkout会将代码克隆到/home/runner/work/<仓库名>/<仓库名>目录下(即$GITHUB_WORKSPACE),你的系统正是在这个默认工作目录下查找Dockerfile,但实际Dockerfile在该目录下的DockerDeployDemoVS22Ent子目录中,所以找不到文件。

解决方案
  1. 修正Docker构建命令的路径

    • 如果使用原生docker build命令,需要明确指定Dockerfile的子目录路径:
      docker build -f ./DockerDeployDemoVS22Ent/Dockerfile .
      
    • 如果使用Docker官方的GitHub Action(如docker/build-push-action@v5),需要在action参数中指定正确的Dockerfile路径:
      - name: Build and push
        uses: docker/build-push-action@v5
        with:
          context: .
          dockerfile: DockerDeployDemoVS22Ent/Dockerfile
          push: true
          tags: your-acr-name.azurecr.io/your-image:latest
      
  2. 验证目录结构(可选)
    在workflow中添加一步打印当前目录和文件结构的命令,方便确认代码的实际位置:

    - name: Inspect directory structure
      run: |
        pwd
        ls -R
    

    执行后可以在GitHub Actions日志中看到所有文件的路径,确保Dockerfile的路径与构建命令中的指定一致。

  3. 检查checkout步骤配置
    如果你修改了actions/checkout的path参数,会改变代码的克隆位置,需要对应调整Dockerfile的路径。例如如果设置了path: ./my-code,那么Dockerfile的路径应该是./my-code/DockerDeployDemoVS22Ent/Dockerfile。默认情况下不需要指定path参数,保持默认配置即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 19:35:24