AmazonLinuxにGitLab構築してみる

特にこれといって作ってみたいサービスがあるわけではないのですが、GitにコミットしたらJenkinsがテストしてデプロイして…という環境を作ってみたくなったので、まずはGitLabをEC2上で動かしてみます。

まずは、EC2インスタンスの起動からやります。
特にこだわりはないのでAmazon Linux AMIを選択。
サイズはt2.micro。後々Jenkins載せるとちゃんと動いてくれるのか不安ですが、そのときはそのときということで。
セキュリティグループは、SSHとHTTP用にいくつか開けておきます。
あとはほぼデフォルトの設定で。

ELBやRoute53を使うわけではないので、EIPを作成したインスタンスに直接割り当てました。

  • Dockerインストール


GitHubクローンのGitLabを5分でインストールした - アルパカDiary

こちらの記事を参考にGitLabを入れようとしたのですが、Rubyのライブラリがないよと何度もエラーで怒られて結局解決できなかったので、Dockerを入れてその上で動かすことにしました。

まずはDockerをインストールします。

$ sudo yum -y update
$ sudo yum -y --enablerepo=epel install docker-io
$ sudo service docker start

おお、簡単!

  • 次にGitLabを


sameersbn/docker-gitlab · GitHub
こちらで公開されているイメージを使って簡単構築…と思いきや、Quick Startに従うだけだと動かず…。
データベースも動かしておかないといけないらしいので、PostgreSQLとRedisもDockerで動かすことにします(もちろん上記のリンク先で公開されているイメージで!)。

最新のイメージを取得し、ローカルにデータを置いておく場所を作成。

$ sudo docker pull sameersbn/gitlab:latest
$ sudo docker pull sameersbn/postgresql:latest
$ sudo docker pull sameersbn/redis:latest
$ sudo mkdir -p /opt/gitlab/data
$ sudo mkdir -p /opt/postgresql/data

DBから起動し、最後にGitLabのコンテナを立ち上げます。

$ sudo docker run --name=redis -d sameersbn/redis:latest
$ sudo docker run --name=postgresql -d \
 -e 'DB_NAME=gitlabhq_production' -e 'DB_USER=gitlab' -e 'DB_PASS=password' \
 -v /opt/postgresql/data:/var/lib/postgresql \
 sameersbn/postgresql:latest
$ sudo docker run --name='gitlab' -it -e 'GITLAB_PORT=10080' -e 'GITLAB_SSH_PORT=10022'  -p 10022:22 -p 10080:80  --name=gitlab -d --link postgresql:postgresql --link redis:redisio -v /opt/gitlab/data:/home/git/data  sameersbn/gitlab:latest

最後のコマンドではセキュリティグループに開けておいたポートを指定しています。

少し時間が経ってからブラウザからhttp://EIPのアドレス:10080にアクセスして、GitLabのログイン画面が表示されればOKです。

らくちん!
※GitLabの細かい設定はすっとばしているので、それは後々…