【GitLab 公式 を訳してみた】GitLab RunnerをDockerのサービスとしてインストールする

法律: IT 解説記事 GitLab CI コンテナ フノス(訳者)

  GitLab Runner>GitLab Runnerをインストールする>Dockerコンテナにインストールする
 

  GitLab RunnerはDockerコンテナ内にインストールすることが可能です。

 
 まずはDockerイメージをインストール、初期設定をほどこす。

  1.Dockerをインストールします。

======================
curl -sSL https://get.docker.com/ | sh
======================

  2.gitlab-runnerコンテナを作成します。
 このあと、様々なコンフィグやリソースを活用していく予定なので、ここでコンフィグ・ボリュームをマウントさせることが必要です。

======================
docker run -d --name gitlab-runner --restart always \
-v /srv/gitlab-runner/config:/etc/gitlab-runner \
-v /var/run/docker.sock:/var/run/docker.sock \
gitlab/gitlab-runner:latest
======================
  注:¥はバックスラッシュの誤変換です。

  OSXをお使いの場合は、「/srv」とされている部分が「/Users/Shared」に変更になります。

 

  もう1つ、コンフィグコンテナをカスタムデータボリュームにマウントさせる方法もあります。

======================
docker run -d --name gitlab-runner-config \
  -v /etc/gitlab-runner \
  busybox:latest \
  /bin/true

docker run -d --name gitlab-runner --restart always \
  --volumes-from gitlab-runner-config \
  gitlab/gitlab-runner:latest
======================
 注:¥はバックスラッシュの誤変換です。
 

  ランナーを運用する手段として、Dockerの利用を考えているのでしたら、Dockerのソケットをマウントさせる必要があります。次のように設定してください。

 ======================
docker run -d --name gitlab-runner --restart always \
-v /var/run/docker.sck:/var/run/docker.sock \
-v /srv/gitlab-runner/config:/etc/gitlab-runner \
gitlab/gitlab-runner:latest
======================
 注:¥はバックスラッシュの誤変換です。
 

  3.ランナーを登録する

  GitLab Runnerについて、皆さんからよくお寄せいただいている質問は、こちらの FAQ に掲載されています。

 

  アップデートの方法

  1.次のコマンドで最新バージョンをダウンロードします。

======================
docker pull gitlab/gitlab-runner:latest
======================

  2.現在使用しているコンテナを停止して、削除します。

======================
docker stop gitlab-runner && docker rm gitlab-runner
======================

  3.最新のコンテナを起動させます。

======================
docker run -d --name gitlab-runner --restart always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /srv/gitlab-runner/config:/etc/gitlab-runner \
gitlab/gitlab-runner:latest
======================

  注:データボリュームのマウントも、ランナーと同じようにやり直さなくてはなりません。(『-v /srv/gitlab-runner/config:/etc/gitlab-runner』『--volumes-from gitlab-runner』などのコマンドを使いましょう。)


 

  SSLサーバー認証を導入する

  gitlab-runnerコンテナ同士を互いに連携させるには、GitLab CIサーバーにSSL証明書を付けておく必要があります。

  たとえば、「gitlab/gitlab-runner」イメージに、SSL証明書をつけてディレクトリ「/etc/gitlab-runner/certs/ca.crt」に保管したとします。
 (証明書を保管するディレクトリは、『-e "CA_CERTIFICATES_PATH=/DIR/CERT"』と設定オプションに記入することで設定)

  「ca.crt」ファイルをコピーして「certs」ディレクトリに貼り付けます。このディレクトリはデータボリュームや、データコンテナに置かれていることがほとんどです。
 「ca.crt」ファイルは、rootディレクトリに「certs」ディレクトリを作成しておいて、そこに収容しておくのが望ましいとされます。その方が、他のgitlab-runnerに正常なランナーであると認められやすいからです。
 rootディレクトリに存在しているファイルは、コンテナ起動時点で読み込みが開始されます。システムを運用する上で重要なものはここで保存しておくと、再起動をかけたときに行方不明になったり、起動しなかったりするミスを防げます。

 

  Alpine Linux系イメージを使う

  メモリ使用量を節約したいときには、Alpine Linux系のコンテナイメージを使うとよいでしょう。

======================
gitlab/gitlab-runner    latest              3e8077e209f5        13 hours ago        304.3 MB

gitlab/gitlab-runner    alpine              7c431ac8f30f        13 hours ago        25.98 MB
======================

  Alpine Linuxイメージは、Dokcerとして使うようにしか設計されていないので、あくまで「ランナーを手軽に使用するため」の手段としてお考え下さい。

  先ほど登場した「gitlab/gitlab-runner:latest」イメージは、Ubuntu 14.04 LTSをもとに開発されています。


 

  SELinuxを使う

  一部ディストリビューション(CentOS, RedHat, Fedora)ではセキュリティ面を考慮して、デフォルトでSELinuxを使うように設定されているものがあります。

  これをランナーでも利用する場合は、次のような設定が必要です。

  1.Dockerエクゼキュータを使用するときには、通常「/var/run/docker.sock」にアクセスができる状態にないと、コンテナでビルドすることができません。
しかし、SELinuxを使用する場合には、「/var/run/docker.sock」にアクセスする際に権限認証が必要になります。
 これを円滑にするために、「selinux-dockersock」をインストールして、次のリンク先に書かれている方法を試してみてください。( https://github.com/dpw/selinux-dockersock
 

  2.「mkdir -p /srv/gitlab-runner/config」というコマンドで、固定ディレクトリを作成します。

  3.dockerを、ボリュームの「:Z」で起動します。

======================
docker run -d --name gitlab-runner --restart always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /srv/gitlab-runner/config:/etc/gitlab-runner:Z \
gitlab/gitlab-runner:latest
======================

  SELinuxとDockerボリュームとの関係性について、さらに詳しい情報は、こちらの記事に掲載されています。
 ( http://www.projectatomic.io/blog/2015/06/using-volumes-with-docker-can-cause-problems-with-selinux/

 

 Edit this page

 

 

 2017-12-04 17:24:35 / Hnoss
原文サイトを表示
[ 原文 ] https://docs.gitlab.com/runner/install/docker.html
原文ページプロジェクト並びにドキュメントファイルは、MIT Licenseのもと公開されています。(URL:https://gitlab.com/gitlab-com/gitlab-docs/blob/master/LICENSE) この記事の文章は、訳者の判断によりCreative Commons BY (version 3.0) を適用するものとします。