在Mac上使用Docker构建Camunda的开发/演示环境
※ 2016/08/04:随着 Docker for Mac 的正式版发布,对其进行了全面的重写。
Camunda BPM是一家总部位于柏林的BPM(业务流程管理)专业软件咨询公司Camunda开发的开源BPM工具,该工具具备开发者友好的特点。
我将记录下在Docker for Mac上构建/演示环境的步骤。
假设存在前提环境
-
- MacOS X El Capitan 10.11.6
- Docker 1.12.0 (Docker for Mac)
确认操作的URL
环境构建步骤
如果使用H2数据库
这是一个一步完成的命令。
$ docker run -d --name camunda -p 8080:8080 camunda/camunda-bpm-platform:7.5.0
如果使用MySQL
启动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容器
如果将其链接到MySQL,可以将MySQL作为JDBC驱动器的URL使用。
$ 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中。
使用h2数据库启动Camunda容器。
$ docker run -d --name camunda -p 8080:8080 camunda/camunda-bpm-platform:7.5.0
下载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
将MariaDB用的JDBC驱动程序复制到camunda容器中。
$ CONTAINER_ID=$(docker ps -f name=camunda -q)
$ docker cp ~/tmp/mariadb-java-client-1.4.6.jar ${CONTAINER_ID}:/camunda/lib/
使用其他名称(在此处称为camunda75_mariadb)提交camunda容器,并创建一个包含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中无法反映不包含的操作结果,因此用户无法理解和复制操作行为和构建方式。这种方式就像地雷一样,后续可能会引发事故,所以基本上不推荐使用。
停止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
启动包含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