環境
実行環境
- ハードウェア
-
Raspberry Pi 4
- OS
-
Ubuntu 24.04 LTS
前提条件
-
Dockerがインストールされていること
手順
PleasanterとPostgreSQLを同じ端末上に構築する
-
ホームディレクトリにコンテナ用のディレクトリを作成する
# ディレクトリを作成 $ mkdir -p ~/docker/pleasanter # ディレクトリ移動 $ cd ~/docker/pleasanter -
環境変数を定義する
.envファイルを作成する# 環境変数を定義するためのファイルを作成 $ nano .envPOSTGRES_USER=postgres POSTGRES_PASSWORD=postgres 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=postgres' Implem_Pleasanter_Rds_PostgreSQL_OwnerConnectionString='Server=db;Database=#ServiceName#;UID=#ServiceName#_Owner;PWD=postgres' Implem_Pleasanter_Rds_PostgreSQL_UserConnectionString='Server=db;Database=#ServiceName#;UID=#ServiceName#_User;PWD=postgres' -
コンテナを起動するために`compose.yml`を作成する
# コンテナの定義情報を記載するファイルを作成 $ nano compose.ymlservices: db: container_name: postgres image: postgres:15 ports: - "15432:5432" environment: - POSTGRES_USER - POSTGRES_PASSWORD - POSTGRES_DB - POSTGRES_HOST_AUTH_METHOD - POSTGRES_INITDB_ARGS restart: always volumes: - /var/dockervol/psql/data:/var/lib/postgresql/data networks: pleasanter_net: ipv4_address: 192.16.5.2 logging: driver: "json-file" options: max-size: "1m" # 1ファイルの最大サイズ max-file: "3" # 保持するログファイルの最大数 pleasanter: container_name: pleasanter image: implem/pleasanter depends_on: - db ports: - "13500:8080" 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} restart: always networks: pleasanter_net: ipv4_address: 192.16.5.3 logging: driver: "json-file" options: max-size: "1m" max-file: "3" 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} networks: pleasanter_net: ipv4_address: 192.16.5.4 logging: driver: "json-file" options: max-size: "1m" max-file: "3" networks: pleasanter_net: driver: bridge ipam: driver: default config: - subnet: 192.16.5.0/24 -
codedefinerを実行する
# オプションを指定して日本環境で実行する $ docker compose run --rm codedefiner _rds /l "ja" /z "Asia/Tokyo" # 下記が表示されるので[y]を入力 # Type y (yes) if the license is correct, otherwise type n (no). -
pleasanterを起動する
# バックグラウンドで実行 $ docker compose up -d pleasanter -
http://[IP_address_by_host]:13500/にアクセスしてログイン画面が表示されることを確認
PleasanterとPostgresを別端末で起動する手順
-
DB側の端末にpostgres用の.envファイルを作成する
POSTGRES_USER=postgres POSTGRES_PASSWORD=postgres POSTGRES_DB=postgres POSTGRES_HOST_AUTH_METHOD=scram-sha-256 POSTGRES_INITDB_ARGS="--auth-host=scram-sha-256" -
postgres用のcompose.ymlを作成
services: db: container_name: postgres_pleasanter image: postgres:16 ports: - "25432:5432" environment: - POSTGRES_USER - POSTGRES_PASSWORD - POSTGRES_DB - POSTGRES_HOST_AUTH_METHOD - POSTGRES_INITDB_ARGS volumes: - .pg_data:/var/lib/postgresql/data logging: driver: "json-file" options: max-size: "1m" # 1ファイルの最大サイズ max-file: "3" # 保持するログファイルの最大数 restart: always -
postgresを起動
$ docker compose up -d -
pleasanter側の端末に.envファイルを作成
Implem_Pleasanter_Rds_PostgreSQL_SaConnectionString='Server=192.168.3.100:25432;Database=postgres;UID=postgres;PWD=postgres' Implem_Pleasanter_Rds_PostgreSQL_OwnerConnectionString='Server=192.168.3.100:25432;Database=#ServiceName#;UID=#ServiceName#_Owner;PWD=postgres' Implem_Pleasanter_Rds_PostgreSQL_UserConnectionString='Server=192.168.3.100:25432;Database=#ServiceName#;UID=#ServiceName#_User;PWD=postgres' -
pleasanterのcomposeファイルを作成
services: pleasanter: container_name: pleasanter_pg image: implem/pleasanter:1.4.14.0 ports: - "23500:8080" 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} restart: always logging: driver: "json-file" options: max-size: "1m" max-file: "3" codedefiner: container_name: codedefiner image: 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} logging: driver: "json-file" options: max-size: "1m" max-file: "3" -
codedefinerを実行する
# オプションを指定して日本環境で実行する $ docker compose run --rm codedefiner _rds /l "ja" /z "Asia/Tokyo" # 下記が表示されるので[y]を入力 # Type y (yes) if the license is correct, otherwise type n (no). -
pleasanterを起動する
# バックグラウンドで実行 $ docker compose up -d pleasanter -
http://[IP_address_by_host]:13500/にアクセスしてログイン画面が表示されることを確認
参考
-
公式のDocker Hub