先日、株式会社インプリム様と弊社がパートナー契約を締結したこともあり、社内にPleasanterの検証環境が必要になりました。
Pleasanterのインストール手順はユーザーマニュアルにある通りなのですが、見ての通り、色々面倒ですよね。というわけで、お手軽にDockerで立ち上げる方法を紹介します。
compose.ymlの用意
まず、以下のふたつのYAMLを用意してください。ここではファイル名ひとつめのファイル名を compose.yml 、ふたつめを codedefiner.yml としました。
services:
db:
container_name: postgres
image: docker.io/library/postgres:16
ports:
- "5432:5432"
volumes:
- postgresql:/var/lib/postgresql/data
environment:
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB}
POSTGRES_HOST_AUTH_METHOD: ${POSTGRES_HOST_AUTH_METHOD}
POSTGRES_INITDB_ARGS: ${POSTGRES_INITDB_ARGS}
pleasanter:
container_name: pleasanter
image: docker.io/implem/pleasanter:1.4.8.1
depends_on:
- db
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}
ports:
- "8080:8080"
volumes:
postgresql:
services:
codedefiner:
container_name: codedefiner
image: docker.io/implem/pleasanter:codedefiner
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}
command: "_rds /y /l \"ja\" /z \"Asia/Tokyo\""
.envの用意
同じディレクトリ内に、パスワードを記述した .env ファイルを用意しておきましょう。中身は適宜書き換えてください。
POSTGRES_USER=postgres POSTGRES_PASSWORD=PostgreSQLのportgresユーザーのパスワード POSTGRES_DB=postgres POSTGRES_HOST_AUTH_METHOD=scram-sha-256 POSTGRES_INITDB_ARGS="--auth-host=scram-sha-256" Implem_Pleasanter_Rds_PostgreSQL_SaConnectionString='Server=db;Database=postgres;UID=postgres;PWD=PostgreSQLのportgresユーザーのパスワード' Implem_Pleasanter_Rds_PostgreSQL_OwnerConnectionString='Server=db;Database=#ServiceName#;UID=#ServiceName#_Owner;PWD=PleasanterのDBオーナーのパスワード' Implem_Pleasanter_Rds_PostgreSQL_UserConnectionString='Server=db;Database=#ServiceName#;UID=#ServiceName#_User;PWD=PleasanterのDBユーザーのパスワード'
データベースの起動
Pleasanterをはじめて起動する際には、以下の手順が必要です。
- データベースを起動する
- CodeDefinerでデータベースを初期化する
- Pleasanterを起動する
そのため、いきなり docker compose up をしても、Pleasanterは動いてくれません。まずデータベースコンテナだけを起動します。
$ docker compose up db -d
CodeDefinerの実行
データベースコンテナが起動したら、CodeDefinerによる初期化を行います。
$ docker compose -f ./codedefiner.yml up
Pleasanter 1.4.8.1では、CodeDefinerの実行中にライセンスの確認が行われ、対話的にY/nを入力しなければならなくなりました。そのため従来のようにバックグラウンドでCodeDefinerを起動しようとすると、対話的な入力ができず、ここでコケてしまいます。該当部分の変更はこちら。
これをスキップするには、CodeDefinerの起動オプションに /y を追加します。ここではYAML内のcommandで、言語やタイムゾーンと同様に指定を行っています。
Pleasanterの起動
初期化が完了したら、普通にPleasanterを起動しましょう。以後はデータベースといっしょに、Composeでup/downが可能になります。
$ docker compose up -d
