使用GitHub Actions构建Docker镜像提示找不到Dockerfile问题求助
问题根因
GitHub Actions 中每个步骤的执行环境是相互独立的,前序步骤的工作目录变更(包括使用 cd 命令切换路径、单独为某个步骤设置 working-directory 参数)都不会传递到后续步骤。
你当前的 Build docker image 步骤没有指定工作目录,默认会在仓库根目录执行构建命令,自然找不到存放在 app 子目录下的 Dockerfile。
之前尝试的方案无效的原因
- 单独写的
Navigate to app folder步骤里的cd app仅在当前步骤的 shell 环境中生效,步骤执行结束后工作目录会重置为仓库根目录,对后续步骤无任何影响 - 给
Open Directory步骤设置的working-directory: app仅作用于当前执行ls命令的步骤,不会传递给后面的构建步骤
解决方案
方案1:给构建步骤指定工作目录
直接在 docker 构建步骤中添加 working-directory 参数即可,修改后配置如下:
- name: Build docker image working-directory: app run: docker build . -t app_name -f Dockerfile
方案2:在构建命令中直接传入完整路径
不需要切换工作目录,直接在 docker build 命令中指定上下文路径和 Dockerfile 的完整相对路径:
- name: Build docker image run: docker build ./app -t app_name -f ./app/Dockerfile
内容的提问来源于stack exchange,提问作者Stian
相关产品推荐
相关产品推荐

