已经安装了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。