LoginSignup
6

More than 5 years have passed since last update.

Heroku で PlantUML サーバーを立ててみた

Last updated at Posted at 2017-05-27

この記事で作成したアプリで使用している PlantUML サーバーを Heroku で立てたので、手順をまとめておきます。

2017/09/20 追記
本家が jetty-runner に対応したため、webapp-runner は不要になりました。

Heroku の準備

  1. Heroku のアカウント作成
  2. 画面に沿って新規アプリ作成
  3. Buildpacks は Java を選択 (4 と同じタイミングでも可)
  4. Settings の Buildpacks に graphviz を追加

image

デプロイの準備

  1. plantuml-server を clone
  2. Heroku にデプロイ( push )する前に以下の修正を行います。
    1. Procfile を新規追加する。
    2. pom.xml に webapp-runner を追加します。詳細はこちら jetty-runner についてはこちら
    3. .fonts 以下にフォントを追加します。(無難に IPAexフォントにしました。フォントがないと日本語が表示できません。)
  3. Heroku CLI をインストール ( mac なら brew install heroku )
  4. heroku git:remote -a アプリ名 を実行し、リモートブランチとして heroku のアプリを指定。
  5. git push heroku master で heroku へデプロイします。

動作確認

Resources は以下のようになっていれば OK

image.png

また、Build log が以下のようになります。

-----> Java app detected
-----> Installing OpenJDK 1.8... done
-----> Installing Maven 3.3.9... done
-----> Executing: mvn -DskipTests clean dependency:list install

<中略> 依存関係のダウンロード等 ( plantuml.war のビルド、jetty-runner のダウンロード etc )

       [INFO] ------------------------------------------------------------------------
       [INFO] BUILD SUCCESS
       [INFO] ------------------------------------------------------------------------
       [INFO] Total time: 13.995 s
       [INFO] Finished at: 2017-03-26T00:55:20+00:00
       [INFO] Final Memory: 32M/231M
       [INFO] ------------------------------------------------------------------------
-----> Graphviz app detected
-----> Installing Graphviz version 2.36.0
       (Ubuntu package graphviz_2.36.0-0ubuntu3.1_amd64.deb)
-----> Graphviz binaries in /app/graphviz/bin and added to PATH
-----> Discovering process types
       Procfile declares types -> web
-----> Compressing...
       Done: 73.1M
-----> Launching...
       Released バージョン
       https://アプリ名.herokuapp.com/ deployed to Heroku

あとは、簡単なシーケンス図や、オブジェクト図が表示できればOKです。

参考

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
What you can do with signing up
6