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

Github Actions中使用docker/build-push-action构建镜像找不到Dockerfile

问题解决:Github Actions中docker/build-push-action@v2找不到Dockerfile

问题描述

使用原生docker build命令可正常找到Dockerfile并构建镜像:

- name: Build the Docker image
  run: docker build . --file Dockerfile --build-arg NPM_TOKEN=${{ secrets.TOKEN }}  --tag my-image-name:$(date +%s)

但切换为docker/build-push-action@v2动作后,出现找不到Dockerfile的报错:

- name: Docker Build and Push
  uses: docker/build-push-action@v2
  with:
    context: .
    file: Dockerfile
    tags: my-image-name:t10
    build-args: |
      "NPM_TOKEN=${{ secrets.TOKEN }}"
    push: true

报错信息:

Error: buildx failed with: error: failed to solve: rpc error: code = Unknown desc = failed to solve with frontend dockerfile.v0: failed to read dockerfile: open /var/lib/docker/tmp/buildkit-mount4215207778/Dockerfile: no such file or directory

目录结构:项目根目录下包含Dockerfile、.github/workflows/工作流文件及其他项目文件。

解决方案

问题出在build-args的格式错误,多行写法的参数无需添加双引号,修改后的配置如下:

- name: Docker Build and Push
  uses: docker/build-push-action@v2
  with:
    context: .
    file: Dockerfile
    tags: my-image-name:t10
    build-args: |
      NPM_TOKEN=${{ secrets.TOKEN }}
    push: true

原因说明

docker/build-push-action的build-args参数采用多行写法时,直接以KEY=VALUE格式编写即可,额外添加的双引号会被解析为参数值的一部分,导致buildkit处理构建参数时出现异常,间接引发Dockerfile路径解析错误。

另外可确认context和file路径的正确性:

  • context: .表示使用当前工作目录作为构建上下文,对应Github Actions中的${{ github.workspace }}
  • file: Dockerfile表示在构建上下文根目录查找Dockerfile,和docker build命令的路径逻辑一致,配置无误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 17:15:53