/ / AWS Codedeploy échoue avec une erreur JAVA_HOME - java, maven, services web amazon, aws-code-deploy

AWS Codedeploy échoue avec une erreur JAVA_HOME - java, maven, amazon-web-services, aws-code-deploy

J'ai installé java 8 et

Version Java

les rendements

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 les 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

J'ai également essayé de configurer JAVA_HOME sur

/usr/java/jdk1.8.0_45

Lorsque j’essaie d’installer mvn clean install directement dans l’espace de travail, il a été en mesure de prendre Java correctement. Une idée de ce qui ne va pas dans le déploiement de code?

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

Réponses:

1 pour la réponse № 1
  • Codedeploy semble fonctionner correctement, il suffit d'exécuter le script que vous avez donné.
  • JAVA_HOME pourrait ne pas être accessible à l'utilisateur en cours d'exécution.
  • Si vous ne spécifiez pas le paramètre runas dans la spécification d'application, les scripts seront exécutés avec le privilège root par défaut (car l'agent hôte démarre avec le privilège root).
  • Si tel est le cas, la solution possible consiste à rendre JAVA_HOME accessible par root ou à spécifier des exécutions à l'intérieur de la spécification d'application pour le script AfterInstall.