2017-07-18 4 views
0

Je veux Containerize une application Web qui est un fichier WAR avec PostgreSQL comme base de données et Tomcat comme serveur.Dockerizing web app (fichier WAR)

Quelle sera la procédure à suivre?

J'utilise le dockerfile suivant:

FROM tomcat:8-jre8 MAINTAINER lpradel 
RUN echo "export JAVA_OPTS=\"-Dapp.env=staging\"" > /usr/local/tomcat/bin/setenv.sh 
COPY ./application.war /usr/local/tomcat/webapps/staging.war 
CMD ["catalina.sh", "run"] 

Répondre

0

Ecrire un dockerfile pour chaque application. E.g: Basez un dockerfile sur une image docker de serveur tomcat, copiez votre fichier warfile et lancez le tomcat dans la partie cmd du dockerfile.

Pour postgres vous devriez pouvoir utiliser une image existante.

+0

J'ai essayé le même processus mais après l'exécution du conteneur, l'URL spécifique n'est pas en cours d'exécution. –

+0

Ensuite, postez votre dockerfile s'il vous plaît afin que les gens peuvent vous aider. – herm

+0

La structure générale semble bien. Bien que je ne serais pas sûr que le dossier que vous copiez votre guerre est le bon dossier (usr/local ..). Assurez-vous que le système de fichiers du conteneur est structuré comme vous le supposez. Après avoir démarré un conteneur, vous pouvez faire un docker inspecter le nom d'utilisateur/identifiant pour voir les journaux du conteneur. Cela devrait vous aider à trouver l'erreur. Vous pouvez également le faire pour les conteneurs qui ont arrêté – herm

0

réponse Mise à jour:

Le dockerfile que vous utilisez est correct. Cela devrait préparer une image tomcat qui a l'application web que vous voulez. Cependant, vous pouvez vouloir connect ce conteneur Tomcat avec conteneur postgress.

Une manière plus simple de connecter plusieurs conteneurs serait d'utiliser un fichier docker-composer. Pour utiliser docker-composer, référez-vous à docker-compose#build.

réponse originale Vous pouvez monter votre dossier de guerre dans le conteneur tomcat à l'intérieur du conteneur /usr/local/tomcat/webapps/name_of_your_file.war. Cela permettra au fichier war d'être automatiquement déployé par le conteneur Tomcat. En passant, je fais le même processus et en utilisant la base de données mysql. Jetez un oeil à la deployment file pourrait vous être utile.

+0

@ShahidaliKhan Il serait utile aux autres aussi si vous avez posté le dockerfile dans votre question. Comme il est difficile de parcourir les réponses et de rechercher des détails de la question. – Ayushya

+0

J'utilise le fichier de déploiement suivant. 'DE tomcat: 8 jre8 MAINTAINER lpradel echo RUN "export JAVA_OPTS = \" - Dapp.env = mise en scène \ ""> /usr/local/tomcat/bin/setenv.sh COPIE ./application. war /usr/local/tomcat/webapps/staging.war CMD ["catalina.sh", "run"] ' –

+0

Le fichier de déploiement dont j'ai parlé est un script bash qui configure l'environnement nécessaire, comme le téléchargement de fichiers de base de données et en extrayant d'autres fichiers. While ['docker-compose.yml'] (https://github.com/reactome/container/blob/develop/docker-compose.yml) est utilisé pour créer des conteneurs et les exécuter. – Ayushya