« gitlabを5秒で試そうとしたができなかった(dockerの入門解説が欲しい…) | トップページ | CentOS6上にgitlabのdockerコンテナを作成して動作させる »

2014/12/02

CentOS7上にgitlabのdockerコンテナを作成して動作させる

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は公式サイトに記載がある通りそれぞれ root5iveL!fe

 

最終イメージ作成

次回から起動するためのイメージを作成しておく。

# exit

$ docker stop gitlab

$ docker commit gitlab yukihane/centos7-gitlab

(ここで作成したイメージって、gitlabのデータベースなどが含まれていないので不完全なんですよね。作法的にこれで良いのかは分かりません。)

« gitlabを5秒で試そうとしたができなかった(dockerの入門解説が欲しい…) | トップページ | CentOS6上にgitlabのdockerコンテナを作成して動作させる »

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/18902/60751347

この記事へのトラックバック一覧です: CentOS7上にgitlabのdockerコンテナを作成して動作させる:

« gitlabを5秒で試そうとしたができなかった(dockerの入門解説が欲しい…) | トップページ | CentOS6上にgitlabのdockerコンテナを作成して動作させる »

other sites

  • follow us in feedly
  • github
  • stackoverflow

ソフトウェアエンジニアとして影響を受けた書籍

  • Christain Bauer: HIBERNATE イン アクション

    Christain Bauer: HIBERNATE イン アクション
    理論と実践が双方とも素晴らしい製品であるHibernate。本書はそのプロダクトを書名に冠していますが、Hibernateを使うつもりがなく、ORマッピングの解説書として読むにしても十分な良書です。Second EditionとしてJava Persistence With Hibernateという書籍も出版されていますが、残念ながら現在のところ 和訳はされていません。-インアクションは2.xの、Java Persistence-は3.1の頃のものなので、最新版とはちょっと違うところもあることに注意。 (★★★★★)

  • アンドリュー・S・タネンバウム: 分散システム 原理とパラダイム 第2版

    アンドリュー・S・タネンバウム: 分散システム 原理とパラダイム 第2版
    クライアント/サーバシステムを構築する上で必要となる知識が総論されてます。Web技術者も、フレームワーク部分を開発するのであれば必読。 (★★★★★)

  • Joel Spolsky∥著: ジョエル・オン・ソフトウェア

    Joel Spolsky∥著: ジョエル・オン・ソフトウェア
    前述の書籍「ソフトウエア開発プロフェッショナル」をより砕いたもの、という感じでしょうか。 前書きではプログラマでなくSE向けの本のように書かれているが、プログラマが読んでも面白い本であると思われます。 SEになった新人(あるいはそういう会社に入る/入りたての人)にとっては、これからどういったことが仕事を遂行していく上で起こりえるのか、どのように考えて行なっていけばいいのか決定する助けになると思います。 元は″Joel on Software″というブログの記事で、web上でも一部日本語で読めます。 http://japanese.joelonsoftware.com/ (★★★)

  • ドナルド・C・ゴース,ジェラルド・M・ワインバーグ: ライト、ついてますか

    ドナルド・C・ゴース,ジェラルド・M・ワインバーグ: ライト、ついてますか
    問題解決(一昔前のの流行語で言うところの『ソリューション』)能力は、システムエンジニアのスキルとして備えるべきもののうちのひとつです。しかし、これは難しい。学校で出されるテストと違い、唯一の、(問題提出者が想定している)解を求めるだけが「問題解決」では無いからです。そもそも、何が問題なのか、それは本当に問題なのか、それは本当に解決すべき問題なのか、その問題解決方法は正しいのか、などを解決しなければ、「その解は正しいのか」に辿りつくことができません。この本の最も良いところのひとつは、本があまり厚くないこと。すぐに読めるし、何回も読み返す気になるでしょう。 (★★★★★)

  • スティーブ・マコネル: ソフトウエア開発プロフェッショナル

    スティーブ・マコネル: ソフトウエア開発プロフェッショナル
    コードコンプリートで有名なスティーブマコネルの著書。新人SEに読んで欲しい。個人として業界の中でどうあるべきか、組織としてどうあるべきか、SEのプロ意識とは?SEの心構え概論、といったところでしょうか。また、業界における資格の重要性についても説かれています。この業界では資格が特に軽んじられる傾向がありますが、この傾向はどんな弊害をもたらすのか、将来的にこの業界は資格に対してどのような姿勢で臨んでいくべきなのか。日経BP社では(他の出版社もだが)最近、似たような類いのあまり面白くない書籍が乱出版されていますが、この本は別格だと思うので安心して購入して欲しいと思います。 (★★★★★)

無料ブログはココログ