Dockerイメージのプリザンターをバージョンアップする
## 概要
以下手順でセットアップした公式Dockerイメージのプリザンターをバージョンアップする手順です。
・[Dockerで起動する](getting-started-pleasanter-docker)
・[Dockerイメージを使用しパラメータを既定値から変更して起動する](change-parameters-at-docker-image)
・[Dockerイメージを使用しDBにMySQLを指定して起動する](setup-by-docker-image-and-mysql)
・[Dockerイメージを使用しDBにSQL Serverを指定して起動する](setup-by-docker-image-and-sql-server)
Docker Hubで公開されている公式Dockerイメージについては以下を参照してください。
・[implem/pleasanter - Docker Image | Docker Hub](https://hub.docker.com/r/implem/pleasanter)
## 注意事項
1. ver1.4.5以前で実施する場合はCodeDefinerのコマンドが変更されているため、以下ページを参照してください。
[ver1.4.6以降で初回インストール時のCodeDefinerの手順について](https://pleasanter.org/ja/manual/codedefiner-changed-steps)
1. 本ページの手順は、プリザンターをすぐに試したいユーザのために、PostgreSQLコンテナをプリザンターと同一のDocker構成に含めた複数コンテナ構成を採用しています。この構成は**本番運用を想定したものではありません**。
1. 本番運用では、データベースコンテナが性能上のボトルネックになります。 **別ホスト上のデータベース** とすることを強く推奨します。
## 手順
バージョンアップ手順は以下の通りです。
### 1. パラメータを既定値のままで利用している
1. プリザンターの停止
2. 次期バージョンの確認
3. CodeDefinerの実行
4. プリザンターの開始
5. プリザンターの起動確認
### 2. パラメータを既定値から変更して利用している
1. プリザンターの停止
2. パラメータファイルのマージ
2. パラメータファイルの新規追加
3. 次期バージョンの確認
4. CodeDefinerの実行
5. プリザンターの開始
6. プリザンターの起動確認
### 3. バージョンアップと合わせてパラメータを既定値から変更して利用する
1. プリザンターの停止
2. パラメータ格納用フォルダ準備、compose.yaml修正
2. パラメータファイルの新規追加
3. 次期バージョンの確認
4. CodeDefinerの実行
5. プリザンターの開始
6. プリザンターの起動確認
## 1.プリザンターの停止
以下コマンドを実行し、プリザンターを停止します。
```bash
docker compose down
```
## 2. パラメータ格納用フォルダ準備、compose.yaml修正
今回のバージョンアップでご利用環境に合わせたパラメータの変更を行う場合は、以下作業を実施します。作業の詳細は[Dockerイメージを使用しパラメータを既定値から変更して起動する](/ja/manual/change-parameters-at-docker-image)の操作手順 1. を参照してください。
#### 実施する作業
1. app_data_parametersフォルダの作成
1. プロジェクトディレクトリに「app_data_parameters」を作成します。
2. compose.yaml ファイルの修正
1. compose.yamlを[Dockerイメージを使用しパラメータを既定値から変更して起動する](/ja/manual/change-parameters-at-docker-image)の「1-4 compose.yaml ファイル」の2.に記載の内容に書き換えます。
## 3. パラメータファイルのマージ
現行バージョンの運用でapp_data_parametersフォルダにパラメータファイルを格納していた場合は、以下手順を実施します。
<details>
<summary>手順を確認する</summary>
### 1. パラメータファイルのバックアップ
1. 現行パラメータファイルをバックアップします。このバックアップは手順3.3.1.で使用します。パラメータファイルはDockerイメージをマニュアル通りにセットアップした場合、app_data_parametersフォルダ内のjsonファイルとなります。
2. **拡張機能を利用していない場合は本手順は不要です。** 拡張機能で設定した現行パラメータファイルをバックアップします。このバックアップは手順3.4.1.で使用します。拡張機能で設定したファイルはDockerイメージをマニュアル通りにセットアップした場合、app_data_parametersフォルダ配下にある以下サブフォルダ内のファイルとなります。
|サブフォルダ名|拡張機能名|備考|
|:---|:---|:---|
|CustomDefinitions|[拡張項目](/ja/manual/extended-column)|組織、グループ、ユーザに項目を追加した際に生成されるフォルダ|
|ExtendedFields|[拡張フィールド](/ja/manual/extended-fields)||
|ExtendedHtmls|[拡張HTML](/ja/manual/table-management-extended-html)||
|ExtendedNavigationMenus|[拡張ナビゲーションメニュー](/ja/manual/extended-navigationmenus)||
|ExtendedScripts|[拡張スクリプト](/ja/manual/extended-script)||
|ExtendedServerScripts|[拡張サーバスクリプト](/ja/manual/extended-server-script)||
|ExtendedSqls|[拡張SQL](/ja/manual/extended-sql)||
|ExtendedStyles|[拡張スタイル](/ja/manual/extended-style)||
### 2. アプリケーションの準備
1. [ダウンロードセンター](https://pleasanter.org/dlcenter)から、次期バージョンのプリザンターをダウンロードします。
2. ダウンロードしたzipファイルを解凍します。
3. 解凍したフォルダの「\pleasanter\Implem.Pleasanter\App_Data\Parameters」およびサブフォルダに格納されているファイルを、次期バージョンのパラメータファイルとします。
### 3. パラメータ再設定
1. 手順3.2.で準備した次期バージョンのパラメータファイルに対して、現行で設定済みの内容を反映します。[WinMerge](https://winmergejp.bitbucket.io/)などのファイル比較・マージツールを利用して次期バージョンのパラメータファイルと手順3.1.で取得した現行バックアップファイルのパラメータファイルを比較しながら次期バージョンのパラメータファイルを修正します。<br>**Service.jsonが配置されている場合は、TimezoneDefaultが正しい値か確認してください。TimezoneDefaultにはPleasanterをインストールするサーバのOSで有効なタイムゾーンを設定してください。(Windowsなら"Tokyo Standard Time"など、Linuxなら"Asia/Tokyo"など)**<br>[FAQ:プリザンターでサポートしている言語とタイムゾーンのパラメータの設定値を知りたい](https://pleasanter.org/ja/manual/faq-supported-language)
2. app_data_parametersフォルダ内のパラメータファイルを、次期バージョンのパラメータファイルに差し替えます。
### 4. 拡張機能の再設定
**拡張機能を利用していない場合は本手順は不要です。**
1. 手順3.2.3.で準備した次期バージョンの拡張機能用パラメータファイルに対して、現行で設定済みの内容を反映します。[WinMerge](https://winmergejp.bitbucket.io/)などのファイル比較・マージツールを利用して次期バージョンの拡張機能用パラメータファイルと手順3.1.2.で取得した現行バックアップファイルの拡張機能用パラメータファイルを比較しながら次期バージョンの拡張機能用パラメータファイルを修正します。
2. app_data_parametersフォルダ配下のサブフォルダ内の拡張機能用パラメータファイルを、次期バージョンの拡張機能用パラメータファイルに差し替えます。
</details>
## 4.パラメータファイルの新規追加
app_data_parametersフォルダに新しいパラメータファイルを追加し、既定値から変更する場合は、以下手順を実施します。
<details>
<summary>手順を確認する</summary>
1. [ダウンロードセンター](https://pleasanter.org/dlcenter)から、次期バージョンのプリザンターをダウンロードします。
2. zipファイルを解凍します。
3. 解凍したフォルダの「\pleasanter\Implem.Pleasanter\App_Data\Parameters」に格納されている、対象のパラメータファイルをapp_data_parametersフォルダ配下にコピーします。
4. コピーしたパラメータファイルを編集します。
</details>
## 5.ファイルに記載のバージョンを変更
1. .envファイルの「PLEASANTER_VERSION」を確認します。設定値が「latest」の場合は変更不要です。「6.CodeDefinerの実行」以降を実施します。 直接バージョンを指定している場合は、次期バージョンとして「Docker Hubで公開されているバージョン番号」または「latest」に変更した後、「6.CodeDefinerの実行」以降を実施します。
## 6.CodeDefinerの実行
1. 以下コマンドを実行し、パラメータ用volumeをクリアします。{{プロジェクトディレクトリ名}}はご利用環境に応じて適宜修正してください。
```bash
docker volume rm {{プロジェクトディレクトリ名}}_codedefiner_params_volume
```
- 例:プロジェクトディレクトリが「pleasanter」の場合、以下コマンドとなります。
```bash
docker volume rm pleasanter_codedefiner_params_volume
```
3. CodeDefinerを実行します。
※Dockerイメージを使用する場合は、バージョンアップ時のコマンドに /l、/zの引数設定が必要です。<br>
```bash
docker compose run --rm codedefiner _rds /l "<言語>" /z "<タイムゾーン>"
```
|引数|設定例|説明|
|:--|:--|:--|
|/l|ja|Service.jsonのDefaultLanguageの値を書き換えます(※1)|
|/z|Asia/Tokyo|Service.jsonのTimeZoneDefaultの値を書き換えます(※1)|
(※1) 言語、タイムゾーンは以下マニュアルページを参照ください。
[FAQ:プリザンターでサポートしている言語とタイムゾーンのパラメータの設定値を知りたい](https://pleasanter.org/manual/faq-supported-language)
日本語環境でご利用する場合は以下コマンドとなります。
```bash
docker compose run --rm codedefiner _rds /l "ja" /z "Asia/Tokyo"
```
途中で 「Type "y" (yes) if the license is correct, otherwise type "n" (no).」 と表示されたら **y** を入力してください。
※コンソールログに以下のようにバージョンが出力されます。ここで表示されるバージョンは常に「Docker Hubで公開されている最新のプリザンターのバージョン」となります。このコンソールログ表示の仕様は、ファイルの{{Version}}に最新よりも前のバージョンを指定した場合も同様ですが、データベースは{{Version}}に準拠した内容で作成されますので、プリザンターの動作上の問題はありません。<br>
```bash
<INFO> Starter.Main: Implem.CodeDefiner 1.4.10.1
```
## 8.プリザンターの起動確認
1. 以下コマンドを実行し、プリザンターを起動します。
```
docker compose up -d pleasanter
```
2. ブラウザでアクセスし、ログインします。
・<http://localhost:50001>
3. ログイン後、ナビゲーションメニューの「ヘルプ」-「バージョン」をクリックし、バージョンが正しいことを確認します。
## 関連情報
[Dockerで起動する](getting-started-pleasanter-docker)
[Dockerイメージを使用しパラメータを既定値から変更して起動する](change-parameters-at-docker-image)
[Dockerイメージを使用しDBにMySQLを指定して起動する](setup-by-docker-image-and-mysql)
[Dockerイメージを使用しDBにSQL Serverを指定して起動する](setup-by-docker-image-and-sql-server)



