2017-07-04 2 views
0

J'étudie et implémente actuellement le pipeline de Jenkin pour l'intégration automatisée d'une application Web Java. Mon plan est qu'une fois que les développeurs ont réussi à valider et à pousser leurs codes, Jenkins sur le serveur admin vérifie le code, construit le projet, arrête le Tomcat en cours d'exécution, déploie le projet sur Tomcat et redémarre.Le déploiement de Jenkins sur Tomcat a échoué

À des fins de test, j'essaie actuellement tout, y compris l'exécution de Tomcat et Jenkins, sur une machine locale. Mais Jenkins exécute la sienne (en exécutant la commande "Java -jar jenkins.war") mais n'utilise pas tomcat

Tout a bien fonctionné avec le pipeline sauf pour lancer Tomcat. ci-dessous est l'extrait de code de pipeline pour le redémarrage de tomcat. Comme vous pouvez le voir, il va simplement dans le répertoire tomcat et exécute le script startup.sh. Cependant, lors de l'exécution de l'étape de redémarrage, seul le message "Tomcat a démarré". est récupéré dans le fichier journal de la console, mais lors de la vérification avec l'hôte local, Tomcat n'a pas été démarré du tout.

J'ai essayé de démarrer manuellement Tomcat en exécutant une commande en utilisant le terminal, cela fonctionne bien.

S'il vous plaît aider

Merci

+0

Avez-vous essayé d'essayer Tomcat par exemple? $ CATALINA_HOME/bin/startup.sh, en supposant que CATALINA_HOME est défini –

Répondre

0

J'ai aussi rencontré ce problème lors du démarrage des scripts shell de Jenkins.

Problème

Le problème est que le script shell est lancé dans le cadre de la Jenkins Bât. Dès que la construction est arrêtée, elle se comporte comme si vous fermez le terminal qui exécute le script. Ainsi, Tomcat est arrêté lorsque le Job se termine.

Solution (genre de)

Essayez de démarrer Tomcat en arrière-plan (How to run a shell script in the background and get no output) qui détache le script du travail. Ou vous pouvez installer votre Tomcat en tant que service (java install tomcat as service) et démarrer le service auprès de Jenkins.