9
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

gitlabとredmineをサブディレクトリ運用する(サブドメイン運用からサブディレクトリ運用へ)

Posted at

TL;DR

やりたいこと

  • この記事でやりたいことは,以下のことです
    • https://gitlab.mydomainhttps://redmine.mydomainのようになっている状況を,https://mydomain/gitlabhttps://mydomain/redmineで使えるように変更したい
  • メリット : SSL証明書をletsencryptで取得している場合,ワイルドカード証明書は更新の都度,DNSの設定を修正する必要があるので面倒ですが,ホストが決まっているように(外部からは)見えるので,通常の更新手続きが使えます
  • デメリット : サブディレクトリ運用技術が枯れていない(gitlabなど)サービスで,不具合が発生する可能性があります

やったこと

  • gitlab, redmineコンテナに環境変数の追加
  • nginxでのリバースプロキシ設定の修正

gitlab, redmineコンテナの環境変数の追加

  • Gitlab-CEとRedmineを連携してdockerコンテナで運用するの記事で作成したdocker-compose.ymlのコンテナの環境変数設定に,以下のようにRELATIVE_URL_ROOTに,運用したいサブディレクトリ名を追加します
    • リバースプロキシで振り分けるだけだと,サービス内部でのリクエストのやりとりにより,不具合が発生します
  redmine:
# .....<snip>.....
    environment:
# .....<snip>.....
      - REDMINE_RELATIVE_URL_ROOT=/redmine
# .....<snip>.....
  gitlab:
# .....<snip>.....
    environment:
# .....<snip>.....
      - GITLAB_RELATIVE_URL_ROOT=/gitlab

リバースプロキシ設定

  • nginx.confのサブディレクトリでアクセスするコンテナを,下記のように振り分ける処理を記述します
    • ドメインが1つになるので,default_serverserver_nameをデフォルトに設定します
    • サブディレクトリ運用するようになったコンテナにそのままの形でプロキシされるようにします
    server {
        listen 443 ssl default_server;
        server_name _;
# ...<snip>...
        location /redmine {
            proxy_pass http://redmine/redmine;
        }
        location /gitlab {
            proxy_pass http://gitlab/gitlab;
        }
    }

動作確認

  • サービスをゼロから立て直したほうが無難です(サブドメインからサブディレクトリに運用が変わるので,既存のデータ内にあるURLは使えなくなります)
# 不揮発ボリュームを削除する(必要があればバックアップをとっておく)
# sudo rm -rf /srv/docker/{gitlab,redmine,mysql}
docker-compose up -d
Creating network "project_default" with the default driver
Creating project_mysql_1             ... done
Creating project_memcached-redmine_1 ... done
Creating project_redis-gitlab_1      ... done
Creating project_gitlab_1            ... done
Creating project_redmine_1           ... done
Creating project_rev_1               ... done
  • https://<URL>/gitlabhttps://<URL>/redmineにアクセスして,サービスが稼働していることを確認します.

参考

9
17
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
9
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?