我在 AfterInstall 挂钩中执行 install_dependencies.sh 脚本时遇到问题-
在 AfterInstall 挂钩期间,我的 CodeDeploy 代理尝试从中运行脚本的部署存档似乎还不存在。
我收到此错误,导致我的部署失败:
ERROR [codedeploy-agent(2643)]: InstanceAgent::Plugins::CodeDeployPlugin::CommandPoller: Error during perform:
InstanceAgent::Plugins::CodeDeployPlugin::ScriptError -
Script does not exist at specified location: /opt/codedeploy-agent/deployment-root/432f58a2-27d7-46c0-8091-1625eb8733af/d-Q3DGM6LPU/deployment-archive/scripts/install_dependencies.sh -
/opt/codedeploy-agent/lib/instance_agent/plugins/codedeploy/hook_executor.rb:118:in `block (2 levels) in execute'...
我的 appspec.yml 文件如下所示:
version: 0.0
os: linux
files:
- source: /
destination: /home/ec2-user/myApp
hooks:
AfterInstall:
- location: scripts/install_dependencies.sh
timeout: 300
runas: root
ApplicationStop:
- location: scripts/stop_server.sh
timeout: 300
runas: root
ApplicationStart:
- location: scripts/start_server.sh
timeout: 300
runas: root
为了在部署尝试失败后访问部署存档文件夹,我确实在正确的路径中获取文件(与错误日志中出现的路径相同):
[ec2-user@ip-172-31-10-87 scripts]$ cd /opt/codedeploy-agent/deployment-root/432f58a2-27d7-46c0-8091-1625eb8733af/d-Q3DGM6LPU/deployment-archive/scripts/
[ec2-user@ip-172-31-10-87 scripts]$ ls -ln
total 12
-rwxrwxrwx 1 0 0 261 Aug 21 13:33 install_dependecies.sh
-rwxrwxrwx 1 0 0 69 Aug 21 13:33 start_server.sh
-rwxrwxrwx 1 0 0 56 Aug 21 13:33 stop_server.sh
我的 EC2 实例操作系统是-
[ec2-user@ip-172-31-10-87 ~]$ cat /etc/issue
Amazon Linux AMI release 2018.03
[ec2-user@ip-172-31-10-87 ~]$ uname -a
Linux ip-172-31-10-87 4.14.62-65.117.amzn1.x86_64 #1 SMP Fri Aug 10 20:03:52
UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
我已经检查了执行权限,并且我的脚本文件的内容是空的(只有“exit 0”语句),以帮助沙箱问题。
据我在所有示例中看到的 - 脚本文件夹应该在我的部署包中,而不是在我的部署之外。
我的 appspec.yml 在我的项目的根文件夹中,我的脚本文件夹也是如此。
- 如果我从我的 appspec 中消除 AfterInstall/BeforeInstall 挂钩,则不会发生问题。
我错过了什么?为什么在 AfterInstall/BeforeInstall 挂钩期间无法访问这些文件?
请帮忙,谢谢