Github Actions,自托管运行程序:可以向'docker create'



摘要:

自托管运行程序上的GitHub操作在docker容器中执行,这些容器由操作/运行程序软件预先确定的一组选项启动。如何优雅地为docker createdocker 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

还有其他想法吗?

我在这里回答我自己的问题:

选项可以指定为工作流yml的一部分,如下所述:

https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idcontainer

github/workloads/workflow.yml 的示例部分

(...)
container:
image: contoso.azurecr.io/bionic-custom:latest
options: --cap-add=NET_ADMIN
(...)

相关内容

  • 没有找到相关文章

最新更新