コンテンツにスキップ
「プリザンター入門」発売中!

Dockerで起動する

概要

データベースにPostgreSQLを指定して、公式Dockerイメージからプリザンターを起動する手順です。

以下2つのパターンの手順を説明します

  1. 既定の環境設定でプリザンターを起動する
  2. 環境設定を行いプリザンターを起動する

注意事項

  1. ver1.4.5以前で実施する場合はCodeDefinerのコマンドが変更されているため、以下ページを参照してください。
    ver1.4.6以降で初回インストール時のCodeDefinerの手順について
  2. 本ページの手順は、プリザンターをすぐに試したいユーザのために、PostgreSQLコンテナをプリザンターと同一のDocker構成に含めた複数コンテナ構成を採用しています。この構成は本番運用を想定したものではありません
  3. 本番運用では、データベースコンテナが性能上のボトルネックになります。別ホスト上のデータベースとすることを強く推奨します。

前提条件

  1. プリザンターのパラメータ値を変更してDockerで起動する手順は「Dockerイメージを使用しパラメータを既定値から変更して起動する」を参照してください。
  2. 本手順ではデータベースとしてPostgreSQLを使用します。他データベースを使用する手順は以下を参照してください。
    1. Dockerイメージを使用しDBにMySQLを指定して起動する
    2. Dockerイメージを使用しDBにSQL Serverを指定して起動する
  3. データベースにPostgreSQLを使用する場合Rds.jsonの配置・編集は不要です。

1. 既定の環境設定でプリザンターを起動する

すぐにプリザンターを試してみたい、まずは使ってみたい方はこちらの手順でプリザンターを起動してください。

Danger

本番運用に移行する際は管理用ユーザのパスワード、各接続文字列のパスワードは必ず見直してください。

概要

下記既定値での環境設定ですぐにDocker版プリザンターを利用する手順について説明します。

No 設定内容 パラメータ 設定値 備考
1 PostgreSQLのバージョン POSTGRES_VERSION 17
2 PostgreSQLの管理用ユーザのパスワード POSTGRES_PASSWORD SetSaPWD
3 Sa接続文字列のパスワード Implem_Pleasanter_Rds_PostgreSQL
_SaConnectionString内のPWD
SetSaPWD 2と同じ値を設定
4 Owner接続文字列のパスワード Implem_Pleasanter_Rds_PostgreSQL
_OwnerConnectionString内のPWD
SetAdminsPWD
5 User接続文字列のパスワード Implem_Pleasanter_Rds_PostgreSQL
_UserConnectionString内のPWD
SetUsersPWD
6 プリザンターのバージョン PLEASANTER_VERSION latest 利用時点の最新版を取得
7 プリザンターの言語 CodeDifinerの/lオプション "ja"
8 プリザンターのタイムゾーン CodeDifinerの/zオプション "Asia/Tokyo"

手順

手順の流れは以下の通りです。

  1. Docker実行環境の準備
  2. プロジェクトディレクトリの作成と移動
  3. ファイルの作成
  4. CodeDefinerの実行
  5. プリザンターの起動・終了

1. Docker実行環境の準備

ご利用のOSに応じたDocker実行環境(Docker EngineやDocker Desktop等)を準備します。詳細は以下のDocker公式マニュアルをご参照ください。

2. プロジェクトディレクトリの作成と移動

以下のコマンドを実行し任意の場所にプロジェクトディレクトリを作成します。以下コマンドではプロジェクトディレクトリ名を「pleasanter」としましたが他の名称に変更しても問題ありません。

mkdir ./pleasanter
cd ./pleasanter

3. ファイルの作成

プロジェクトディレクトリ内に「.env」、「compose.yaml」という2つのファイルを作成します。

type nul > .env
type nul > compose.yaml
New-Item .env -ItemType File -Force
New-Item compose.yaml -ItemType File -Force
touch .env
touch compose.yaml

.env

テキストエディタで.envを開き、以下の内容を貼り付け保存します。

