DockerComposeを使った Pleasanter&PostgreSQL 環境の構築方法！

# DockerComposeを使った Pleasanter&PostgreSQL 環境の構築方法！

## はじめに

私は業務でPleasanterの機能の検証を行う際、localhostを使用しています。  
しかし、バージョンによる差異等で複数のPleasanterを使う時はPleasanterのダウンロードなどを何度も行うことがあります。  
もちろん、VM環境等を用いることがありますが、今回はDockerを使った検証環境の構築を実施します。  

## Dockerを使った Pleasanter&PostgreSQL 環境の構築手順

上記「はじめに」で「検証環境の構築を実施します」と記載しましたが、実際は下記リンク先「README.md」ファイルをご参照ください。  

https://github.com/teppei12345/PublicRepository/tree/main/7.%20Docker  

上記リンク先の下記リンク先「README.md」ファイルは英語表記となっていますので、こちらでは日本語版「README.md」ファイルとしてご活用ください。  

### 日本語版README.md

---

# Pleasanter * PostgreSQL 環境を構築するためのDocker Compose

## 概要

こちらのモジュールによって、Docker環境でPleasanter * PostgreSQL環境を構築できます。  
各ツールやサービスについては下記をご参照ください。  

* [Pleasanter](https://pleasanter.org/purpose)  
* [PostgreSQL](https://www.postgresql.jp/document/)  
* [Docker](https://www.docker.com/)  
* [Docker Compose](https://github.com/docker/compose)  

### 対象者

* Dockerを使ったPleasanterのバージョンアップ等でパラメータ設定をどう引き継ぐか悩んでいる方  
* Docker環境下のPostgreSQLで蓄積したデータを永続化したい方  
* 上記両方を実現したい方  
* Docker Composeを使ってPleasanter * PostgreSQL環境を構築したい方  
* Pleasanterを快適に使いたい方  

### 実現できること

* 3つのコマンドでPleasanterを利用できます  
* Pleasanterのパラメータ設定を引き継げます  
* PostgreSQLのデータを永続化できます  

### 内容

このモジュールには下記バージョンのツールが含まれています。  

|ツール|バージョン|
|:----|:----|
|Pleasanter|1.3.6.0|
|PostgreSQL|15|
|pgadmin4|8.9|

## 手順

### 導入

1. 任意のディレクトリに「PleasanterModule.zip」をダウンロードします  
2. 「PleasanterModule.zip」を解凍します  
    **※ 解凍するディレクトリは任意です**  
3. ライセンスファイルを「PleasanterModule」ディレクトリに配置します  
4. 「PleasanterModule」ディレクトリでコマンドプロンプトを起動します  
5. 下記の順序でコマンドを実行します  

#### 1. イメージのプル

```CMD
docker compose build
```

#### 2. PostgreSQLとCodeDefinerコンテナの実行

```CMD
docker compose run --rm codedefiner _rds
```

#### 3. Pleasanterコンテナの実行

```CMD
docker compose up -d pleasanter
```

#### 4. pgadmin4のイメージプルとコンテナの実行

PostgreSQLを参照するためのGUIツール「pgadmin4」を使用したい場合は、下記のコマンドを実行してください。  

```CMD
docker compose up -d pgadmin4
```

### 起動確認

各ツールが起動していることを確認してください。  

#### Pleasanterへのアクセス(localhost:50001)

[localhost:50001](http://localhost:50001/)にアクセスし、ログイン画面に遷移することを確認してください。  

#### Pleasanterでテーブルの作成

以下の手順で「記録テーブル」を作成し、「一覧画面」に遷移することを確認してください。  

##### 初回ログインからテーブルを作成する手順

1. 下記「Pleasanterログイン情報」の内容を入力し、「ログイン」をクリックしてください  
2. 表示されるダイアログボックスに任意のパスワードを入力し、「変更」をクリックします  
    **※今後のログイン情報となりますので、厳重に管理してください**  
3. 画面左上の「＋」をクリックしてください  
4. 遷移した画面左から「記録テーブル」を選択し、「作成」をクリックします"  
5. 任意の名前を入力し、「作成」クリックします  
6. 作成したテーブルをクリックし、遷移することを確認してください  

**Pleasanterログイン情報**  

|パラメータ|値|
|:----|:----|
|ログインID|Administrator|
|パスワード|pleasanter|

#### pgadmin4へのアクセス(localhost:12345)

[localhost:12345](http://localhost:12345/)にアクセスし、ログイン画面に遷移することを確認してください。  

#### pgadmin4を使ってデータを確認

1. 下記「pgadmin4ログイン情報」の内容を入力し、「ログイン」をクリックしてください  
2. 「Servers」を右クリックし、「登録 > サーバ...」をクリックします  
3. 下記「サーバー登録情報」の内容を入力し、「保存」をクリックしてください  
4. 「Servers > db > データベース > Implem.Pleasanter > スキーマ > Implem.Pleasanter > テーブル >  items」テーブルを右クリックします  
5. 「データを閲覧/編集 > 最後の100行」をクリックします  
6. 先ほど作成したテーブルのデータ(ReferenceId：1)  

**pgadmin4ログイン情報**  

|パラメータ|値|
|:----|:----|
|Email Address / Username|example@example.test|
|Password|password|

**サーバー登録情報**  

|タブ|パラメータ|値|
|:----|:----|:----|
|General|名前|db|
|接続|ホスト名/アドレス|db|
|接続|ユーザ名|postgres|
|接続|パスワード|postgres|

### 環境変数

「環境変数」は「PleasanterModule/.env」ファイルに記述されています。  

|パラメータ|説明|
|:----|:----|
|PLEASANTER_VER|Pleasanterバージョン|
|POSTGRES_VER|postgreSQLバージョン|
|PGADMIN4_VER|pgadmin4バージョン|
|Implem_Pleasanter_Rds_PostgreSQL_SaConnectionString|データベースインスタンスにsa権限で接続するための接続文字列|
|Implem_Pleasanter_Rds_PostgreSQL_OwnerConnectionString|Pleasanterのデータベースにdbowner権限で接続するための接続文字列|
|Implem_Pleasanter_Rds_PostgreSQL_UserConnectionString|Pleasanterのデータベースにdbreader,dbwriter権限で接続するための接続文字列|
|POSTGRES_USER|スーパーユーザ名|
|POSTGRES_PASSWORD|スーパーユーザのパスワード|
|POSTGRES_DB|デフォルトで作成されるDB名|
|POSTGRES_HOST_AUTH_METHOD|認証方式|
|POSTGRES_INITDB_ARGS|「initdb」コマンドの実行時に渡すパラメータ|
|PGDATA|dbフォルダ名|
|PGADMIN_DEFAULT_EMAIL|デフォルトのメールアドレス|
|PGADMIN_DEFAULT_PASSWORD|デフォルトのパスワード|

### 運用

#### 1. パラメータの変更

1. 「PleasanterModule/Parameters」ディレクトリ上のフォルダまたはファイルを変更します  

#### 手順

1. 「PleasanterModule」ディレクトリでコマンドプロンプトを起動します  
2. 下記の順序でコマンドを実行します  

#### 1. パラメータの再読み込み

```CMD
docker compose up -d --build
```

#### Pleasanter * PostgreSQL環境の削除

1. 「PleasanterModule」ディレクトリでコマンドプロンプトを起動します  
2. 下記の順序でコマンドを実行します  

##### 1. コンテナとネットワークの削除

```CMD
docker compose down
```

---

## さいごに

いかがでしたでしょうか？Pleasanter * PostgreSQLの環境構築はできたでしょうか？  
Pleasanterは多種多様な機能を備えていながら、標準機能はすべて無料という懐のとても深いツールとなっております。  
ただ、なかなかITに精通していない人からするとハードルは高いようです。。。  
そのため、この機会に簡単にPleasanterを導入していただき、快適なPleasanterライフを送っていただけると開発者としてとてもうれしいです！