用activemq添加camunda -bpm-wildfly并运行在相同的docker容器中

我想添加与活动mq camunda-bpm-wildfly并运行在相同的docker容器中。

首先,我将它们添加到两个容器,并尝试运行如下。 还可以。

1.运行camunda-bpm-wildfly。

Dockerfile:

FROM camunda/camunda-bpm-platform:wildfly-latest ADD standalone.xml standalone/configuration/ ADD bin/ bin/ ADD fusepatch/ fusepatch/ ADD modules/ modules/ ADD hawtio-wildfly-1.5.3.war standalone/deployments/ 

命令:

 docker build my-wildfly . docker images sudo docker run -d --name my-wildfly --net="host" -p 7070:7070 my-wildfly 

2.运行activemq。

Dockerfile:

 FROM webcenter/activemq:latest 

命令:

 docker build amq-alone . docker images docker run --name='amq-alone' -d -p 8161:8161 -p 61616:61616 -p 61613:61613 amq-alone 

然后,我search了一种方法来添加两个图像到同一个容器,并指出,我们不能添加多个图像到同一个容器[参考: docker – 容器与多个图像 。

然后我downlaoded activemq,我试图扩展它如下。 它build立正确,当我运行也正确运行。 但是只有wildfly运行在7070端口而不是activemq。

Dockerfile:

 FROM camunda/camunda-bpm-platform:wildfly-latest ADD standalone.xml standalone/configuration/ ADD bin/ bin/ ADD fusepatch/ fusepatch/ ADD modules/ modules/ ADD hawtio-wildfly-1.5.3.war standalone/deployments/ ADD apache-activemq-5.15.2/ apache-activemq-5.15.2/ RUN apache-activemq-5.15.2/bin/activemq start 

命令:

 docker build my-wildfly-amq . docker images sudo docker run -d --name my-wildfly-amq --net="host" -p 7070:7070 -p 8161:8161 -p 61616:61616 -p 61613:61613 my-wildfly-amq 

日志:

 me@my-pc:~/$ docker build -t=my-wildfly-amq . Sending build context to Docker daemon 375.8MB Step 1/8 : FROM camunda/camunda-bpm-platform:wildfly-latest ---> 274d119b1660 Step 2/8 : ADD standalone.xml standalone/configuration/ ---> Using cache ---> 41c2f6d423ec Step 3/8 : ADD bin/ bin/ ---> Using cache ---> 27c1952f442e Step 4/8 : ADD fusepatch/ fusepatch/ ---> Using cache ---> 66419d22d6b7 Step 5/8 : ADD modules/ modules/ ---> bbdee5ab8ea2 Step 6/8 : ADD hawtio-wildfly-1.5.3.war standalone/deployments/ ---> 237821cdb2c8 Step 7/8 : ADD apache-activemq-5.15.2/ apache-activemq-5.15.2/ ---> 309b552b5150 Step 8/8 : RUN apache-activemq-5.15.2/bin/activemq start ---> Running in ce0e55cfd13b INFO: Loading '/camunda/apache-activemq-5.15.2//bin/env' INFO: Using java '/usr/bin/java' INFO: Starting - inspect logfiles specified in logging.properties and log4j.properties to get details INFO: pidfile created : '/camunda/apache-activemq-5.15.2//data/activemq.pid' (pid '46') ---> f903dc0b2db5 Removing intermediate container ce0e55cfd13b Successfully built f903dc0b2db5 Successfully tagged my-wildfly-amq:latest 

我在这里错过了什么? 如何添加在相同的docker容器中运行的camunda-bpm-wildfly活动mq?

更新#1:用@bluescore的答案我试图使用CMD如下,它的工作。 activemq和wildfly都启动了。 但是有一个问题在那里。 通常当我们开始camunda -bpm-wildfly时,我们调用start-camunda.sh(不是wildfly bin / standalone.sh)。 但是在这里我也不能在-ti模式下看到这个文件。 如何开始Camunda的形象开始自己? (我检查了dockerhub和github也找不到提示)

Dockerfile:

 FROM camunda/camunda-bpm-platform:wildfly-latest ADD standalone.xml standalone/configuration/ ADD bin/ bin/ ADD fusepatch/ fusepatch/ ADD modules/ modules/ ADD hawtio-wildfly-1.5.3.war standalone/deployments/ ADD apache-activemq-5.15.2/ apache-activemq-5.15.2/ ADD my-wildfly-amq.sh my-wildfly-amq.sh CMD bash my-wildfly-amq.sh 

my-wildfly-amq.sh

 apache-activemq-5.15.2/bin/activemq start bin/standalone.sh 
  • Docker版本17.09.0-ce
  • Ubuntu 16.04

你误解了RUN的工作原理。 使用ENTRYPOINT或CMD脚本代替扩展容器的最终运行命令。 RUN在构build期间执行命令,而不是在docker run期间docker run 。 CMD和ENTRYPOINT告诉容器在实际运行时要执行什么。

查看您正在使用的camunda-bpm-platform映像的Dockerfile。 注意,CMD在最后执行一个shell脚本。

如果你想同时运行ActiveMQ和wildfly,你应该编写一个运行它们的shell脚本,然后用CMD或ENTRYPOINTreplace你的最终的RUN来执行这个脚本。 就像是:

CMD ["/usr/local/bin/your_script.sh"]

当您的容器启动docker run ,此脚本将运行。