LoginSignup
3
6

More than 3 years have passed since last update.

GitLabをDocker+Apacheでサブディレクトリ運用する

Last updated at Posted at 2020-01-10

はじめに

OSSのGitリポジトリマネージャGitLabをDockerのコンテナ上で運用します
サブディレクトリで運用し,https://example.com/gitlab みたいなURLからアクセスできるようにします

構成

  • Apacheでwebブラウザからの接続を受け,リバースプロキシでlocalhost:3000にHTTP接続
    • HTTPSを使う場合でも,ApacheでHTTPS接続を終端
  • Dockerで3000番ポートからコンテナの80番ポートに接続

これにより,システムの環境とGitLabの環境をコンテナで分離して運用できます
また,ApacheでHTTPS接続を終端するので,GitLab側で余計な設定が不要になります

環境

  • Debian 9.11
  • Apache 2.4.25
  • Docker 1.13.1
  • docker-compose 1.16.1
  • GitLab 12.5.0

前提条件

ApacheやDocker, docker-composeのインストール及び基本的な設定は完了している事
HTTPSを使うならその設定も

手順

1.Dockerのコンテナを作成

  • 以下の内容でdocker-compose.ymlを作成し,コンテナを起動します
  • ポート番号は3000で最低限の設定を記述
  • 3000 や example.com とした箇所は必要に応じて書き換えてください
docker-compose.yml
web:
  image: 'gitlab/gitlab-ce:12.5.0-ce.0'
  restart: 'always'
  hostname: 'example.com'
  environment:
    GITLAB_OMNIBUS_CONFIG: |
      external_url 'http://example.com/gitlab'
  ports:
    - '3000:80'
  volumes:
    - '/srv/gitlab/config:/etc/gitlab'
    - '/srv/gitlab/logs:/var/log/gitlab'
    - '/srv/gitlab/data:/var/opt/gitlab'
$ sudo docker-compose up -d

2.Apacheでリバースプロキシの設定を追加

  • 以下の内容で/etc/apache2/sites-available/gitlab.confを作成し,設定を有効にします
/etc/apache2/sites-available/gitlab.conf
<Location /gitlab>
ProxyPass http://127.0.0.1:3000/gitlab/ nocanon
ProxyPassReverse http://127.0.0.1:3000/gitlab/
Header edit Location ^http:// https://
</Location>
$ sudo a2ensite gitlab.conf
$ sudo systemctl reload apache2

動作確認

  • 以上の設定で https://example.com/gitlab からGitLabにアクセスできるはずです
    • コンテナの再起動直後はProxy Errorや502が表示されますが,数分でアクセスできるようになります

その他

  • GitLabの設定ファイルは/srv/gitlab/config/gitlab.rbから編集可能
  • 変更後は以下のコマンドでGitLabを再構成します
$ sudo docker ps # コンテナ名(NAMES)を確認
$ sudo docker exec -it (コンテナ名) gitlab-ctl reconfigure

参考

GitLab Docker images | GitLab
ApacheやNginxでHTTPS通信をリバースプロキシする - grep Tips *

3
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
6