drone.io で1つのagentで複数のビルドを同時に実行する
この記事は drone.io Advent Calendar 2017 - Adventar の19日目の記事です。
drone.io は Goで作られたオープンソースのCD (Continuous Delivery)環境です。
droneのビルドの同時実行数はバージョンが上がるたびに様々に変化してきました。
v0.3
drone.toml の worker に好きなだけ docker.sock を設定します。
[worker] nodes=[ "unix:///var/run/docker.sock", "unix:///var/run/docker.sock", ]
v0.4
Web UIから管理者アカウントで「Nodes」から好きなだけ設定します。
v0.5
agentに環境変数DOCKER_MAX_PROCS
で設定します。デフォルトは2です。
drone-agent: image: drone/agent:0.8.0 command: agent restart: always ports: - 3000:3000 depends_on: - drone-server volumes: - /var/run/docker.sock:/var/run/docker.sock environment: - DRONE_SERVER=drone-server:9000 - DRONE_SECRET=00e40bfb287a0a553c80297a - DRONE_HEALTHCHECK=true - DOCKER_MAX_PROCS=4
v0.7 以上
どのバージョンからかわからないのですが、 DOCKER_MAX_PROCS
はDRONE_MAX_PROCS
になっています。デフォルトは1と、これも変更になっています。
実はこの変数はドキュメントにありません。1つのホストに複数のAgentを立てていた人はこの設定値を使うようにするほうが良いでしょう。