環境構築:GitLab+Rocket.Chat+Kanboard on Docker - GitLab編
最終的なイメージ
OwnCloudについてはちょっと待ってくださいね。。。
後日構築手順をやりたいと思います(やるとは言っていない)
とりあえずGitLabまで出来たら完了でいいかな。
Gitlabとは
オンプレミスでGitリポジトリ管理ができるツール、それがGitLab。
説明間違ってたらごめんなさい。
さて、GitLabは公式なDockerイメージが用意されている上に、ちゃんとドキュメントまで用意されているので、
英語さえ読めれば簡単に構築できます。
問題は私の英語力が中学生以下ということだ。
さて、困ったね。
docker-compose.ymlの利用
ドキュメントの通り、コマンド一つで立ち上がるんだけれど、
コンテナイメージが吹っ飛んでしまった時、もう一度同じdocker run ...
を打つ必要があり、正直めんどい。
なので、1コンテナだけなんだけど、docker-compose.ymlに書いてしまう。
app: image: gitlab/gitlab-ce volumes: - ./data:/var/opt/gitlab - ./config:/etc/gitlab - ./logs:/var/opt/gitlab ports: - "8020:443" - "8010:8010" - "8030:22" restart: always hostname: 'hostname' #// <- ドメイン名を指定 environment: GITLAB_OMNIBUS_CONFIG: | external_url 'http://hostname:8010' #// <- ドメイン名:ポート番号 gitlab_rails['gitlab_shell_ssh_port'] = 8030 #// <- 使うのかわからないけど、とりあえず gitlab_rails['ldap_enabled'] = true gitlab_rails['ldap_servers'] = YAML.load <<-'EOS' # remember to close this block with 'EOS' below main: # 'main' is the GitLab 'provider ID' of this LDAP server label: 'LDAP' host: 'XX.XX.XXX.XXX' #// <-IPアドレスで指定 port: 389 uid: 'uid' method: 'plain' # "tls" or "ssl" or "plain" bind_dn: 'cn=admin,dc=hoge,dc=jp' password: 'passwd' active_directory: false #//<- OpenLdapなので allow_username_or_email_login: false block_auto_created_users: false base: 'dc=hoge,dc=jp' user_filter: '' attributes: username: ['uid'] email: ['mail'] name: 'cn' first_name: 'givenName' last_name: 'sn' EOS
<-IPアドレスで指定
ここ、コレで詰まった。
最初はドメイン指定をしていたのだけど、それだとNG。接続エラーになってしまった。
自分自身(HostOS)だし、問題なく名前解決できると思ったんだけど、、、、
とりあえずIPアドレス指定で解決。
何か知ってる人いたら教えてほしい。。。
volumes: - ./data:/var/opt/gitlab - ./config:/etc/gitlab - ./logs:/var/opt/gitlab
ここにある通り、ディレクトリを作成
# mkdir data # mkdir config # mkdir logs
- data:gitのデータが入ってくる
- config:設定ファイル
- logs:各種ログ
あとは、docker-compose up -d
で起動します。
起動に時間かかるので、焦らず待ちましょう。
docker-compose.ymlのGITLAB_OMNIBUS_CONFIG
の設定が間違っていた場合
LDAPなんかね、そんな簡単に連携できねぇんだよ。
3流エンジニアなめんな。
というあなた、というか私。
./config/gitlab.rb
を修正した後、Dockerコンテナを再起動しましょう
# docker-compose restart
これで修正が反映されるはずです。
私の場合、docker-compose.ymlを修正して再起動やら、コンテナ削除やらしてもうまく反映できませんでした。
configディレクトリをまっさらにしたり、試したんですけどねぇ、、、寝ぼけたかな。
スマートではないけど確実な方法ですので、お試しください。