OfficicialのCentOS7用RPMを用いてgitlabコンテナを作成する手順です。
EC2のCentOS 7 (x86_64) with Updates HVMで試しています。
先の記事を読まれるとわかる通り、私はdockerのことほとんど知らないので、あまりここの記述を鵜呑みにしないようにご注意ください。
Dockerインストールと初期設定
取り敢えずupdate。
$ sudo yum update -y
dockerのinstall。
$ sudo yum install -y docker
dockerサービスの起動。及び、OS起動時の自動起動設定。
$ sudo systemctl start docker.service
$ sudo systemctl enable docker.service
vigrコマンドで自分(ユーザ名: centos)をdockerグループに所属させます。dockerグループに所属しているとdockerコマンド使用時にsudoしなくて良くなるそうです。
(※vigrでなくusermod -Gで編集するように解説しているページも多いです。)
グループ編集を反映させるため一旦ログアウトしてログインし直し。
dockerコマンドを実行してみて正常動作することを確認。
$ docker info
systemdが動作するCentOS7イメージの作成
gitlabのRPMがsystemd関連を要求するので予め導入しておきます。
参考: CentOS 7のDockerコンテナ内でsystemdを使ってサービスを起動する - Qiita
officialのcentos7イメージにはfakesystemdとやらが入っている。これを本物のsystemdに入れ替え、今回用いるイメージを作成する。
$ docker run -it --name temp centos:centos7 /bin/bash
# yum swap -y fakesystemd systemd
# exit
$ docker commit temp yukihane/centos7-systemd
コンテナ内作業のための準備
nsenter(及びdocker-enter)コマンドを導入。
$ docker run --privileged --rm -v /usr/local/bin:/target jpetazzo/nsenter
/usr/local/bin に上記2コマンドがインストールされます。ちなみにdocker1.3からはdocker execという標準コマンドで同等機能が実現できるようです(ので近い将来この作業は不要になるでしょう)。
コンテナを起動。sshdはホストOSの使用ポートとかぶらないよう44番を使用する前提です。
$ mkdir /home/centos/gitlabdata
$ docker run --privileged -d -p 80:80 -p 44:44 -v /home/centos/gitlabdata:/var/opt/gitlab --name gitlab yukihane/centos7-systemd /sbin/init
起動したコンテナに入る。
$ docker-enter gitlab /bin/sh
言語設定。
# localedef -vc -i ja_JP -f UTF-8 ja_JP.UTF-8
gitlabのインストール
公式に書いてある通りopenssh-serverとpostfix、そしてその他必要になるパッケージを導入します。
# yum install -y openssh-server postfix hostname cronie
/etc/ssh/sshd_config で44番ポートを使用するように設定変更します。
起動設定。
# systemctl enable sshd
# systemctl start sshd
# systemctl enable postfix
# systemctl start postfix
gitlibパッケージをインストールします。(URLは公式ページを参照してください。)
# curl -O https://downloads-packages.s3.amazonaws.com/centos-7.0.1406/gitlab-7.5.1_omnibus.5.2.0.ci-1.el7.x86_64.rpm
# rpm -ivh gitlab-7.5.1_omnibus.5.2.0.ci-1.el7.x86_64.rpm
/etc/gitlab/gitlab.rb を開き、external_urlの値を 'http://<IPアドレス>' とでもしておきます。
また、44番ポートを使用するようにするため、下記を追記します(参考: GitLab で使用する SSH のポート番号を変更する | バシャログ。)。
gitlab_rails['gitlab_shell_ssh_port'] = 44
/opt/gitlab/embedded/cookbooks/gitlab/recipes/selinux.rb を開き、すべてコメントアウトします。(SELinuxの設定のようですが、centos7イメージではSELinuxは無効に設定されているようなので。)
gitlabの設定を実行。
# gitlab-ctl reconfigure
以上で完了。webブラウザでec2インスタンスにhttpアクセスすればgitlabスタートページが表示されるはず。
初期id,passwordは公式サイトに記載がある通りそれぞれ root と 5iveL!fe 。
最終イメージ作成
次回から起動するためのイメージを作成しておく。
# exit
$ docker stop gitlab
$ docker commit gitlab yukihane/centos7-gitlab
(ここで作成したイメージって、gitlabのデータベースなどが含まれていないので不完全なんですよね。作法的にこれで良いのかは分かりません。)
最近のコメント