概括:
自托管运行器上的 GitHub 操作在 docker 容器中执行,这些容器以一系列选项启动,由操作/运行器软件预先确定。如何优雅地为docker create
and添加自定义选项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
因此想象我需要此列表中的任何选项。比方说--cap-add
。
我怎样才能做到这一点?我已经想到了一些选择:
- 我可以破解跑步者,但它们会自动更新,我不想重复这样做。
- 我还可以将 /usr/bin/docker 移动到不同的位置并替换为智能 bash 脚本,修改选项然后调用 docker。但这会与该系统上所有用户的 docker 混淆。
还有其他想法吗?