.env
POSTGRES_VERSION=17
POSTGRES_VOLUMES_TARGET=/var/lib/postgresql/data
POSTGRES_USER=postgres
POSTGRES_PASSWORD=SetSaPWD
POSTGRES_DB=postgres
POSTGRES_HOST_AUTH_METHOD=scram-sha-256
POSTGRES_INITDB_ARGS="--auth-host=scram-sha-256"
PLEASANTER_VERSION=latest
Implem_Pleasanter_Rds_PostgreSQL_SaConnectionString="Server=db;Database=postgres;UID=postgres;PWD=SetSaPWD"
Implem_Pleasanter_Rds_PostgreSQL_OwnerConnectionString="Server=db;Database=#ServiceName#;UID=#ServiceName#_Owner;PWD=SetAdminsPWD"
Implem_Pleasanter_Rds_PostgreSQL_UserConnectionString="Server=db;Database=#ServiceName#;UID=#ServiceName#_User;PWD=SetUsersPWD"

compose.yaml

テキストエディタでcompose.yamlを開き、以下の内容を貼り付けて保存します。

compose.yaml
services:
  db:
    container_name: postgres
    image: postgres:${POSTGRES_VERSION}
    environment:
      - POSTGRES_USER
      - POSTGRES_PASSWORD
      - POSTGRES_DB
      - POSTGRES_HOST_AUTH_METHOD
      - POSTGRES_INITDB_ARGS
    volumes:
      - type: volume
        source: pg_data
        target: ${POSTGRES_VOLUMES_TARGET}
    healthcheck:
      test:
        [
          "CMD-SHELL",
          "pg_isready -U $${POSTGRES_USER:-postgres} -d $${POSTGRES_DB:-postgres} || exit 1",
        ]
      interval: 10s
      timeout: 5s
      retries: 5
      start_period: 30s
    restart: unless-stopped
  pleasanter:
    container_name: pleasanter
    image: implem/pleasanter:${PLEASANTER_VERSION}
    restart: unless-stopped
    depends_on:
      db:
        condition: service_healthy
    ports:
      - '50001:8080'
    environment:
      Implem.Pleasanter_Rds_PostgreSQL_SaConnectionString: ${Implem_Pleasanter_Rds_PostgreSQL_SaConnectionString}
      Implem.Pleasanter_Rds_PostgreSQL_OwnerConnectionString: ${Implem_Pleasanter_Rds_PostgreSQL_OwnerConnectionString}
      Implem.Pleasanter_Rds_PostgreSQL_UserConnectionString: ${Implem_Pleasanter_Rds_PostgreSQL_UserConnectionString}
  codedefiner:
    container_name: codedefiner
    image: implem/pleasanter:codedefiner
    depends_on:
      db:
        condition: service_healthy
    environment:
      Implem.Pleasanter_Rds_PostgreSQL_SaConnectionString: ${Implem_Pleasanter_Rds_PostgreSQL_SaConnectionString}
      Implem.Pleasanter_Rds_PostgreSQL_OwnerConnectionString: ${Implem_Pleasanter_Rds_PostgreSQL_OwnerConnectionString}
      Implem.Pleasanter_Rds_PostgreSQL_UserConnectionString: ${Implem_Pleasanter_Rds_PostgreSQL_UserConnectionString}
volumes:
  pg_data:
    name: ${COMPOSE_PROJECT_NAME:-default}_pg_data_volume

4. CodeDefinerの実行

プロジェクトディレクトリで、以下のコマンドでCodeDefinerを実行します。

docker compose run --rm codedefiner _rds /y /l "ja" /z "Asia/Tokyo"

5. プリザンターの起動・終了

プリザンターを起動する

  1. プロジェクトディレクトリで、以下のコマンドを実行しプリザンターを起動します。

    docker compose up -d pleasanter
    
  2. Webブラウザでhttp://localhost:50001を開いてください。

  3. ログイン画面が表示されたら、次の各情報を入力してください。

    ログインID 初期パスワード
    Administrator pleasanter

    プリザンターのログイン画面。ログインIDと初期パスワードを入力する

  4. 安全なパスワードに変更してください。

    初回ログイン後に表示される、Administrator のパスワード変更画面

プリザンターを終了する

  1. Webブラウザを終了してください。
  2. プロジェクトディレクトリで、コンテナを停止してください。

    docker compose stop
    

プリザンターをもう一度起動する

  1. プロジェクトディレクトリで、コンテナを起動してください。

    docker compose start
    
  2. Webブラウザでhttp://localhost:50001を開いてください。


