キュータとしてドッカ+マシンを使用しているとき、私は[runner.docker]セクションの役割を理解することはできませんdocumentation on autoscalingを読ん:ドッカーマシンのユースケースのconfig.tomlの[runners.docker]セクションの使い方は?
executors documentationで[runners.docker]
image = "ruby:2.1" # The default image used for builds is 'ruby:2.1'
それは言う:
ドッカ+マシンを:ドッキングウィンドウのような、しかし、オートスケールドッカマシンを使用しています - これは[runners.docker]の存在を必要とし、[runners.machine]
私はdefinする必要がありますこの[runners.docker]セクションで[runners.machine]セクションを使用できるようになりましたが、この[runners.docker]の目的は何ですか? なぜ私はそれを使用する理由を理解していないように構成する方法を見つけることができません。
私たちのgitlab-runnerはvSphere VM上で動作し、vmwarevsphereを使用してMachineDriverでdocker + machine executorを使用して拡大縮小するように設定されています。すべてうまくいきますが、設定ファイルを完全に理解したいと思います。
私が理解できない[runners.docker]のconfig.tomlファイル(ここに書いた人が会社を去ったので、私は彼に尋ねることはできません):
[[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の部分は、vsphereドライバを使ってvsphereサーバー上にVMを作成する方法を決定します。その後、ドッキングマシンによってboot2docker isoから構築されたこのVMでは、ドッカーエンジンが実行されています。 CIパイプラインを実行すると、.gitlab-ci.ymlファイルで使用されるドッカー画像が定義されます。私たちのケースではほとんどの場合、gradle:latest。ですから、config.toml内のこのrunner.dockerイメージパラメータが使用され、どのコンテナに対して使用されるかは、最終的にこのパラメータが決して使用されないように思われるためです。それで、なぜマニュアルに要求されているのですか? –
それは正しいです。 ymlファイルに定義した場合は、必要ありません。ドキュメントでは、このドッカーマシンの設定で共有ランナーを定義します。それは私たちの会社の場合です。誰かが自分のymlに画像を定義していない場合、runner.dockerのデフォルトのものが使用されます。 –
どうもありがとう。 –