gpt4 book ai didi

java - 使用 activemq 添加 camunda-bpm-wildfly 并在同一个 docker 容器中运行

转载 作者:行者123 更新时间:2023-11-29 04:23:24 26 4
gpt4 key购买 nike

我想添加带有 Activity mq 的 camunda-bpm-wildfly 并在同一个 docker 容器中运行。

首先我将它们添加到两个容器中并尝试如下运行。没关系。

<强>1。运行 camunda-bpm-wildfly。

Docker 文件:

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。

Docker 文件:

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

然后我搜索了一种将两个图像添加到同一个容器的方法,并注意到我们不能将多个图像添加到同一个容器[引用:Docker - container with multiple images .

然后我下载了 activemq 并尝试按如下方式扩展它。它构建正确,当我运行时它也运行正确。但是只有 wildfly 在端口 7070 上运行,而不是 activemq。

Docker 文件:

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 添加 Activity mq?

更新#1:在@bluescore 的回答下,我尝试按如下方式使用 CMD 并且它起作用了。 activemq 和 wildfly 都启动了。但是有一个问题。通常,当我们启动 camunda-bpm-wildfly 时,我们会调用 start-camunda.sh(不是 wildfly bin/standalone.sh)。但是在这里我也看不到 -ti 模式下的那个文件。如何在图像自行启动时启动 camunda? (我也检查了 dockerhubgithub 但找不到小费)

Docker 文件:

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 的工作原理。使用 ENTRYPOINTCMD脚本代替您扩展的容器的最终 RUN 命令。 RUN 在构建期间执行命令,而不是在 docker run 期间执行。 CMD 和 ENTRYPOINT 告诉容器在实际运行时要执行什么。

查看 Dockerfile对于您用作基础的 camunda-bpm-platform 图像。请注意最后的 CMD,它执行一个 shell 脚本。

如果你想同时运行 ActiveMQ 和 wildfly,你应该编写一个运行它们的 shell 脚本,然后用 CMD 或 ENTRYPOINT 替换你最后的 RUN 来执行该脚本。像这样的东西:

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

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

关于java - 使用 activemq 添加 camunda-bpm-wildfly 并在同一个 docker 容器中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47753135/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com