2. 環境設定を行いプリザンターを起動する

プリザンターやPostgreSQLのバージョン、PostgreSQLの設定やプリザンターの接続文字列などを設定してプリザンターをご利用したい場合はこちらの手順を参照してください。

Note

1. プロジェクトディレクトリの作成

次項で説明する「.env」、「compose.yaml」という2つのファイルを格納するプロジェクトディレクトリを任意の場所に作成します。ディレクトリ名は任意です。

2. .envの作成

PostgreSQLを初期化するinitdbに使われるユーザやパスワードなどの環境変数とプリザンターのデータベース接続文字列の設定を記載した「.env」ファイルを作成します。設定する内容は以下の通りです。

No 設定内容 パラメータ 設定例 備考
1 PostgreSQLのバージョン POSTGRES_VERSION 17
2 PostgreSQLのボリュームパス POSTGRES_VOLUMES_TARGET /var/lib/postgresql/data バージョン18以降の場合は/var/lib/postgresqlと指定すること
3 PostgreSQLの管理用ユーザのパスワード POSTGRES_PASSWORD SetSaPWD
4 Sa接続文字列のパスワード Implem_Pleasanter_Rds_PostgreSQL
_SaConnectionString内のPWD
SetSaPWD 3と同じ値を設定
5 Owner接続文字列のパスワード Implem_Pleasanter_Rds_PostgreSQL
_OwnerConnectionString内のPWD
SetAdminsPWD
6 User接続文字列のパスワード Implem_Pleasanter_Rds_PostgreSQL
_UserConnectionString内のPWD
SetUsersPWD
7 プリザンターのバージョン PLEASANTER_VERSION 1.5.0.0 利用時点の最新版を取得する場合はlatestと指定

POSTGRESではじまる環境変数はPostgreSQLのDocker公式イメージが使用します。コンテナの初期化時にinitdbが実行され、環境変数の値を使ってPostgreSQLの初期設定が行われます。

接続文字列の詳細については以下マニュアルを参照ください。

実際のファイルの例です。{{ ... }}は適宜修正し、.envとしてプロジェクトディレクトリに保存します。

.env
POSTGRES_VERSION={{PostgreSQL Version}}
POSTGRES_VOLUMES_TARGET={{Volumes TargetPath}}
POSTGRES_USER=postgres
POSTGRES_PASSWORD={{Sa Password}}
POSTGRES_DB=postgres
POSTGRES_HOST_AUTH_METHOD=scram-sha-256
POSTGRES_INITDB_ARGS="--auth-host=scram-sha-256"
PLEASANTER_VERSION={{Pleasanter Version}}
Implem_Pleasanter_Rds_PostgreSQL_SaConnectionString="Server=db;Database=postgres;UID=postgres;PWD={{Sa Password}}"
Implem_Pleasanter_Rds_PostgreSQL_OwnerConnectionString="Server=db;Database=#ServiceName#;UID=#ServiceName#_Owner;PWD={{Owner password}}"
Implem_Pleasanter_Rds_PostgreSQL_UserConnectionString="Server=db;Database=#ServiceName#;UID=#ServiceName#_User;PWD={{User password}}"

3. Docker Compose ファイル

以下内容でcompose.yamlファイルを作成します。

compose.yamml
services:
db:
    container_name: postgres
    image: postgres:${POSTGRES_VERSION}
    environment:
    - POSTGRES_USER
    - POSTGRES_PASSWORD
    - POSTGRES_DB
    - POSTGRES_HOST_AUTH_METHOD
    - POSTGRES_INITDB_ARGS
    volumes:
    - type: volume
        source: pg_data
        target: ${POSTGRES_VOLUMES_TARGET}
    healthcheck:
    test:
        [
        "CMD-SHELL",
        "pg_isready -U $${POSTGRES_USER:-postgres} -d $${POSTGRES_DB:-postgres} || exit 1",
        ]
    interval: 10s
    timeout: 5s
    retries: 5
    start_period: 30s
    restart: unless-stopped
