2015-12-08 1 views
1

avez installé Java 8 etAWS Codedeploy échoue avec l'erreur JAVA_HOME

Java -version

donne

java version "1.8.0_45" 
Java(TM) SE Runtime Environment (build 1.8.0_45-b14) 
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode) 

Avoir un script AfterInstall sous crochets qui a simplement

cd $HOME/workspace 
mvn clean install 

AWS codedeploy échoue avec l'erreur suivante

{\"message\":\"Script at specified location: scripts/start failed with exit code 1\",\"log\":\"LifecycleEvent - AfterInstall\\nScript - scripts/start\\n[stderr]Error: JAVA_HOME is not defined correctly.\\n[stderr] We cannot execute /usr/lib/jvm/jre/bin/java\\n\"}"} 

echo $ JAVA_HOME donne

/usr/java/jdk1.8.0_45/jre

ont également tenté de mettre JAVA_HOME à

/usr/java/jdk1.8.0_45

Lorsque j'essayais mvn clean installer directement dans l'espace de travail, il était capable de ramasser le Java correctement. Une idée de ce qui s'est mal passé dans le déploiement de code?

hooks: 
     BeforeInstall: 
     - location: scripts/pre_processing 
     AfterInstall: 
     - location: scripts/start 
+0

pouvez-vous partager votre fichier pom et assurez-vous ne pas étiquette qui pointe vers le répertoire/usr/lib/jvm –

+0

@ FrédéricHenri S'il vous plaît jeter un oeil je ne vois pas de balise exécutable https: // codeshare.io/4M1EZ – Itachi

Répondre

1
  • Codedeploy semble fonctionne très bien, il suffit d'exécuter tout script que vous avez donné.
  • Cela peut être un problème de JAVA_HOME non accessible par l'utilisateur en cours d'exécution.
  • Si vous ne spécifiez pas le paramètre runas dans la classe appSpec, les scripts seront exécutés par défaut sous le privilège root (puisque l'agent hôte démarre avec le privilège root).
  • Si cela est le cas, la solution de contournement possible consiste soit à rendre JAVA_HOME accessible par root, soit à spécifier des runas dans l'appSpec pour le script AfterInstall.
+0

Avoir défini JAVA_HOME à l'intérieur de root ~/.bash_profile ainsi que ec2User le problème persiste. – Itachi

+0

Vous devrez le mettre dans/etc/profile pour qu'il soit effectivement récupéré. bash n'est pas impliqué ici. –