少し前に GitLab を Docker で構築する記事を書いたのですが、既に現状のものと合っていないことがわかりました。
しかも、以前の手順のままでは動作する環境が限られてしまう感じでした。
なにが変わったか
SSL のために、 Let’s Encrypt を使用するようになったようです。
公開されるサービスで、そのサーバーが外と直接つながっているような場合には問題にならないでしょう。
しかし、Let’s Encrypt と通信できないような状況下では構築に失敗してしまいます。
新しい構築手順
以前の手順通りに、 docker-compose.yml を取得してきます。
そして、 SSL を使わないで構築するよう設定を書き換えます。
これには次のように編集します。
web: image: 'gitlab/gitlab-ce:latest' restart: always hostname: '(ホスト名/IPもOK)' environment: GITLAB_OMNIBUS_CONFIG: | external_url 'http://(IPアドレス)' letsencrypt['enable'] = false ports: - '80:80' - '443:443' - '9922:22' volumes: - '/srv/gitlab/config:/etc/gitlab' - '/srv/gitlab/logs:/var/log/gitlab' - '/srv/gitlab/data:/var/opt/gitlab'
初期状態で SSH が有効だったので、 22番ポートのフォワーディングは変更しています。
見ての通り、 letsencrypt の設定を無効化としています。これにより、内部的に構築するようなものであっても docker-compose は成功すると思います。
自己証明書 SSL で使う
未検証ですが、let’s encrypt を無効化した状態で、手動で自己証明書を作成すればできそうな感じです。
hostname に設定した名前で、証明書のファイルを検索するような動きをみせていたので、 hoge.pem,crt,key などを /srv/gitlab/config/trusted-certs ディレクトリの中においたら認識してくれるのではと予想しています。