LoginSignup
5
2

More than 1 year has passed since last update.

pleasanter+PostgreSQL+SSL+docker な構成を作ってみた(2022)

Last updated at Posted at 2022-01-02

概要

  • pleasanterも1.2系統になったのでdocker 環境定義を最新に更新しました。
  • pleasanter+PostgreSQL+SSL+docker な構成を作ってみた の2022年度版です
  • 昨今の状況を考慮してawsのarm系のインスタンスタイプでも動かせるように調整しています。(m1 macでも動くョ!)

コンテナ構成

作成したコンテナ構成は以下となります。

スクリーンショット 2022-01-02 14.21.28.png

No コンテナ名 概要 定義ファイル
1 https-portal HTTPS通信用。Let's Encryptを用いた証明書取得の自動化 docker-compose.https-portal.yml
2 pleasanter-web PleasanterのWebシステム docker-compose.yml
3 postgres-db PostgreSQL DB(Pleasanterで使用されるDB) docker-compose.yml
4 cron-backup バックアップ用のクローンプログラムを格納 docker-compose.yml

# EC2環境構築準備

環境としてamazon linuxを想定します。
今回は時代の流行りに乗ってarm系のインスタンスを使用することとします。
基本的にはdockerが動作すれば問題なく動作するため、一般的なVPSでも稼働させる事はできると思います。

swap追加

節約でnano系のインスタンスを使おうと思った場合、disk領域を拡張してswapを追加しておくべきです。
(対策をせずに動かすとメモリ不足となる可能性が高いため。)
追加に関してはは以下、gitsを参考にしてください。

・disk領域を追加
・swap領域を追加

amazon linuxにdockerを入れる

手始めに素のamazon linuxにdockerを入れます。
以下コマンドはdocker実行のために、グループを追加しているので、設定を反映させるためには追加が完了したら一度ログアウトする必要があります。

sudo yum update -y &&
sudo yum install -y docker &&
sudo yum install -y wget git &&
sudo service docker start &&
sudo systemctl enable docker.service &&
sudo usermod -a -G docker ec2-user &&
hash -r

docker composeを入れる

intel系の環境の場合

intel系のlinuxの場合は以下コマンドでcomposeを入れることができます。
(バージョンがちよっと古いかな...。)

sudo curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose &&
sudo chmod +x /usr/local/bin/docker-compose &&
docker-compose --version

arm系の環境の場合

arm系の場合、公式のzipとして対象のバイナリがリリースされていないので、
以下サイトを参考にさせて頂きました。
Amazon EC2 (Arm版)でdocker-composeを動作検証

sudo yum install -y python37 python3-devel.$(uname -m) libpython3.7-dev libffi-devel openssl-devel &&
sudo yum groupinstall -y "Development Tools"  &&
sudo python3 -m pip install -U pip  &&
python3 -m pip install docker-compose &&
docker-compose --version

docker-composeのバージョンが確認できれば一段落です。

dockerのデータ置き場を変更する

デフォルト状態では、dockerのイメージ、データの置き場きec2の本体領域になってしまいす。
初期構成のままですとこの状態では、すぐにdisk fullになってしまうため以下gitsで拡張領域に移動します。

dockerのデータ置き場を移動

pleasanterの動作準備

pleasanterイメージの構築

linuxにログインして以下コマンドを起動します。
これにより、対象となるイメージのビルドが行われてpleasanterの実行準備が整います。

mkdir git &&
sudo yum -y install git &&
cd git &&
git clone https://github.com/yamada28go/pleasanter-docker-PostgreSQL.git &&
cd pleasanter-docker-PostgreSQL &&
git checkout origin/master_1.2 &&
docker-compose build --no-cache &&
docker-compose up -d pleasanter-web postgres-db &&
sleep 30 &&
docker ps | grep pleasanter-web | cut -d' ' -f 1  | xargs -I {} docker exec {} cmdnetcore/codedefiner.sh &&
docker-compose stop

pleasanterのバージョンを変更する場合

pleasanterのバージョンは環境変数にGitのハッシュ値を指定する事で設定できるように設定されています。
動作させたいpleasanterバージョンに指定がある場合、docker-compose.ymlにおいて以下の環境変数設定を切り替えてください。

  pleasanter-web:
    build:
      context: pleasanter/.
      args:
        # バージョンを指定
        # 1.2.22.1 : c5a2153216da40bb609d755e85a05fa455d2f4d4
        - GIT_HASH=c5a2153216da40bb609d755e85a05fa455d2f4d4 # ← ★ Git Has設定

起動確認

まずは、イメージがきちんと動作する状態か確認しましょう。
この状態で起動すると、sslがない状態で8001番ポートでpleasanterが待機します。

docker-compose up

ec2のセキュリティグループの設定を変更して、8001番ポートにアクセスできるようにして、
ブラウザでアクセスしてみましょう。
必要なアカウント情報は以下となります。
正しくログインができれば、コンテナの準備は成功したこととなります。

user: Administrator
pass: pleasanter

SSL起動設定

イメージが正しく動作することを確認したら、
SSLで通信ができるように設定を切り替えましょう。
awsのセキュリティグループの設定を切り替えてhttp(80)、https(443)が通るようにしましょう。
(Let's Encryptのドメイン認証の関係で80ポートが必要となります。)
httpsの通信はHTTPS-PORTALのイメージを使います。
このイメージの設定は「docker-compose.https-portal.yml」に書かれています。

ファイルの★の部分を変更します。

docker-compose.https-portal.yml
~ 抜粋 ~
  # 通信を暗号化
  https-portal:
    image: steveltn/https-portal:1
    ports:
      - '80:80'
      - '443:443'
    links:
      - pleasanter-web
    restart: always
    environment:
      DOMAINS: 'wordpress.example.com -> http://pleasanter-web' ← ★1
      # 本番モードへ切り替え
      # STAGE: 'production' ← ★2
      # 証明書を強制的に再取得する
      # FORCE_RENEW: 'true'
~ 抜粋 ~
意味
★1 wordpress.example.comをご自分のドメイン名に置き換えてください。
★2 コメントを外すとLet's Encrypt から発行された証明書を使います。コメント付きだとオレオレ証明書で動きます。

設定が完了したらデーモンを起動します。
コマンドに「-d」をつけると

docker-compose  -f docker-compose.yml -f docker-compose.https-portal.yml up

ご自分のドメインにアクセスできれば設定完了です。

pleasanterの設定ファイル変更

pleasanter側のパラメータ設定を切り替えたい場合、以下パスにコンテナ起動時のパラメータ設定がコピーされてきます。

{gitでチェックアウトしたルートディレクトリ}/pleasanter/parameters/raw

設定が必要な項目を変更して以下パスに展開しておくと、pleasanterの起動時に対象ファイルがコピーされて対象の設定が適応されるようになります。

{gitでチェックアウトしたルートディレクトリ}/pleasanter/parameters/customize

バックアップ設定

本格的に使用するためにはバックアップの設定は必須となります。
長くなりましたので、バックアップの設定に関しては次の記事に移動します。

5
2
5

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