dockerized github 操作是不是支持 docker run 参数的网络选项

Posted

技术标签:

【中文标题】dockerized github 操作是不是支持 docker run 参数的网络选项【英文标题】:Does dockerized github actions support network options for docker run parametersdockerized github 操作是否支持 docker run 参数的网络选项 【发布时间】:2021-05-27 07:21:01 【问题描述】:

我正在使用自托管的 github 运行器对某些软件进行 *** 访问,我正在尝试在自托管运行器上使用 dockerized github 操作,但我遇到了问题,因为我需要在 github 操作时指定 --network 主机标志运行 docker run。有没有办法让 github 操作使用主机的网络?

【问题讨论】:

【参考方案1】:

据我所知,这是不可能的。它也不适用于步骤。不过,jobs 上提供了选项。唯一的另一种方法是让您创建一个复合操作并直接在其中运行docker run ...。这是我为自己的工作流程编写的。它稍微复杂一些,但它允许您根据变量名称前缀将环境变量从运行器自动传递到 docker 容器:

name: Docker start container
description: Start a detached container

inputs:
  image:
    description: The image to use
    required: true
  name:
    description: The container name
    required: true
  options:
    description: Additional options to pass to docker run
    required: false
    default: ''
  command:
    description: The command to run
    required: false
    default: ''
  env_pattern:
    description: The environment variable pattern to pass to the container
    required: false
    default: ''

outputs:
  cid:
    description: Container ID
    value: $ steps.info.outputs.cid 

runs:
  using: composite
  steps:
    - name: Run
      shell: bash
      run: >
        variables='';
        for i in $(env | grep '$ inputs.env_pattern ' | awk -F '=' 'print $1'); do
          variables="--env $i $variables";
        done;
        docker run -d
        --name $ inputs.name 
        --network host
        --cidfile $ inputs.name .cid
        $variables
        $ inputs.options 
        $ inputs.image 
        $ inputs.command 
    - name: Info
      id: info
      shell: bash
      run: echo "::set-output name=cid::$(cat $ inputs.name .cid)"

并使用它:

      - name: Start app container
        uses: ./.github/actions/docker-start-container
        with:
          image: myapp/myapp:latest
          name: myapp
          env_pattern: 'MYAPP_'
          options: --entrypoint entrypoint.sh
          command: >
            --check
            -v

【讨论】:

以上是关于dockerized github 操作是不是支持 docker run 参数的网络选项的主要内容,如果未能解决你的问题,请参考以下文章

github 操作:发布“--user/api/security/token”:不支持的协议方案“”

fortify 是不是支持linux上docker分布式容器部署?

云计算docker build如何支持参数化构建?

Docker 中的 Docker | Github 操作 - 自托管运行器

在 github 操作中使用特定的 docker 版本

我无法使用 Github 操作在 Github 内部 docker 注册表中发布图像