Поддерживают ли dockerized действия github параметры сети для параметров запуска docker

Я использую самостоятельно размещенные бегуны github для доступа vpn к некоторому программному обеспечению, и я пытаюсь использовать dockerized действие github на самостоятельно размещенных бегунах, но у меня возникают проблемы, потому что мне нужно указать флаг хоста --network, когда действие github запускает запуск докера . Есть ли способ заставить действие github использовать сеть хоста?

1 ответ

Насколько я знаю, это невозможно. Он также недоступен на ступенях. Однако для вакансий доступны варианты . Единственный другой способ - создать составное действие и запустить docker run ...прямо в нем. Вот тот, который я написал для собственного рабочего процесса. Это немного сложнее, но позволяет автоматически передавать переменную среды из бегуна в контейнер докера на основе префикса имени переменной:

      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