はじめに
仕事でもGitHubなどでリポジトリ管理を行いたいのですが、セキュリティの観点上なかなかそういうわけにもいきません。そこでGitLabを使おうと思い調べてみると、sameersbn/docker-gitlabといった便利なものを作られている方がいました。
下記の記事では、これをもう少し使いやすくする方法が書かれています。
Dockerで5分くらいでGitLabを試す
今回はDockerで5分くらいでGitLabを試すを元に、LDAP認証を行うGitLabコンテナを作ってみようと思います。
※LDAPサーバーは既にあるものとします。
環境
- OS: ubuntu14.04
- docker version: 1.4.1
前準備
$ git clone https://github.com/doragon/Dockerfile.git
$ mv Dockerfile/ubuntu/14.04/gitlab/ ./
$ rm -rf ./Dockerfile
$ cd gitlab/
$ mkdir git
$ mkdir log
$ mkdir mysql
$ chmod 777 git/
$ chmod 777 log/
$ chmod 777 mysql/
コンテナ起動
Redis Container
$ sudo docker run --name gitlab-redis -d sameersbn/redis:latest
MySQL Container
$ sudo docker run --name gitlab-mysql -d \
-e 'DB_NAME=gitlabhq_production' \
-e 'DB_USER=gitlab' \
-e 'DB_PASS=password' \
-v [PATH]/gitlab/mysql:/var/lib/mysql \
sameersbn/mysql:latest
※[PATH]は適宜修正して下さい。
GitLab Container
LDAP認証を行わない場合
$ sudo docker run -d -p 10022:22 -p 10080:80 \
-e "GITLAB_HOST=localhost" \
-v [PATH]/gitlab/git:/home/git/data \
-v [PATH]/gitlab/log:/var/log/gitlab \
--link gitlab-mysql:mysql \
--link gitlab-redis:redisio \
sameersbn/gitlab:latest
内部の起動に数分かかるので、それを待ってからブラウザにて下記にアクセスする。
http://(dockerホストのIPアドレス):10080
デフォルトのユーザー名、パスワードはこちら。(ログイン後、すぐに変更指示が出ます)
- username: root
- password: 5iveL!fe
LDAP認証を行う場合
LDAPの設定を行う。修正及び、空欄箇所を埋めるようにする。
code/conf/env
GITLAB_HOST=
LDAP_ENABLED=true
LDAP_HOST=
LDAP_PORT=389
LDAP_UID=uid
LDAP_METHOD=plain
LDAP_BIND_DN=
LDAP_PASS=
LDAP_ACTIVE_DIRECTORY=false
LDAP_ALLOW_USERNAME_OR_EMAIL_LOGIN=false
LDAP_BASE=
$ cd code
$ sudo docker build -t koide/gitlab:latest .
$ cd ../
$ sudo docker run -d -p 10022:22 -p 10080:80 \
--env-file ./code/conf/env \
-v [PATH]/gitlab/git:/home/git/data \
-v [PATH]/gitlab/log:/var/log/gitlab \
--link gitlab-mysql:mysql \
--link gitlab-redis:redisio \
koide/gitlab:latest
おわりに
LDAPを使用する、しないに関わらず、GitLabコンテナを簡単に作ることができます。
もう少し、詳細な説明をご希望の方は下記を参照して下さい。