已经安装了Java 8和


  Java版本


产量

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)


在钩子下有一个AfterInstall脚本

cd $HOME/workspace
mvn clean install


AWS Codedeploy失败,并出现以下错误

{\"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\"}"}


回声$ JAVA_HOME给


  /usr/java/jdk1.8.0_45/jre


还尝试将JAVA_HOME设置为


  /usr/java/jdk1.8.0_45


当我尝试直接在工作区中进行mvn clean install时,它能够正确拾取Java。知道代码部署中出了什么问题吗?

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

最佳答案

Codedeploy看起来不错,它可以运行您提供的任何脚本。
这可能是当前正在运行的用户无法访问JAVA_HOME的问题。
如果未在appSpec中指定runas参数,则默认情况下,脚本将在root特权下运行(因为主机代理以root特权启动)。
在这种情况下,可能的解决方法是使root用户可以访问JAVA_HOME,或者在appSpec内为AfterInstall脚本指定runas。

09-27 11:51