pleasanter:
    container_name: pleasanter
    image: implem/pleasanter:${PLEASANTER_VERSION}
    restart: unless-stopped
    depends_on:
    db:
        condition: service_healthy
    ports:
    - '50001:8080'
    environment:
    Implem.Pleasanter_Rds_PostgreSQL_SaConnectionString: ${Implem_Pleasanter_Rds_PostgreSQL_SaConnectionString}
    Implem.Pleasanter_Rds_PostgreSQL_OwnerConnectionString: ${Implem_Pleasanter_Rds_PostgreSQL_OwnerConnectionString}
    Implem.Pleasanter_Rds_PostgreSQL_UserConnectionString: ${Implem_Pleasanter_Rds_PostgreSQL_UserConnectionString}
codedefiner:
    container_name: codedefiner
    image: implem/pleasanter:codedefiner
    depends_on:
    db:
        condition: service_healthy
    environment:
    Implem.Pleasanter_Rds_PostgreSQL_SaConnectionString: ${Implem_Pleasanter_Rds_PostgreSQL_SaConnectionString}
    Implem.Pleasanter_Rds_PostgreSQL_OwnerConnectionString: ${Implem_Pleasanter_Rds_PostgreSQL_OwnerConnectionString}
    Implem.Pleasanter_Rds_PostgreSQL_UserConnectionString: ${Implem_Pleasanter_Rds_PostgreSQL_UserConnectionString}
volumes:
pg_data:
    name: ${COMPOSE_PROJECT_NAME:-default}_pg_data_volume

ファイル配置は以下のようになります。

./projectDirectory
|-- .env
|-- compose.yaml

2. CodeDefinerの実行

プロジェクトディレクトリで以下コマンドにてCodeDefinerを実行します。

docker compose run --rm codedefiner _rds /l "<言語>" /z "<タイムゾーン>"
引数 設定例 説明
/l ja Service.jsonのDefaultLanguageの値を書き換えます1
/z Asia/Tokyo Service.jsonのTimeZoneDefaultの値を書き換えます1

日本語環境でご利用する場合は以下コマンドとなります。

docker compose run --rm codedefiner _rds /l "ja" /z "Asia/Tokyo"

途中で「Type "y" (yes) if the license is correct, otherwise type "n" (no).」と表示されたら Y を入力してください。

Note

コンソールログに以下のようにバージョンが出力されます。ここで表示されるバージョンは常に「DockerHubで公開されている最新のプリザンターのバージョン」となります。このコンソールログ表示の仕様は、compose.yamlの{{Version}}に最新よりも前のバージョンを指定した場合も同様ですが、データベースは{{Version}}に準拠した内容で作成されますので、プリザンターの動作上の問題はありません。

<INFO> Starter.Main: Implem.CodeDefiner 1.5.0.0

3. プリザンター起動

プロジェクトディレクトリで以下コマンドを実行し、コンテナを作成しプリザンターを起動します。

docker compose up -d pleasanter

以下URLにブラウザでアクセスします。

http://localhost:50001

ログイン画面にて「ログインID: Administrator」、「初期パスワード: pleasanter」を入力します。ログイン後、パスワードの変更を求められますので適宜パスワードを設定してください。

4. コンテナの停止と削除

コンテナの停止はプロジェクトディレクトリで以下のコマンドを実行します。

docker compose stop

停止したコンテナを再開する場合はプロジェクトディレクトリで以下のコマンドを実行します。

docker compose start

コンテナを停止してもDBデータは削除されません。再開する際にはデータがそのまま利用できます。


コンテナの削除はプロジェクトディレクトリで以下のコマンドを実行します。コンテナを削除してもDBデータ(ボリューム)は削除されません。なおコンテナを削除した場合は再開はできません。

docker compose down

コンテナ削除後に再度起動したい場合はプロジェクトディレクトリで以下コマンドを実行しコンテナを作成してください。これによりDBのコンテナも一緒に作成され残っているDBデータもそのまま利用できます。

docker compose up -d pleasanter

コンテナを削除する時に同時にデータ(ボリューム)を削除する場合はボリュームを削除するオプションを付けて実行します。

docker compose down -v

関連情報


  1. 言語、タイムゾーンは以下マニュアルページを参照ください。
    FAQ:プリザンターでサポートしている言語とタイムゾーンのパラメータの設定値を知りたい