はじめに
この手順書は、Linux上のDockerコンテナにオープンソースのローコードツール Pleasanter の環境を検証目的で構築した際の手順をまとめたものです。
この手順を実施することで、Linux上のコンテナでPleasanterを使用したローコード作成環境を構築できます。
Pleasanterは、ノーコード/ローコードで業務アプリケーションを作成できるツールです。
詳細は以下を参照してください。
参考リンク
- アップデート手順参考ページ:
Docker版プリザンターで運用する方法(1.4系編) - Pleasanter公式ドキュメント: Dockerで起動する
構築環境
この手順書では、以下の環境を前提として構築しています。
ハードウェア
- VMware上の仮想マシン
- vCPU: 4
- メモリ: 8GB
- ストレージ: 32GB
ソフトウェア
- OS: Ubuntu Linux 24.04
- Pleasanter: 1.4.9.1
- DB: PostgreSQL 16.4
環境構築手順
以下の手順に従って構築を進めます。
1. Docker インストール
コンテナエンジンとして広く利用されているDockerをインストールします。
また、DockerコンテナでSSL接続を行うため、CA証明書のインストールと設定を行います。
sudo apt install ca-certificates
sudo install -m 0775 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
sudo groupadd docker
sudo usermod -aG docker user
sudo apt install docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-plugin
2. gitインストール・リポジトリクローン
Pleasanterのソースコードを取得するため、gitをインストールし、GitHub CLIでログインします。
sudo apt install gh
gh auth login
gh repo clone Implem/Implem.Pleasanter
3. コンテナ用ディレクトリ作成・パラメータファイル配置
Pleasanterのコンテナ実行用ディレクトリを作成し、クローンしたリポジトリから必要なパラメータファイルをコピーします。
mkdir pleasanter_container
cd pleasanter_container/
cp -rp ~/Implem.Pleasanter/Implem.Pleasanter/App_Data/Parameters/* app_data_parameters/
4. 環境変数設定
PleasanterおよびPostgreSQLのバージョン、接続文字列、DB初期設定値などを環境変数として定義します。
(パスワードは伏せています)
export PLEASANTER_VER=1.4.9.1
export POSTGRES_VER=16.4
export Implem_Pleasanter_Rds_PostgreSQL_SaConnectionString='Server=db;Database=postgres;UID=postgres;PWD=*******'
export Implem_Pleasanter_Rds_PostgreSQL_OwnerConnectionString='Server=db;Database=#ServiceName#;UID=#ServiceName#_Owner;PWD=*******'
export Implem_Pleasanter_Rds_PostgreSQL_UserConnectionString='Server=db;Database=#ServiceName#;UID=#ServiceName#_User;PWD=*******'
export POSTGRES_USER=postgres
export POSTGRES_PASSWORD=*******
export POSTGRES_DB=postgres
export POSTGRES_HOST_AUTH_METHOD=scram-sha-256
export POSTGRES_INITDB_ARGS="--auth-host=scram-sha-256 --encoding=UTF-8"
export PGDATA=/var/lib/postgresql/data
5. 各種構築用設定ファイル作成
compose.yml を作成し、Pleasanter本体、CodeDefiner、PostgreSQL、DBバックアップ用のコンテナ設定を記述します。
services:
pleasanter:
build:
context: .
dockerfile: ./Pleasanter/Dockerfile
args:
- VERSION=${PLEASANTER_VER}
container_name: pleasanter_${PLEASANTER_VER}
environment:
Implem.Pleasanter_Rds_SaConnectionString: ${Implem_Pleasanter_Rds_PostgreSQL_SaConnectionString}
Implem.Pleasanter_Rds_OwnerConnectionString: ${Implem_Pleasanter_Rds_PostgreSQL_OwnerConnectionString}
Implem.Pleasanter_Rds_UserConnectionString: ${Implem_Pleasanter_Rds_PostgreSQL_UserConnectionString}
depends_on:
- db
ports:
- '8881:8080'
networks:
- default
codedefiner:
build:
context: .
dockerfile: ./CodeDefiner/Dockerfile
container_name: codedefiner
environment:
Implem.Pleasanter_Rds_SaConnectionString: ${Implem_Pleasanter_Rds_PostgreSQL_SaConnectionString}
Implem.Pleasanter_Rds_OwnerConnectionString: ${Implem_Pleasanter_Rds_PostgreSQL_OwnerConnectionString}
Implem.Pleasanter_Rds_UserConnectionString: ${Implem_Pleasanter_Rds_PostgreSQL_UserConnectionString}
depends_on:
- db
networks:
- default
stdin_open: true
db:
container_name: postgres${POSTGRES_VER}
image: postgres:${POSTGRES_VER}
volumes:
- type: volume
source: pg_data
target: ${PGDATA}
networks:
- default
environment:
- POSTGRES_USER
- POSTGRES_PASSWORD
- POSTGRES_DB
- POSTGRES_HOST_AUTH_METHOD
- POSTGRES_INITDB_ARGS
- PGDATA
user: postgres
dbbackup:
image: ubuntu
container_name: dbbackup
networks:
- default
volumes:
- type: volume
source: pg_data
target: /pg_data
- type: bind
source: .
target: /backup
volumes:
pg_data:
name: ${COMPOSE_PROJECT_NAME:-default}_pg_data_${POSTGRES_VER}
networks:
default:
name: pleasanter_prod_network
6. Dockerfile 作成
CodeDefiner/Dockerfile
CodeDefiner用のDockerfileを作成します。
FROM implem/pleasanter:codedefiner
COPY app_data_parameters/ /app/Implem.Pleasanter/App_Data/Parameters/
ENTRYPOINT [ "dotnet", "Implem.CodeDefiner.dll" ]
Pleasanter/Dockerfile
Pleasanter本体用のDockerfileを作成します。
ARG VERSION=latest
FROM implem/pleasanter:${VERSION}
COPY app_data_parameters/ App_Data/Parameters/
ENTRYPOINT [ "dotnet", "Implem.Pleasanter.dll" ]
7. DB接続設定
app_data_parameters/Rds.json を編集し、DB接続情報を設定します。
接続先は compose.yml に定義したDBコンテナ名に合わせます。(パスワードは伏せています)
"Provider": "compose.ymlのDB名",
"SaConnectionString": "Server=compose.ymlのDB名;Database=postgres;UID=postgres;PWD=*******",
"OwnerConnectionString": "Server=compose.ymlのDB名;Database=#ServiceName#;UID=#ServiceName#_Owner;PWD=*******",
"UserConnectionString": "Server=compose.ymlのDB名;Database=#ServiceName#;UID=#ServiceName#_User;PWD=*******"
8. Dockerイメージビルド・DB設定・起動
Dockerイメージをビルドし、DB初期化用のCodeDefinerコンテナを実行、その後Pleasanter本体を起動します。
docker compose build
docker compose run --rm codedefiner _rds /l "ja" /z "Asia/Tokyo"
docker compose up -d pleasanter
Webブラウザで http://<サーバーIP>:8881 にアクセスし、Pleasanterのログインページが表示されれば構築完了です。
