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

自定义GitHub Action内层Docker容器无法访问调用方仓库文件如何解决

问题原因

GitHub Action 运行时会自动将调用方仓库的根目录挂载到外层容器的 ${GITHUB_WORKSPACE} 环境变量对应路径(默认是 /github/workspace),你当前启动内层容器时没有将这个目录挂载到内层容器,所以内层容器只能看到自身镜像内的文件。

解决方案

修改外层 entrypoint.sh 中的 docker run 命令,添加目录挂载参数和工作目录指定参数即可:

#!/bin/sh -l
ALPINE_VERSION=$1
cd /docker-action
docker build -t docker-action --build-arg alpine_version="$ALPINE_VERSION" . 
# 新增挂载参数,把仓库目录同步到内层容器
docker run -v "${GITHUB_WORKSPACE}":"${GITHUB_WORKSPACE}" -w "${GITHUB_WORKSPACE}" docker-action

参数说明

  • -v "${GITHUB_WORKSPACE}":"${GITHUB_WORKSPACE}":将外层容器中已经能访问的仓库根目录,映射到内层容器的同一路径
  • -w "${GITHUB_WORKSPACE}":指定内层容器启动后的默认工作目录为仓库根目录,进入容器后执行 ls 就可以直接看到所有仓库文件

如果遇到内层容器读写仓库文件的权限问题,可以在 docker run 中额外添加 --user $(id -u):$(id -g) 参数,用和外层容器一致的用户权限启动内层容器。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 18:27:06