GitHub Actions使用容器时,能否直接在Runner上执行run命令?
GitHub Actions容器模式下访问运行器的方法
不会完全失去对运行器(ubuntu-latest主机)的访问权限,有两种可行方法在主机上执行命令:
- 给指定run步骤添加
container: none参数
只要在需要绕开容器的步骤里加上这个参数,该步骤就会直接在主机环境运行,能直接调用预装的gh命令。示例配置:steps: - name: 容器内执行任务 run: echo "此命令在debian:10-slim容器中运行" - name: 运行器主机执行gh命令 run: gh --version container: none - 将主机的
gh命令挂载到容器内
ubuntu-latest中gh的默认路径通常是/usr/bin/gh,可以把这个路径挂载到容器里,同时注意挂载gh依赖的git相关路径,这样容器内也能直接调用主机的gh。示例配置:jobs: demo: runs-on: ubuntu-latest container: image: debian:10-slim volumes: - /usr/bin/gh:/usr/bin/gh - /usr/lib/git-core:/usr/lib/git-core steps: - name: 容器内调用主机gh命令 run: gh --version
- 给指定run步骤添加
额外注意:
- 使用
container: none的步骤会完全切换到主机的ubuntu环境,所有主机预装工具都能直接使用。 - 挂载方式需要确保容器内有
gh依赖的基础工具,若出现依赖缺失,可在容器内通过apt-get install补充对应的包。
- 使用
内容的提问来源于stack exchange,提问作者testcaseone
相关产品推荐
相关产品推荐

