OSはWindows/Linux/MacOSをサポートしているセルフホストのGitHubエージェント。
…が、ここではLinuxのみ記す。WindowsやMacOSのネイティブなRunnerは扱わない。
GitHubはエージェント側でセットアップを済ませておく必要がある。Jenkinsのエージェントと同じで面倒。
GitLab RunnerはDocker環境をサポートしているものがDockerHubに登録されている。
DOCKER_GID未定義時はDocker非サポート、定義時はDockerサポートでビルドするdocker-compose.ymlを用意した。
Dockerエンジンのインストールを除いているため、オフィシャルなサンプルとは異なる。
GitLab Runner同様、ホストのDockerをソケット通信で利用するようにしている。
ホストのDocker環境を汚されたくない場合はDocker In Dokcerなどを利用する必要がある。
Docker In Dockerを使って、Runner単位で環境を用意するのがお勧め。
安全に一時的なデータを削除できる。
また、別のコンテナやサービスと、ポートやIPアドレス範囲が干渉する可能性を減らすこともできる。
docker – Official Image | Docker Hub
docker compose
登録時は対話型になっているので、コンテナ内からセットアップを完了させる必要あり。