0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

# Docker版 Pleasanter 構築手順書

0
Posted at

はじめに

この手順書は、Linux上のDockerコンテナにオープンソースのローコードツール Pleasanter の環境を検証目的で構築した際の手順をまとめたものです。
この手順を実施することで、Linux上のコンテナでPleasanterを使用したローコード作成環境を構築できます。

Pleasanterは、ノーコード/ローコードで業務アプリケーションを作成できるツールです。
詳細は以下を参照してください。

参考リンク


構築環境

この手順書では、以下の環境を前提として構築しています。

ハードウェア

  • 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のログインページが表示されれば構築完了です。
Pleasanter_login.png

0
2
0

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
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?