gitlab-runner 11.11 での仕様変更ではまった話

何が起きたのか

gitlab-runner 11.11 にて docker executor について .gitalb-ci.yml で service として指定されているものにも、 runner 設定で指定されたvolumesがbind-mountされるようになりました。

その結果、 docker:dind を serviceとして記載した状態で docker build のために /var/run/docker.sock を volumesに書いておいたら docker:dind上でdokcer-damemonが起動できず、 docker run ができなかった

という話。

回避

多くのCIにて、dindを使わず docker build しており、それらを変更してまわるのはとても手間なので、

/var/run/docker.sock をbind-mount しない runnerを用意しました。

この問題のMerge Requestへの link

Extract volumes configuration to a separate struct (!1261) · Merge Requests · GitLab.org / gitlab-runner · GitLab

Add feature flag to mounting volumes to services (!1352) · Merge Requests · GitLab.org / gitlab-runner · GitLab

Remove FF_USE_LEGACY_VOLUMES_MOUNTING_ORDER feature flag (!1889) · Merge Requests · GitLab.org / gitlab-runner · GitLab