コンテンツにスキップ

Community EditionからEnterprise Editionへのアップグレード手順(Docker利用/DBにPostgreSQLを利用)

Docker版プリザンターについて

以下では、Docker Hubで公開されているプリザンターの公式Dockerイメージを利用します。

implem/pleasanter - Docker Image | Docker Hub

概要

データベースにPostgreSQLを指定して、Community EditionからEnterprise Editionへアップグレードする手順について説明します。

注意事項

  1. Community Editionから「Enterpise Edition」にアップグレードすると以下の動作となります。
  2. 「ライセンス」が商用ライセンスになります。ライセンスは「共通機能:バージョン」画面で確認できます。
  3. 「分類項目」、「数値項目」、「日付項目」、「説明項目」、「チェック項目」、「添付ファイル項目」の利用数を拡張することができます。
  4. 契約した「年間サポートサービスプラン」に応じてユーザ登録数の上限が設定され、上限を超えてユーザを登録することができません。
  5. 「Pleasanter Extensions」(「Pleasanter Site Visualizer」、「Pleasanter Code Assist」、「Operations Tools」、「Development Tools」)が利用可能になります。
  6. 本ページの手順は、プリザンターをすぐに試したいユーザのために、PostgreSQLコンテナをプリザンターと同一のDocker構成に含めた複数コンテナ構成を採用しています。この構成は本番運用を想定したものではありません
  7. 本番運用では、データベースコンテナが性能上のボトルネックになります。別ホスト上のデータベースとすることを強く推奨します。

前提条件

  1. 本手順は、以下のマニュアルの手順通り実施し、パラメータファイルを変更して起動できることを前提としています。
    「Dockerイメージを使用しパラメータを既定値から変更して起動する」

操作手順

1. プリザンターのバージョンアップ

アップグレードの前に、以下の手順に従ってバージョンアップを実施してください。

「Dockerイメージのプリザンターをバージョンアップする」

2. ライセンスファイルの格納

  1. コンテナを停止します。以下のコマンドを実行してください。
docker compose stop
  1. app_data_parametersフォルダと同じ階層にlicenseフォルダを新規作成してください。
  2. ライセンスパックに含まれる「Implem.License.dll」をlicenseフォルダ内へコピーしてください。

フォルダ構成は以下の通りです。

📁pleasanter
 +-- 📁app_data_parameters
 |   +-- 📁拡張機能用フォルダ
 |   |   +-- 📄拡張機能用ファイル
 |   |
 |   +-- 📄パラメータファイル
 |
 +-- 📁license                    ←新規作成
 |    +-- 📄Implem.License.dll    ←ここに配置
 |
 |-- 📄.env
 |-- 📄compose.yaml
  1. PleasanterとCodeDefinerからImplem.License.dllを参照できるように、compose.yamlを以下のように編集します。
    以下はcompose.yamlの抜粋です。
compose.yaml(抜粋)
pleasanter:
    : 中略
volumes:
  - pleasanter_params:/app/App_Data/Parameters
  - ./license/Implem.License.dll:/app/Implem.License.dll:ro  #←追記
    : 中略
codedefiner:
    : 中略
volumes:
  - codedefiner_params:/app/Implem.Pleasanter/App_Data/Parameters
  - ./license/Implem.License.dll:/app/Implem.CodeDefiner/Implem.License.dll:ro  #←追記
サービス 配置先
pleasanter /app/Implem.License.dll
codedefiner /app/Implem.CodeDefiner/Implem.License.dll
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}
    networks:
      - backend
    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
  param-init:
    container_name: param-init
    image: implem/pleasanter:${PLEASANTER_VERSION}
    volumes:
      - ./app_data_parameters:/tmp/app_data_parameters:ro
      - pleasanter_params:/app/App_Data/Parameters
    entrypoint:
      - sh
      - -c
      - cp -rf /tmp/app_data_parameters/. /app/App_Data/Parameters/ && echo "Parameters copied"
    restart: "no"
    network_mode: none
  param-init-codedefiner:
    container_name: param-init-codedefiner
    image: implem/pleasanter:codedefiner
    volumes:
      - ./app_data_parameters:/tmp/app_data_parameters:ro
      - codedefiner_params:/app/Implem.Pleasanter/App_Data/Parameters
    entrypoint:
      - sh
      - -c
      - cp -rf /tmp/app_data_parameters/. /app/Implem.Pleasanter/App_Data/Parameters/ && echo "Parameters copied"
    restart: "no"
    network_mode: none
  pleasanter:
    container_name: pleasanter
    image: implem/pleasanter:${PLEASANTER_VERSION}
    restart: unless-stopped
    depends_on:
      db:
        condition: service_healthy
      param-init:
        condition: service_completed_successfully
    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}
    volumes:
      - pleasanter_params:/app/App_Data/Parameters
      - ./license/Implem.License.dll:/app/Implem.License.dll:ro
    networks:
      - backend
  codedefiner:
    container_name: codedefiner
    image: implem/pleasanter:codedefiner
    depends_on:
      db:
        condition: service_healthy
      param-init-codedefiner:
        condition: service_completed_successfully
    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:
      - codedefiner_params:/app/Implem.Pleasanter/App_Data/Parameters
      - ./license/Implem.License.dll:/app/Implem.CodeDefiner/Implem.License.dll:ro
    networks:
      - backend
networks:
  backend:
volumes:
  pg_data:
    name: ${COMPOSE_PROJECT_NAME:-default}_pg_data_volume
  pleasanter_params:
    name: ${COMPOSE_PROJECT_NAME:-default}_pleasanter_params_volume
  codedefiner_params:
    name: ${COMPOSE_PROJECT_NAME:-default}_codedefiner_params_volume

3. コンテナの再作成と再起動

  1. Enterpise Editionにアップグレードしたコンテナの再作成と再起動を行います。以下のコマンドを実行してください。
docker compose up -d pleasanter

4. アップグレードの確認

  1. ブラウザで以下のURLを開いてください。
http://localhost:50001
  1. プリザンターにログインしてください。
  2. 「共通機能:バージョン」画面を開きます。ナビゲーションメニューの「ヘルプ」をクリックし、「バージョン」をクリックしてください。
  3. 以下の3点を確認してください。

  4. ライセンスが「商用ライセンス」となっていること

  5. ライセンス期限が正しいこと
  6. 使用者が正しいこと

項目拡張作業

Community Editionでは「分類項目」、「数値項目」、「日付項目」、「説明項目」、「チェック項目」、「添付ファイル項目」の各項種別毎に26個、計156項目が利用できますが、Enterprise Editionでは項目を拡張することができます。

DB Enterprise Editionで利用できる項目の上限 備考
PostgreSQL 6つの項目種別の合計で最大900個まで
SQL Server 6つの項目種別の合計で最大900個まで
MySQL 6つの項目種別の合計で最大256個まで プリザンター1.4.9.0以降で使用できます。

項目拡張を行う場合は「Docker利用時の項目拡張」の手順に沿って作業を行ってください。

関連情報