こんにちは。 リーデックス小川です。
今回は、前日アナウンスされたプリザンターLinux版を弊社エンジニアがDocker上にインストールしてみました。 Linux版の情報は少ないと思いますので、もしよろしければ参考ください
想定読者
- Dockerのコマンドがわかる
- 最低限の手順でとりあえずプリザンターを動かしてみたい
環境
Windows + VirtualBox + Vagrant
- 上記構成でDockerを動かすまでの手順は割愛します。
- Dockerが動けばいいので上記構成は必須ではありません。
- dockerのインストールはdocker動いてるboxをhttps://app.vagrantup.com/nfqlt/boxes/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
にアクセス
ログイン画面が表示されました。
Administrator/pleasanter
でログイン
パスワード設定画面を挟んだ後、プリザンターの画面が表示されました!