オープンソースWebDBのプリザンター(pleasanter)ブログ

オープンソースのWebDBのプリザンター(pleasanter)のブログです

オープンソースWebDB「プリザンター」のブログです。 機能の紹介や実例を交え、わかりやすく解説していきます。

プリザンター(クロスプラットフォーム版)をDocker上で動かしてみた

こんにちは。 リーデックス小川です。

今回は、前日アナウンスされたプリザンターLinux版を弊社エンジニアがDocker上にインストールしてみました。 Linux版の情報は少ないと思いますので、もしよろしければ参考ください

想定読者

  • Dockerのコマンドがわかる
  • 最低限の手順でとりあえずプリザンターを動かしてみたい

環境

Windows + VirtualBox + Vagrant

  • 上記構成でDockerを動かすまでの手順は割愛します。
  • Dockerマシンにメモリを4GB割り当てます。
  • Windowsで結果を確認したいのでポートフォワードの設定もしておきます。(8080→80)

SQL Serverコンテナの用意

プリザンター公式のREADMEによるとSQL Serverとソース一式は同一マシンにある想定のようなので、 SQL Serverの動作するコンテナにプリザンターの動作する環境を構築していきます。

手間を省くため、SQL ServerのコンテナはMicrosoftのdockerhubで公開されているものを使用します。

# docker pull mcr.microsoft.com/mssql/server
# docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=Password1' -e 'MSSQL_PID=Express' -p 1433:1433 -p 80:80 --name sqlserver -d mcr.microsoft.com/mssql/server
  • 'SA_PASSWORD='の箇所は大文字、小文字、数字、記号のうち3種類以上を使用した任意のものを入力します。(SQL Serverのパスワードポリシー)
  • '-p 80:80'の箇所はポートフォワードの設定を行った場合に必要です。

SQL Serverコンテナ上にビルド/実行環境を構築

SQL Serverコンテナに入ります。

# docker exec -it sqlserver bash

Microsoftの.NET公式に書いてある通りに.NET Core SDKをインストールします。(※SQL ServerのコンテナはUbuntu 16.04 (x64)です)

# wget -q https://packages.microsoft.com/config/ubuntu/16.04/packages-microsoft-prod.deb
# dpkg -i packages-microsoft-prod.deb
# apt update
# apt install -y dotnet-sdk-2.2

プリザンターのソースを用意

Gitをインストールします。

# apt install -y git

プリザンター(クロスプラットフォーム版)のソースをcloneします。

# git clone https://github.com/implem/implem.Pleasanter.NetCore /home/Pleasanter.NetCore
cd /home/Pleasanter.NetCore

SQL Serverのパスワードを設定

ここはプリザンター公式のREADMEに記載の無い操作です。

設定ファイルを修正するため、vimをインストールします。

# apt install -y vim

SQL Serverとの接続文字列の入っているRds.jsonファイルを修正します。

# vi Implem.Pleasanter.NetCore/App_Data/Parameters/Rds.json

4行目のPWD=SQL Serverのコンテナ起動時に指定したパスワードに変更します。

    "SaConnectionString": "Server=(local);Database=master;UID=sa;PWD=Password1;Connection Timeout=30;",

ビルド、実行準備、実行

スクリプトに実行権限を付与します。

# chmod 744 cmdnetcore/*.sh

build.shを実行し、ビルドを行います。

# cmdnetcore/build.sh

codedefiner.shを実行し、SQL Serverのセットアップを行います。<SUCCESS>で始まるメッセージが表示されれば成功です。

# cmdnetcore/codedefiner.sh

pleasanter.shに起動時のURL設定があるのですが、Docker環境ではlocalhostのままだと接続がうまくいかなかったため、pleasanter.shを編集します。

# vi cmdnetcore/pleasanter.sh

4行目の --urls= の値を http://[コンテナのIPアドレス]:80に変更します。

dotnet Implem.Pleasanter.NetCore.dll --urls=http://172.17.0.2:80

pleasanter.shを実行し、プリザンターを実行します。Application started.と表示されれば成功です。

# cmdnetcore/pleasanter.sh

動作確認

Windowsで動作確認を行います。

ブラウザで localhost:8080にアクセス

f:id:h-ogawa-reedex-co-jp:20190405114335j:plain

ログイン画面が表示されました。

Administrator/pleasanter でログイン

f:id:h-ogawa-reedex-co-jp:20190405114350j:plain

パスワード設定画面を挟んだ後、プリザンターの画面が表示されました!