LoginSignup
14
4

プリザンターの公式DockerイメージをComposeで動かす

Last updated at Posted at 2023-05-17

変更あり

文中の「データベース初期化クエリ」は記述から削除しました。(プリザンターバージョンアップに伴う)

はじめに

このエントリはこちらの続きです。

プリザンターを公式Dockerイメージで動かす - Qiita

今回はDocker Composeを使って楽に動かします。

準備

必要なファイルを用意します。

  • データベース初期化クエリ
  • 環境変数ファイル
  • docker-compose.yml

1. データベース初期化クエリの作成

データベース初期化クエリはComposeで動かす場合でも必要ですので 前回 を参考に用意してください。

  1. 環境変数を指定するファイルの作成

    前回と指定する内容は同じですが記述が少し変わります。
    またPostgreSQLの初期化に必要な設定値も一緒に記述します。

    PWD=<Any ... Password>は接続先DBの各ユーザのパスワードですので前回同様それぞれ書きかえてください。
    POSTGRES_HOST_AUTH_METHODPOSTGRES_INITDB_ARGSが前回から増えています。認証方式を明示的に指定するようにしています。

    変更したら.envとして保存しましょう。

    Implem_Pleasanter_Rds_PostgreSQL_SaConnectionString='Server=db;Database=postgres;UID=postgres;PWD=<Any Sa password>'
    Implem_Pleasanter_Rds_PostgreSQL_OwnerConnectionString='Server=db;Database=#ServiceName#;UID=#ServiceName#_Owner;PWD=<Any Owner password>'
    Implem_Pleasanter_Rds_PostgreSQL_UserConnectionString='Server=db;Database=#ServiceName#;UID=#ServiceName#_User;PWD=<Any User password>'
    POSTGRES_USER=<Any Sa User>
    POSTGRES_PASSWORD=<Any Sa Password>
    POSTGRES_DB=<Any system db name>
    POSTGRES_HOST_AUTH_METHOD=scram-sha-256
    POSTGRES_INITDB_ARGS="--auth-host=scram-sha-256"
    
  2. docker-compose.yml

    version: '3'
    
    services:
      db:
        container_name: postgres
        image: postgres:15
        ports:
          - "5432:5432"
        environment:
          - POSTGRES_USER
          - POSTGRES_PASSWORD
          - POSTGRES_DB
          - POSTGRES_HOST_AUTH_METHOD
          - POSTGRES_INITDB_ARGS
    
      pleasanter:
        container_name: pleasanter
        image: implem/pleasanter
        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}
    
      codedefiner:
        container_name: codedefiner
        image: implem/pleasanter:codedefiner
        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}
    
  3. ファイル配置はこうなります。

    .
    +-- .env
    +-- docker-compose.yml
    

実行

準備が整いましたので実行していきます。

  1. CodeDefinerの実行

    docker compose run codedefiner _rds 
    
  2. Peasanter起動

    docker compose run -p 50001:80 pleasanter
    

アクセスする

Pleasanterの起動時に-pで指定している50001がアクセス先のポート番号です。お使いの環境に合わせて変更してください。
ではアクセスします
http://localhost:50001/

いかがですか? いつものログイン画面が表示されましたでしょうか。
初期ユーザ、初期パスワードを入力します。

  • ユーザ: Administrator
  • パスワード: pleasanter

ログインしますとパスワード変更を求められますので入力してください。

終了する

Pleasanterを起動した画面でCtrl-Cとするとコンテナを終了できます。
作成したリソースを削除して終了します。

docker compose down -v --remove-orphans

docker psdocker volume lsで確認すると綺麗に消えているのがわかります。

解説

前回のエントリで実行手順はこうでした。

  1. Dockerネットワークを作成
  2. PostgreSQL起動
  3. CodeDefiner実行
  4. Pleasanter起動

Docker Composeでも内部的に実行されていることは前回と同じになります。
CodeDefinerを実行すると、1, 2, 3 と順番に実行されます。

またコマンドラインのパラメータの数が圧倒的に少なく、docker-compose.ymlに記述されていますので打ち間違いの心配もぐっと減ります。

あとがき

ますますプリザンターを手軽に試せるようになったのでどんどん試してみてください。

参考エントリ

14
4
12

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
4