我正在使用自托管 github 运行器对某些软件进行 vpn 访问,并且我正在尝试在自托管运行器上使用 dockerized github 操作,但我遇到了问题,因为我需要在 github 操作运行 docker run 时指定 --network 主机标志. 有没有办法让 github 操作使用主机的网络?
问问题
398 次
1 回答
0
据我所知,这是不可能的。它也不适用于步骤。不过,选项可用于 作业。唯一的另一种方法是创建一个复合动作并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
于 2021-02-25T07:21:41.523 回答