AmazonLinuxにGitLab構築してみる
特にこれといって作ってみたいサービスがあるわけではないのですが、GitにコミットしたらJenkinsがテストしてデプロイして…という環境を作ってみたくなったので、まずはGitLabをEC2上で動かしてみます。
- 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の細かい設定はすっとばしているので、それは後々…