JiraとConfluence(DataCenter版)をDockerで構築する


はじめに

オンプレ環境でJiraとConfluence(Server版)を利用していましたが、2021年2月にServer版ライセンスが販売終了したため、DataCenter版に移行することにしました。DataCenter版のJiraとConfluenceの動作検証のための環境をDockerで構築したので、構築手順を紹介します。

動作環境

  • MacBook Pro (macOS Catalina 10.15.7)
  • Docker for Mac

サービス構成

全体像

コンテナの構成は下図の通り。

  • リバースプロキシ
    • nginx
  • サービス
    • Jira
    • Confluence
  • DB
    • pgAdmin(DB操作用のGUI)
    • PostgreSQL
  • メール
    • MailHog(Jira・Confluenceの通知テスト用)

手順

以下の構成で、docker-composeで立ち上げます。

# ファイル構成

(workディレクトリ)
  ┣ docker-compose.yaml
  ┗ nginx.conf
docker-compose.yaml
version: '3' 
services: 
  jira:
    container_name: jira 
    image: atlassian/jira-software:latest 
    environment:
     - ATL_PROXY_NAME=jira.internal
     - ATL_PROXY_PORT=80
     - ATL_TOMCAT_SCHEME=http 
    volumes:
     - ./jiraAppData:/var/atlassian/application-data/jira
  confluence: 
    container_name: confluence
    image: atlassian/confluence-server:latest
    environment: 
     - ATL_PROXY_NAME=confluence.internal
     - ATL_PROXY_PORT=80
     - ATL_TOMCAT_SCHEME=http
    volumes:
     - ./confluenceAppData:/var/atlassian/application-data/confluence
  nginx: 
    container_name: nginx 
    image: nginx:latest 
    volumes:
     - ./nginx.conf:/etc/nginx/nginx.conf 
    depends_on: 
     - jira 
     - confluence 
     - pgadmin
    ports: 
     - "80:80" 
    networks: 
      default: 
        aliases:
         - jira.internal
         - confluence.internal
         - pgadmin.internal
  postgres:
    container_name: postgres
    image: postgres:latest
    volumes:
      - ./postgresData:/var/lib/postgresql/data 
    ports: 
     - "5432:5432" 
    environment: 
     - POSTGRES_USER=postgres
     - POSTGRES_PASSWORD=mypassword
  pgadmin:
    container_name: pgadmin
    image: dpage/pgadmin4:latest
    volumes:
      - ./pgAdminData:/pgadmin
      - ./pgAdminAppData:/var/lib/pgadmin4
    environment: 
     - [email protected]
     - PGADMIN_DEFAULT_PASSWORD=mypassword
    depends_on:
     - postgres
  mailhog:
    container_name: mailhog 
    image: mailhog/mailhog:latest
    restart: always
    ports:
     - "8025:8025" 
     - "1025:1025" 
    environment:
      MH_STORAGE: maildir
      MH_MAILDIR_PATH: /tmp
    volumes:
     - ./mailhog:/tmp

nginx.conf
events {} 
http {
 server {
   server_name jira.internal;
   proxy_read_timeout 600s;
   location / {
     proxy_set_header X-Forwarded-Host $host;
     proxy_set_header X-Forwarded-Server $host;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     proxy_pass http://jira:8080;
     client_max_body_size 10M;
   }
 }
 server {
   server_name confluence.internal;
   proxy_read_timeout 600s;
   location / {
     proxy_set_header X-Forwarded-Host $host;
     proxy_set_header X-Forwarded-Server $host;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     proxy_pass http://confluence:8090;
     client_max_body_size 10M;
   }
 }
 server {
   server_name pgadmin.internal;
   proxy_read_timeout 600s;
   location / {
     proxy_set_header X-Forwarded-Host $host;
     proxy_set_header X-Forwarded-Server $host;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     proxy_pass http://pgadmin;
   }
 }
}

必要に応じてhostsを設定します。

# hosts
127.0.0.1       jira.internal
127.0.0.1       confluence.internal
127.0.0.1       pgadmin.internal

以下のコマンドを実行すると、仮想環境が起動します。

cd (workディレクトリ)
docker-compose up -d

DB設定

Server版とは異なり、DataCenter版では外部DBの設定が必要です。JiraとConfluenceで外部DBとしてPostgreSQLを利用する手順についても記載します。

PostgreSQLの設定

Jira・Confluenceで使うDB(PostgreSQL)をpgAdminからセットアップします。

pgAdminへログイン

ブラウザからpgAdmin(http://pgAdmin.internal) へアクセスし、docker-compose.yamlに設定した値でログインする。
ユーザ:PGADMIN_DEFAULT_EMAIL
パスワード:PGADMIN_DEFAULT_PASSWORD

PostgreSQLの設定

トップページにあるAdd New Server をクリックして以下のように設定する。Generalタブのnameは適当に設定してください。
Host:PostgreSQLコンテナのcontainer_name
Username:POSTGRES_USER
password:POSTGRES_PASSWORD

ユーザ作成

ユーザを作成
Login/GroupRole を右クリック > Create > Login/GroupRole...

パスワードを設定

Can login? を Yesに設定して保存

テーブル作成

Jira用のテーブルを作成する

Ownerは前項で作成したユーザ(confluenceuser)とする

Definitionタブで以下のように設定して保存

Confluence用のテーブルを作成する

Ownerは前項で作成したユーザ(confluenceuser)とする

Definitionタブで以下のように設定して保存。Collationをen_US.utf8に設定しないと、Confluenceで問題が発生するらしい。

JiraとConfluenceの設定

JiraとConfluenceのセットアップについては割愛します。
JiraおよびConfluenceの初回起動時にDBを設定するので、以下を参考に設定してください。

JiraとConfluenceのメールサーバの設定

Jiraのメールサーバの設定については、以下リンクを参照してください。
ホスト名にはmailhogのコンテナ名(今回はmailhog)を指定します。

Confluenceのメールサーバ設定については、以下です。

これでDataCenter版のJiraとConfluenceの動作検証のための環境ができました。

その他参考にしたサイト