1

已安装 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\"}"}

echo $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
4

1 回答 1

1
  • Codedeploy 似乎工作正常,它只是运行您提供的任何脚本。
  • 这可能是当前正在运行的用户无法访问 JAVA_HOME 的问题。
  • 如果您没有在 appSpec 中指定 runas 参数,脚本将默认在 root 权限下运行(因为主机代理以 root 权限启动)。
  • 如果是这种情况,可能的解决方法是让 JAVA_HOME 可由 root 访问,或者在 AppSpec 中为 AfterInstall 脚本指定 runas。
于 2015-12-09T22:45:49.797 回答