※ 2016/08/04: Docker for Mac の正式版リリースを受けて全面的に書き直しました。
Camunda BPMとは、ベルリンを本拠地とするBPM(Business Process Management)専門のソフトウェアコンサルタント会社であるCamundaが開発している、ディベロッパーフレンドリーなオープンソースのBPMツールです。
Docker for Mac で開発/デモ環境を構築する手順をメモっておきます。
前提とする環境
- MacOS X El Capitan 10.11.6
- Docker 1.12.0 (Docker for Mac)
動作確認用URL
環境構築手順
H2 Database を使う場合
下記のコマンド一発です。
$ docker run -d --name camunda -p 8080:8080 camunda/camunda-bpm-platform:7.5.0
MySQL を使う場合
1. MySQLコンテナを立ち上げる
$ docker run --name mysql -d -p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=my-super-secret-pw \
-e MYSQL_DATABASE=process-engine \
-e MYSQL_USER=camunda \
-e MYSQL_PASSWORD=camunda \
mysql:5.7
2. Camundaコンテナを立ち上げる
--link mysql
とすると、jdbc driverのURLとしてmysql
を使えます。
$ docker run --name camunda -d -p 8080:8080 --link mysql \
-e DB_DRIVER=com.mysql.jdbc.Driver \
-e DB_URL=jdbc:mysql://mysql/process-engine \
-e DB_USERNAME=camunda \
-e DB_PASSWORD=camunda \
camunda/camunda-bpm-platform:7.5.0
MariaDBを使う場合
H2DB, MySQL, PostgreSQLのドライバはcamunda-bpm-platformに含まれているのだが、他のDBを使いたい場合は、ドライバを自分でコピーする必要がある。
1. h2 database で camundaコンテナを立ち上げる。
$ docker run -d --name camunda -p 8080:8080 camunda/camunda-bpm-platform:7.5.0
2. MariaDB用のJDBCドライバをダウンロードして、適当なところ(ここでは~/tmp/
とする)に置く。
$ ls -l ~/tmp/mariadb-java-client-1.4.6.jar
-rw-r--r--@ 1 inaba staff 371715 8 2 15:13 /Users/inaba/tmp/mariadb-java-client-1.4.6.jar
3. camundaコンテナにMariaDB用のJDBCドライバをコピーする
$ CONTAINER_ID=$(docker ps -f name=camunda -q)
$ docker cp ~/tmp/mariadb-java-client-1.4.6.jar ${CONTAINER_ID}:/camunda/lib/
4. camundaコンテナを別名(ここではcamunda75_mariadb
とする)でコミットして、MariaDB用のJDBCドライバを含むcamundaイメージを作成する
$ docker commit camunda camunda75_mariadb
# イメージが新規作成されていることを確認
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
camunda75_mariadb latest 4385066ec462 10 seconds ago 594.7 MB
camunda/camunda-bpm-platform 7.5.0 33c72b62b9a3 6 weeks ago 592.1 MB
ここではスルーさせてもらいますが、下記に注意。(サーバ/インフラエンジニア養成読本 DevOps編)
commitを利用してイメージを作成する方法はDockerfileにない操作結果がイメージに反映されるため、利用者が挙動や構築方法を把握・再現できません。地雷のようにあとから事故を引き起こす元凶となるので、基本的に利用しないようにしましょう。
5. camundaコンテナを停止する
$ docker stop camunda
6. MariaDBコンテナを立ち上げる
$ docker run --name mariadb -d -p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=my-super-secret-pw \
-e MYSQL_DATABASE=process-engine \
-e MYSQL_USER=camunda \
-e MYSQL_PASSWORD=camunda \
mariadb:10.1
7. MariaDB用のJDBCドライバを含むcamundaコンテナ(camunda75_mariadb)を立ち上げる
$ docker run --name camunda75_mariadb -d -p 8080:8080 --link mariadb \
-e DB_DRIVER=org.mariadb.jdbc.Driver \
-e DB_URL=jdbc:mariadb://mariadb/process-engine?autoReconnect=true \
-e DB_USERNAME=camunda \
-e DB_PASSWORD=camunda \
camunda75_mariadb