【发布时间】:2020-11-20 03:49:59
【问题描述】:
总结:
自托管运行器上的 GitHub 操作在 docker 容器中执行,这些容器以一系列选项启动,由操作/运行器软件预先确定。如何优雅地为docker create 和docker run 添加自定义选项?
详细说明
当我在自托管运行器上运行 github 操作工作流时,流程开始如下:
- 设置作业
- 初始化容器
- 检查 docker 版本
- 清理以前作业的资源
- 创建本地容器网络
- 启动作业容器这里变得有趣
作业容器是使用这样的命令启动的,正如我在日志中看到的那样:
/usr/bin/docker create --name da928aa7e61a4a44bd8e525...ea --label d36a64 --workdir /__w/xyz/xyz --network github_network_187...1631 -e "HOME=/github/home" -e GITHUB_ACTIONS=true -e CI=true -v "/var/run/docker.sock":"/var/run/docker.sock" etc. pp.
现在,我有一些非常特殊的测试要在该容器中作为我的 CI 构建的一部分运行。为此,我需要为/usr/bin/docker create 指定其他选项,所以想象一下我需要来自这个list 的任何选项。比如说--cap-add。
我该怎么做?我已经想到了一些选项:
- 我可以破解跑步者,但它们会自动更新,我不想重复这样做。
- 我还可以将 /usr/bin/docker 移动到其他位置并替换为智能 bash 脚本,修改选项然后调用 docker。但这会影响该系统上所有用户的 docker。
还有其他想法吗?
【问题讨论】:
标签: docker github-actions github-actions-runners