Community EditionからEnterprise Editionへのアップグレード手順(Docker利用/DBにPostgreSQLを利用)
Docker版プリザンターについて¶
以下では、Docker Hubで公開されているプリザンターの公式Dockerイメージを利用します。
implem/pleasanter - Docker Image | Docker Hub
概要¶
データベースにPostgreSQLを指定して、Community EditionからEnterprise Editionへアップグレードする手順について説明します。
注意事項¶
- Community Editionから「Enterpise Edition」にアップグレードすると以下の動作となります。
- 「ライセンス」が商用ライセンスになります。ライセンスは「共通機能:バージョン」画面で確認できます。
- 「分類項目」、「数値項目」、「日付項目」、「説明項目」、「チェック項目」、「添付ファイル項目」の利用数を拡張することができます。
- 契約した「年間サポートサービスプラン」に応じてユーザ登録数の上限が設定され、上限を超えてユーザを登録することができません。
- 「Pleasanter Extensions」(「Pleasanter Site Visualizer」、「Pleasanter Code Assist」、「Operations Tools」、「Development Tools」)が利用可能になります。
- 本ページの手順は、プリザンターをすぐに試したいユーザのために、PostgreSQLコンテナをプリザンターと同一のDocker構成に含めた複数コンテナ構成を採用しています。この構成は本番運用を想定したものではありません。
- 本番運用では、データベースコンテナが性能上のボトルネックになります。別ホスト上のデータベースとすることを強く推奨します。
前提条件¶
- 本手順は、以下のマニュアルの手順通り実施し、パラメータファイルを変更して起動できることを前提としています。
「Dockerイメージを使用しパラメータを既定値から変更して起動する」
操作手順¶
1. プリザンターのバージョンアップ¶
アップグレードの前に、以下の手順に従ってバージョンアップを実施してください。
「Dockerイメージのプリザンターをバージョンアップする」
2. ライセンスファイルの格納¶
- コンテナを停止します。以下のコマンドを実行してください。
- app_data_parametersフォルダと同じ階層にlicenseフォルダを新規作成してください。
- ライセンスパックに含まれる「Implem.License.dll」をlicenseフォルダ内へコピーしてください。
フォルダ構成は以下の通りです。
📁pleasanter
+-- 📁app_data_parameters
| +-- 📁拡張機能用フォルダ
| | +-- 📄拡張機能用ファイル
| |
| +-- 📄パラメータファイル
|
+-- 📁license ←新規作成
| +-- 📄Implem.License.dll ←ここに配置
|
|-- 📄.env
|-- 📄compose.yaml
- 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. コンテナの再作成と再起動¶
- Enterpise Editionにアップグレードしたコンテナの再作成と再起動を行います。以下のコマンドを実行してください。
4. アップグレードの確認¶
- ブラウザで以下のURLを開いてください。
- プリザンターにログインしてください。
- 「共通機能:バージョン」画面を開きます。ナビゲーションメニューの「ヘルプ」をクリックし、「バージョン」をクリックしてください。
-
以下の3点を確認してください。
-
ライセンスが「商用ライセンス」となっていること
- ライセンス期限が正しいこと
- 使用者が正しいこと
項目拡張作業¶
Community Editionでは「分類項目」、「数値項目」、「日付項目」、「説明項目」、「チェック項目」、「添付ファイル項目」の各項種別毎に26個、計156項目が利用できますが、Enterprise Editionでは項目を拡張することができます。
| DB | Enterprise Editionで利用できる項目の上限 | 備考 |
|---|---|---|
| PostgreSQL | 6つの項目種別の合計で最大900個まで | |
| SQL Server | 6つの項目種別の合計で最大900個まで | |
| MySQL | 6つの項目種別の合計で最大256個まで | プリザンター1.4.9.0以降で使用できます。 |
項目拡張を行う場合は「Docker利用時の項目拡張」の手順に沿って作業を行ってください。
