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分布式容器部署?