2017-12-11 16 views
1

camunda-bpm-wildfly를 활성 mq로 추가하고 동일한 도커 컨테이너에서 실행하고 싶습니다.camunda-bpm-wildfly with activemq를 추가하고 동일한 도커 컨테이너에서 실행하십시오.

먼저 두 컨테이너에 추가하고 다음과 같이 실행 해 보았습니다. 괜찮 았어.

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 

그런 다음 나는 같은 컨테이너에 두 개의 이미지를 추가하는 방법을 검색하고 우리가 여러 추가 할 수 있음에 유의 같은 컨테이너에 이미지 [Ref : Docker - container with multiple images.

그런 다음 activemq를 다운로드하고 다음과 같이 확장하려고했습니다. 올바르게 빌드되고 실행하면 올바르게 실행됩니다. 하지만 wildfly만이 activemq가 아닌 7070 포트에서 실행됩니다.

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 

로그 : 내가 여기서 뭘

[email protected]:~/$ 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 

를 놓친 거지? 동일한 도커 컨테이너에서 실행중인 camunda-bpm-wildfly로 활성 mq를 추가하는 방법은 무엇입니까?

업데이트 # 1 : @bluescore의 답변을 통해 나는 다음과 같이 CMD를 사용하려고 노력했습니다. activemq와 wildfly가 시작되었습니다. 그러나 한 가지 문제가 있습니다. 일반적으로 camunda-bpm-wildfly를 시작하면 start-camunda.sh (wildfly bin/standalone.sh가 아님)를 호출합니다. 하지만 여기서 나는 그 파일을 -ti 모드로 볼 수 없다. 이미지가 시작될 때 캠퍼스를 시작하는 방법은 무엇입니까? (나는 또한 dockerhubgithub 체크하지만 팁을 찾을 수 없습니다)

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 

내-제이보스-AMQ.쉬

apache-activemq-5.15.2/bin/activemq start 
bin/standalone.sh 
  • 도커 버전 17.09.0-CE
  • 우분투 16.04

답변

3

RUN 어떻게 작동하는지 당신은 오해하고 있습니다. 확장 한 컨테이너의 최종 실행 명령 대신 ENTRYPOINT 또는 CMD 스크립트를 사용하십시오. RUN은 docker run이 아닌 빌드 중에 명령을 실행합니다. CMD와 ENTRYPOINT는 컨테이너가 실제로 실행될 때 실행할 것을 알려줍니다.

기지로 사용중인 camunda-bpm-platform 이미지에 대한 Dockerfile을 확인하십시오. 마지막에 쉘 스크립트를 실행하는 CMD가 있음을 알 수 있습니다.

ActiveMQ와 wildfly를 모두 실행하려면 두 스크립트를 모두 실행하는 셸 스크립트를 작성한 다음 최종 실행을 CMD 또는 ENTRYPOINT로 바꿔 해당 스크립트를 실행해야합니다. 같은 뭔가 :

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

컨테이너가 docker run으로 시작,이 스크립트가 실행됩니다.

+0

감사합니다. bluescores! 당신의 대답으로, 나는 다음과 같이 CMD를 사용하려고 노력했다. activemq와 wildfly가 시작되었습니다. 그러나 한 가지 문제가 있습니다. 일반적으로 camunda-bpm-wildfly를 시작하면 start-camunda.sh (wildfly bin/standalone.sh가 아님)를 호출합니다. 하지만 여기서 나는 그 파일을 -ti 모드로 볼 수 없다. 이미지가 시작될 때 캠퍼스를 시작하는 방법은 무엇입니까? (나는 dockerhub와 github도 확인했으나 팁을 찾을 수 없었다) – namalfernandolk

+0

아마 camunda/wildfly에 대한 나의 무지이지만, 지금 직면하고있는 문제를 이해하지 못한다. activemq와 wildfly가 모두 예상대로 시작되었지만 이미지 자체가 시작될 때 camunda를 시작하는 방법을 묻는 중입니까? camunda! = wildfly입니까? 이미지 시작시에 원하는 모든 것을 my-wildfly-amq.sh에서 스크립팅 할 수 있습니다. – bluescores

+0

일반적으로 standalone.sh를 사용하여 wildfly를 시작합니다. 그러나 camunda bpm wildfly 배포판에는 standalone.sh 외에도 다른 시작 - 캠퍼스 .sh (ref : https : //docs.camunda.org/get-started/bpmn20/install/)가 있습니다. 나의 초기의 의지는 활동적인 mq를 camunda가 실행하는 동일한 컨테이너에 추가하는 것이었다. 그러나 CMD를 추가하여 activemq를 시작했을 때 저는 camunda-wildfly도 시작해야했습니다. 하지만 start-camunda.sh가 거기에 없기 때문에 나는 정상적인 방법으로 시작할 수 없었다. 이미지를 시작하는 것과 같은 방식으로 시작하는 방법을 찾고있었습니다. 어쨌든 당신의 대답은 나를 위해 충분합니다! 고맙습니다. – namalfernandolk