Comment faire pour exécuter un script shell en utilisant dockerfiles CMD

Je suis en utilisant dockerfiles construire un simple conteneur. Voici la Dockerfile:

FROM XXXXXXX:5003/base-java

MAINTAINER XXXXX

ADD pubsub//opt/pubsub/

CMD ["/opt/pubsub/run.sh"]

Contenu de run.sh est comme suit:

#!/bin/bash
nohup java -jar /opt/pubsub/publish.jar &
nohup java -jar /opt/pubsub/subscribe.jar &

C'est la simple application java pour pub/sub.

Maintenant j'ai un autre conteneur de course rabbitmq et je suis reliant les 2 containers toutefois, chacune de ma tentative a juste manqué et Mon pub/sub conteneur ne démarre pas. Quelqu'un peut-conseils sur la façon d'aller sur la debuggin ce problème? En quelque sorte menu fixe les journaux n'ont pas de quoi.

Ici est de savoir comment je suis reliant le contenant: sudo docker run -d -P --name pub_sub --link rabbitmq:rabbitmq1 image_pub_sub

Et voici comment je suis en utilisant le nom de l'alias dans mon pub/sub code

factory = new ConnectionFactory(); 
factory.setHost("rabbitmq1"); 
try { connection = factory.newConnection(); 
channel = connection.createChannel(); 
channel.queueDeclare("pub", true, false, false, null); 
} 
catch (IOException e) { //TODO Auto-generated catch block 
e.printStackTrace(); }

Je m'attendais à ce que mon publier code va créer une file d'attente dans le rabbitmq conteneur et de commencer à pousser des messages. Mon abonné code va se connecter à la même rabbitmq et de commencer à lire les messages.

Lorsque je lance la commande rien ne se passe, il imprime juste une longue id du nouveau conteneur et les sorties..Quand je lance sudo docker ps -a, je peux voir les suivants:

e8a50d5aefa5     image_pub_sub:latest     "/opt/pubsub/run.sh"     32 minutes ago     Exited (0) 32 minutes ago     pub_sub

Cela signifie donc mon conteneur n'est pas en cours d'exécution.

Seulement maintenant que j'ai testé en mettant à jour le /etc/hosts par le lancement d'un nouveau conteneur à l'aide de la commande suivante: sudo docker run -i -t image_pub_sub /bin/bash. Modifié la /etc/hosts de ce conteneur et a ajouté l'entrée suivante <IP_ADDRESS> rabbitmq1 et a couru mon script /opt/pubsub/run.sh et il ajoute le fichier nohup avec les messages suivants:

Message Sent
 [x] Received 'Hello'
Message Sent
Message Sent
 [x] Received 'Hello'
Vous avez besoin de fournir plus d'informations; ce que les commandes que vous avez utiliser pour lier les conteneurs, quel a été le résultat et ce que vous attendiez-vous?
Veuillez ajouter à la question, plutôt que comme un commentaire. Et laissez-nous savoir ce qui ne se produit lorsque vous exécutez les commandes (le conteneur toujours en cours d'exécution? Comment savez-vous qu'il ne fonctionne pas?). Aussi, obtenir un shell dans le conteneur et le test de la connexion à la rabbitmq conteneur.
Merci. Pour le moment, il n'est pas clair si vous avez un problème de réseau ou de code/rabbitmq problème. Qu'advient-il si vous exécutez docker exec -it pub_sub ping rabbitmq1?
Ajout de toutes les informations que vous avez demandé, s'il vous plaît laissez-moi savoir quoi faire pour clouer cette question.

OriginalL'auteur ashishjain | 2015-02-19