にて、Apromore とかいうオープンソースのプロセスマイニングツールがあると知ったので、これを試してみることにした。
セミナー中に調べてみたところ、ソースコードからコンパイルするか、Docker 上で動くものをダウンロードするかの二択。
Docker 版の方がマシだろうと判断して環境構築から始めることにした。
Apromore Docker版をダウンロード
とりあえずダウンロードはしておくが、Docker がまだない状況。
- ApromoreDocker-release-v7.15.0.zip
がダウンロードされた。
Docker Desktop 3.5.1 をダウンロード
https://hub.docker.com/editions/community/docker-ce-desktop-windows
537MBの Docker Desktop Installer を起動すると、数分かけて大量のファイルが展開された。Windowsの再起動が必要なようだ。
再起動した後、画面右下のツールバーにクジラが追加された。
デスクトップにも Docker Desktop というクジラが追加されたので、これを起動すると、さっそくエラーとなったw
Microsoft .NET Framework のエラー
- アプリケーションのコンポーネントで、ハンドルされていない例外が発生しました。
- オブジェクト参照がオブジェクトインスタンスに設定されていません。
- ぬるぽ例外
場所 Docker.Core.Features.Freatures<IsEnabled>d_16.MoveNext()
類例をググって調べたら、Hyper-V 周りでどうこうという記事があった。
Windows ハイパーバイザー プラットフォームとやらを起動
そういえば、そもそも Hyper-V 自体のサービスがオンになっていないのかもしれない。
「ここに入力して検索」欄に hy と入力すると、「Windows の機能の有効化または無効化」が表示された。
「Windows ハイパーバイザー プラットフォーム」とやらをオンにした。
何かファイルを探しにいったあと、再起動を促されたので、すぐに再起動。
なぜか Linux Kernel の更新が必要らしい
再起動後、以下のようなダイアログが表示されて、タスクバーのクジラは死んでいた。
- アプリケーションのコンポーネントで、ハンドルされていない例外が発生しました。
- 種類 'Docker.ApiServices.WSL2.WslKernelUpdateNotInstalledException'
- WSL 2 installation is incomplete
リンクをクリックして Linux kernel を導入しろとのこと。
何かいい感じにはまってきたぞw
Linux サブシステムを導入
リンクをクリックすると
という手順ページに飛ばされた。
を使用して更新プログラムを導入して、手順通りに作業を続ける。
ファイルサイズは16MBくらいだった。
wsl --set-default-version 2
WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください
コマンドに対する応答に違和感があるが、コピペで実行したので間違いはなかろう...
次の手順では、Microsoft Store で Linux のディストリビューションの種類を選べとのこと。
Apromore のシステム要件を見たところ、Linux の場合は Ubuntu だとのこと。
Linux Ubuntu 18.04 (We do not support newer versions as it may lead to dependency issues), Windows 10/WS2016/WS2019, Mac OSX 10.8 or newer
こちとら Windows のつもりなのだが、念のため Ubuntu に合わせておく。
ファイルサイズは 453.7MB だった。
導入後、起動したら UNIX のアカウントを適当に作れと言われた。
何のアカウントなのかは参照先URLに書いてあった。やっぱり管理者か...
下手に考えると分からなくなりそうなので、とりあえず apromore にでもしておく。
どうせ使わないつもりだし。
起動時のエラーは消え、クジラが復活し、初期画面が表示された。
だいたい2分以内の簡単なステップで Docker を使えるようになるらしい。
...とりあえずここまで来るのに、1時間かかったけどな。
チュートリアルの説明を読まされた。
- レポジトリをクローンしなさい
- イメージをビルドしなさい
- 最初のコンテナを走らせなさい
- イメージを保存して共有しなさい
使う場合の手順ではなくて、作る場合の手順らしかった。要らん。
とりあえず以下の状態にはなったので、Apromore を入れて走らせればいいらしい。
No containers running
Apromore Docker版をロード
Docker の画面を日本語にする方法が不明なので、英語のままで作業する。
- ApromoreDocker-release-v7.15.0.zip
が手許にあるが、たぶん ZIP のままではダメだろうと思うのでいったん展開する。
たぶん Images というところで LOCAL からファイル指定するのだろうと思うが、展開したファイルがあるフォルダを指定できない...
指定できないということは、どこか所定の場所に置く必要があるのだろう。
Docker image 置き場
で検索したら、/var/lib/docker 配下らしいが意味がわからん。
ダウンロードしたファイルの中に README.md があったので、そちらを読んでみた。
README.md を読む
## Start Apromore Docker
* For Windows, execute `start.bat` command in the command prompt or double click the `start.bat` file.
**Note:** Make sure the local directory of the docker folder is added in the Docker Desktop app so that it can mounted into Docker containers. This can be done by navigating to `Settings>Resources>File Sharing` in the Docker Deskop App.
- Settings>Resources>File Sharing から、この Docker フォルダのローカルディレクトリを Docker Desktop に追加して Docker コンテナにマウントされるようにしておけ
- Start.bat を起動しろ
File Sharing が見当たらないのですが orz
Settings>Resources までは見つかったが、File Sharing は見つからなかった。
docker filesharing ない
で検索したら、以下のマニュアルに漂着した。
このマニュアルでは File sharing が ADCANCED と PROXIES の間にあるような画面例が記載されていたが、自分の環境では表示されていない。
説明を読むと
File sharing(ファイル共有)を利用すると、Windows 内のローカルディレクトリを Linux コンテナー間で共有できるようになります。
とのことなので、Windows コンテナーの場合は、そもそも関係なさそうだった。
ということで、Start.bat をそのまま起動することにした。
README.md の注意書き Note の意図は分からずじまいだったが、無いものは無いので、そのまま Start.bat で起動してみることにした。
apromoresql、apromore などを pull する処理が走り始めた。
pull complete がたくさん表示されているので、多分正常に動作しているのだろう...
Docker の Containers / Apps に Apromore が追加された
- apromoredocker-release-v7150
が追加された。
start.bat のログ出力の最後の2行は
- <DE0005I> Started plan 'org.apromore.core' version '1.1.0'.
- <DE0005I> Started plan 'org.apromore.community' version '1.1.0'.
となり、ここで出力が止まったので、多分これで起動したってことなんだろう。
README.md の続きを読む
さて、これで Docker は起動したようなのだが、利用者向けの画面は全く表示されていない。どうすればいいんだ?
READMEの続きを読むことにした。
Once Apromore Docker is started the logs will print the following messages:
>`Started plan 'org.apromore.community' version '1.1.0'`The logs will indicate that your application is running.
Open Apromore Web UI: http://localhost:80(http://localhost:80).
Use credentials `admin/password` to login.
さっきのログが出力されておいれば起動は完了という説明がちゃんとあった。
Apromore の Web UI はたんに localhost の Webサーバとなっているらしい。
アプロモア apromore のログイン画面が表示された。
ポート番号80のままなので、何かとカチ合っていたらやばいなと思っていたのだが、とくに使っていなかったようで、無事に画面が表示された。
admin/password という安直なユーザ名とパスワードに Google Chrome が驚愕して、パスワードを変更しろ!とメッセージを出してきたが、ローカルホストなので無視することにする。
コマンドプロンプト側にはログインされた旨のログがたくさんダンプされ、ブラウザにはポータル画面が表示された。
アプロモア apromore のポータル画面が表示された。
しかし、何をすればよいのか分からない...