Edited at

GitLab on docker でLDAP認証を利用する

More than 3 years have passed since last update.


はじめに

仕事でも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コンテナを簡単に作ることができます。

もう少し、詳細な説明をご希望の方は下記を参照して下さい。