メンターを任されたエンジニアのブログ

ある日メンターを任された3流エンジニアのブログ

環境構築:GitLab+Rocket.Chat+Kanboard on Docker - GitLab編

最終的なイメージ

f:id:hatman62:20160628232742p:plain

OwnCloudについてはちょっと待ってくださいね。。。
後日構築手順をやりたいと思います(やるとは言っていない)
とりあえずGitLabまで出来たら完了でいいかな。

Gitlabとは

オンプレミスでGitリポジトリ管理ができるツール、それがGitLab。
説明間違ってたらごめんなさい。

さて、GitLabは公式なDockerイメージが用意されている上に、ちゃんとドキュメントまで用意されているので、
英語さえ読めれば簡単に構築できます。

GitLab Documentation

問題は私の英語力が中学生以下ということだ。

さて、困ったね。

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ディレクトリをまっさらにしたり、試したんですけどねぇ、、、寝ぼけたかな。

スマートではないけど確実な方法ですので、お試しください。