对于 docker 机器的用例,config.toml 中的 [runners.docker] 部分有什么用?
What's the use of the [runners.docker] section in config.toml for use case with docker machine?
正在阅读 documentation on autoscaling 当使用 docker+机器作为执行者时,我无法理解 [runner.docker] 部分的作用:
[runners.docker]
image = "ruby:2.1" # The default image used for builds is 'ruby:2.1'
在 executors documentation 中说:
docker+machine : like docker, but uses auto-scaled docker machines -
this requires the presence of [runners.docker] and [runners.machine]
我知道我必须定义这个 [runners.docker] 部分才能使用 [runners.machine] 部分,但是这个 [runners.docker] 的目的是什么?
我找不到如何配置它,因为我不明白为什么要使用它。
我们的 gitlab-runner 在 vSphere VM 上运行,并配置为使用 docker+ 机器执行器和使用 vmwarevsphere 的 MachineDriver 进行扩展。一切正常,但我想完全理解配置文件。
这是我们的 "censored with stars" config.toml 文件,其中 [runners.docker] 我看不懂(注意写它的人离开了公司,所以我看不懂问他):
[[runners]]
name = "gitlab-runner"
limit = 6
output_limit = 102400
url = "http://gitlab.**************.lan"
token = "*******************"
executor = "docker+machine"
[runners.docker]
tls_verify = false
image = "docker:latest"
dns = ["*.*.*.*"]
privileged = true
disable_cache = false
volumes = ["/etc/localtime:/etc/localtime:ro", "/var/run/docker.sock:/var/run/docker.sock", "/etc/docker/certs.d:/etc/docker/certs.d", "/cache:/cache", "/builds:/builds"]
cache_dir = "cache"
shm_size = 0
[runners.cache]
Type = "s3"
ServerAddress = "*.*.*.*"
AccessKey = "*****************"
SecretKey = "*****************"
BucketName = "runner"
Insecure = true
[runners.machine]
IdleCount = 4
MaxBuilds = 10
IdleTime = 3600
MachineDriver = "vmwarevsphere"
MachineName = "gitlab-runner-pool-1-%s"
MachineOptions = ["vmwarevsphere-username=************", "vmwarevsphere-password=*****************", "vmwarevsphere-vcenter=*.*.*.*", "vmwarevsphere-datastore=*********", "vmwarevsphere-memory-size=3096", "vmwarevsphere-disk-size=40960", "vmwarevsphere-cpu-count=3", "vmwarevsphere-network=*****************", "vmwarevsphere-datacenter=**************", "vmwarevsphere-hostsystem=*******************", "engine-storage-driver=overlay2", "engine-insecure-registry=**************", "engine-insecure-registry=*******************"]
OffPeakPeriods = ["* * 0-8,21-23 * * mon-fri *", "* * * * * sat,sun *"]
OffPeakTimezone = "Local"
OffPeakIdleCount = 1
OffPeakIdleTime = 600
[runners.machine]
部分定义了如何启动和配置 运行器机器,[runners.docker]
部分然后定义了如何配置runner在那台机器上。
Docker-机器本身仅执行以下操作(如您所见here):
"Docker Machine is a tool that lets you install Docker Engine on virtual hosts, and manage the hosts with docker-machine commands."
所以这对 Gitlab runner 没有任何作用,之后你仍然需要配置 runner,这就是 [runners.docker]
部分发挥作用的地方,因为 runner 需要知道要使用的默认图像和体积安装等
正在阅读 documentation on autoscaling 当使用 docker+机器作为执行者时,我无法理解 [runner.docker] 部分的作用:
[runners.docker]
image = "ruby:2.1" # The default image used for builds is 'ruby:2.1'
在 executors documentation 中说:
docker+machine : like docker, but uses auto-scaled docker machines - this requires the presence of [runners.docker] and [runners.machine]
我知道我必须定义这个 [runners.docker] 部分才能使用 [runners.machine] 部分,但是这个 [runners.docker] 的目的是什么? 我找不到如何配置它,因为我不明白为什么要使用它。
我们的 gitlab-runner 在 vSphere VM 上运行,并配置为使用 docker+ 机器执行器和使用 vmwarevsphere 的 MachineDriver 进行扩展。一切正常,但我想完全理解配置文件。
这是我们的 "censored with stars" config.toml 文件,其中 [runners.docker] 我看不懂(注意写它的人离开了公司,所以我看不懂问他):
[[runners]]
name = "gitlab-runner"
limit = 6
output_limit = 102400
url = "http://gitlab.**************.lan"
token = "*******************"
executor = "docker+machine"
[runners.docker]
tls_verify = false
image = "docker:latest"
dns = ["*.*.*.*"]
privileged = true
disable_cache = false
volumes = ["/etc/localtime:/etc/localtime:ro", "/var/run/docker.sock:/var/run/docker.sock", "/etc/docker/certs.d:/etc/docker/certs.d", "/cache:/cache", "/builds:/builds"]
cache_dir = "cache"
shm_size = 0
[runners.cache]
Type = "s3"
ServerAddress = "*.*.*.*"
AccessKey = "*****************"
SecretKey = "*****************"
BucketName = "runner"
Insecure = true
[runners.machine]
IdleCount = 4
MaxBuilds = 10
IdleTime = 3600
MachineDriver = "vmwarevsphere"
MachineName = "gitlab-runner-pool-1-%s"
MachineOptions = ["vmwarevsphere-username=************", "vmwarevsphere-password=*****************", "vmwarevsphere-vcenter=*.*.*.*", "vmwarevsphere-datastore=*********", "vmwarevsphere-memory-size=3096", "vmwarevsphere-disk-size=40960", "vmwarevsphere-cpu-count=3", "vmwarevsphere-network=*****************", "vmwarevsphere-datacenter=**************", "vmwarevsphere-hostsystem=*******************", "engine-storage-driver=overlay2", "engine-insecure-registry=**************", "engine-insecure-registry=*******************"]
OffPeakPeriods = ["* * 0-8,21-23 * * mon-fri *", "* * * * * sat,sun *"]
OffPeakTimezone = "Local"
OffPeakIdleCount = 1
OffPeakIdleTime = 600
[runners.machine]
部分定义了如何启动和配置 运行器机器,[runners.docker]
部分然后定义了如何配置runner在那台机器上。
Docker-机器本身仅执行以下操作(如您所见here):
"Docker Machine is a tool that lets you install Docker Engine on virtual hosts, and manage the hosts with docker-machine commands."
所以这对 Gitlab runner 没有任何作用,之后你仍然需要配置 runner,这就是 [runners.docker]
部分发挥作用的地方,因为 runner 需要知道要使用的默认图像和体积安装等