Dockerイメージを使用しDBにMySQLを指定して起動する(バージョン1.4.17.1以前)
はじめに¶
本手順は、以下2件のマニュアルの手順通りプリザンターの公式Dockeイメージを使用の上、パラメータファイルを変更して起動できることを前提としています。
未読の場合は先に上記マニュアルを参照し、プリザンターの公式Dockeイメージを使用の上、パラメータファイルを変更して起動できることを確認してください。
制限事項¶
- MySQLでDockerイメージを利用する際、プリザンターのバージョンは1.4.10.0以降としてください。プリザンターはVer1.4.9.0以降でMySQLに対応しましたが、本手順はVer1.4.10.0以降でなければ実施できません。
- Dockerでプリザンターを運用する場合、パラメータファイルの設定変更時は、プリザンターの停止・再起動だけでなく、
docker compose buildコマンドによるビルドを再実施してください。ビルドを行っていない状態では、プリザンターを再起動してもパラメータファイルの変更が反映されません。 - バージョン1.4.18.0以降を使用する場合はDockerイメージを使用しDBにMySQLを指定して起動するを参照ください。
前提条件¶
- 本手順ではデータベースとしてMySQLを使用します。PostgreSQLを使用する手順は「Dockerで起動する」および「Dockerイメージを使用しパラメータを既定値から変更して起動する」を参照してください。
MySQL使用時に必要となるDockerの追加設定¶
本手順では、以下設定によりプリザンターのDBにMySQLを指定してコンテナを起動します。
- Rds.jsonの内容をMySQL用の記述に変更する。
- プリザンター(およびCodeDefiner)のコンテナの環境変数に、MySQL用の接続文字列を登録する。
また、MySQLの利用に付随して必要となる以下の設定を行います。
- MySQLのユーザアカウント作成用SQLを記述する。(SQLはMySQLのコンテナを起動する際に自動実行)
- プリザンター(およびCodeDefiner)の起動時のエラーを防ぐため、MySQLの起動が完了しているかチェックする設定を、compose.yamlファイルに記述する。
1. ファイル配置¶
フォルダを以下のように構成し、ファイルを配置します。
.
|-- compose.yaml
|-- .env
|
+-- app_data_parameters
| +-- 拡張機能用フォルダ
| | +-- 拡張機能用ファイル
| |
| +-- パラメータファイル
|
+-- docker-entrypoint-initdb.d
| +-- pleasanter.sql
|
+-- CodeDefiner
| +-- Dockerfile
|
+---Pleasanter
+-- Dockerfile
1-1. app_data_parametersフォルダ¶
以下手順でRds.jsonおよび既定値から変更したいパラメータファイルを配備します。
- ダウンロードセンターから、プリザンターをダウンロードします。特段理由がない場合は最新バージョンをダウンロードしてください。過去にリリースした特定のバージョンが必要な場合は、該当のバージョンのプリザンターをダウンロードしてください。
- zipファイルを解凍します。
- 解凍したフォルダ配下にある「\pleasanter\Implem.Pleasanter\App_Data\Parameters\Rds.json」を
app_data_parametersフォルダ配下にコピーします。 - コピーしたRds.jsonを編集し、使用するデータベースサーバをMySQLに変更して保存します。
- その他にパラメータを既定値から変更したい場合は、変更済みのパラメータファイルを
app_data_prametersフォルダに格納してください。
以下、Rds.jsonの修正例です。
1-2. CodeDefinerフォルダ¶
/CodeDefiner/Dockerfileを以下の内容で作成します。
| /CodeDefiner/Dockerfile | |
|---|---|
1-3. Pleasanterフォルダ¶
/Pleasanter/Dockerfileを以下の内容で作成します。
| /Pleasanter/Dockerfile | |
|---|---|
1-4 .envファイル¶
.envファイルを作成します。
MySQLのDocker公式イメージで必須とされる環境変数のうち、本手順ではデフォルトのスーパーユーザアカウント(root)のパスワード設定先であるMySQL_ROOT_PASSWORDを記述します。
MySQL - Official Image | Docker Hub
docker-library/MySQL: Docker Official Image packaging for MySQL Community Server
| 名称 | 内容 |
|---|---|
| MySQL_ROOT_PASSWORD | 任意のパスワード文字列を指定する |
環境変数PLEASANTER_VERを用意し、プリザンターのバージョンを指定します。
| 名称 | 内容 |
|---|---|
| PLEASANTER_VER | {{Version}}は、DockerHubで公開されているプリザンターのバージョン(例:latest、1.4.10.1など)を指定してください。 バージョンの値は、前述の「1-1. app_data_parametersフォルダ」内に配備するパラメータファイルの取得元のバージョンと一致させる必要があります。 |
SaConnectionStringは最初にMySQLにスーパーユーザで接続するための設定が一行で表現されています。MySQLの環境変数の内容とSaConnectionStringに記述されている内容を合わせる必要があります。
| 名称 | 内容 |
|---|---|
| Server | composeファイルのサービス名(db)を指定する |
| Database | MySQLのデフォルトのシステムデータベース名(MySQL)を指定する |
| UID | MySQLのデフォルトのスーパーユーザ名(root)を指定する |
| PWD | 環境変数のMySQL_ROOT_PASSWORDと揃える |
OwnerConnectionStringとUserConnectionStringはそれぞれのユーザで接続するための設定が一行で表現されています。
| 名称 | 内容 |
|---|---|
| PWD | 任意のパスワード文字列。OwnerとUserのパスワードは別々が望ましい |
実際のファイルの例です。{{ ... }}は適宜修正してください。
1-5. docker-entrypoint-initdb.dフォルダ¶
説明¶
後述するcompose.yamlファイル内dbサービス配下のvolumesの設定により、MySQLのコンテナのdocker-entrypoint-initdb.dディレクトリに自動的にマウントされるフォルダです。
コンテナにマウントされたdocker-entrypoint-initdb.dディレクトリ内のファイルに記載されているSQLコマンドは、MySQLのコンテナの起動時に自動実行されます。
記述するSQLの内容¶
以下、docker-entrypoint-initdb.dフォルダ内に配置するpleasanter.sqlファイルの例です。
上記の例では、プリザンターのデータベース名にService.jsonの"Name"の既定値である「Implem.Pleasanter」を指定しています。Service.jsonの"Name"を既定値から変更する場合、SQL文でデータベース名を指定している箇所(上記Implem.Pleasanterの箇所)を、Service.jsonの"Name"の変更後と揃えてください。
また、identified byの後で指定する各MySQLユーザアカウントのパスワード文字列は、上記.envファイルと一致させてください。
1-6 compose.yamlファイル¶
compose.yamlファイルを作成します。
2. コンテナイメージのビルド¶
以下コマンドを実行します。
3. CodeDefinerの実行¶
以下コマンドを実行します。
| 引数 | 設定例 | 説明 |
|---|---|---|
| /l | ja | Service.jsonのDefaultLanguageの値を書き換えます 1 |
| /z | Asia/Tokyo | Service.jsonのTimeZoneDefaultの値を書き換えます 1 |
日本語環境で利用する場合は、以下コマンドとなります。
途中でType "y" (yes) if the license is correct, otherwise type "n" (no).と表示されたら Y を入力してください。
Note
コンソールログに以下のようにバージョンが出力されます。ここで表示されるバージョンは常に「DockerHubで公開されている最新のプリザンターのバージョン」となります。このコンソールログ表示の仕様は、.envファイルの{{Version}}に最新よりも前のバージョンを指定した場合も同様ですが、データベースは{{Version}}に準拠した内容で作成されますので、プリザンターの動作上の問題はありません。
4. プリザンター起動¶
コンテナを作成、プリザンターを起動します。
ブラウザでアクセスします。
ログイン画面にて「ログインID: Administrator」、「初期パスワード: pleasanter」を入力します。ログイン後、パスワードの変更を求められますので適宜パスワードを設定してください。
5. コンテナの停止と削除¶
コンテナの停止は以下のコマンドで行います。
停止したコンテナを再開する場合は以下のコマンドを実行します。
コンテナを停止してもDBデータは削除されません。再開する際にはデータがそのまま利用できます。
コンテナの削除は以下のコマンドで行います。
コンテナを削除してもDBデータ(ボリューム)は削除されません。
なおコンテナを削除した場合は、再開はできません。起動したい場合はコンテナを作成してください。
以下のコマンドを実行します。これによりDBのコンテナも一緒に作成され残っているDBデータもそのまま利用できます。
コンテナを削除する時に同時にデータ(ボリューム)を削除する場合はボリュームを削除するオプションを付けて実行します。
対応バージョン¶
| 対応バージョン | 内容 |
|---|---|
| 1.4.10.0 以降 | MySQLのアクセス制御機能によりOwner、Userの接続が拒否される場合がある問題の解消に伴いマニュアルを公開 2 |
| 1.4.18.0 以降 | MySQLのDBへの接続元ホストにlocalhost(DBと同一のサーバ)以外を指定する機能の追加に伴いマニュアルを修正 |
関連情報¶
-
言語、タイムゾーンは以下マニュアルページを参照ください。
FAQ:プリザンターでサポートしている言語とタイムゾーンのパラメータの設定値を知りたい ↩↩ -
プリザンターはVer1.4.9.0以降でMySQLに対応しましたが、本手順はVer1.4.10.0以降でなければ実施できません。 ↩
