先日、株式会社インプリム様と弊社がパートナー契約を締結したこともあり、社内に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