AWS CodeDeploy表示,即使存在脚本,也会丢失该脚本



我正在尝试使用AWS CodeDeploy将应用程序部署到EC2实例上。我已经到了CodeDeploy在BeforeInstall挂钩处出错的地步。我收到的错误消息与ScriptMissing有关。准确的错误是:

Script does not exist at specified location: /opt/codedeploy-agent/deployment-root/1bfe51a8-151a-4366-8a3f-c061adb4bb90/d-X8N0B5IOE/deployment-archive/scriptscodedeployinstall_dependencies.sh

奇怪的是,该文件存在于我的版本控制存储库中。到目前为止,我已经尝试更改脚本的权限,并在appspec.yml文件中尝试了不同的方法,以便让CodeDeploy识别该文件。所有方法都失败了。我尝试了发布的与此场景相关的其他解决方案,但它们似乎对我没有帮助

appspec.yml中的这些脚本文件是否也需要成为CodeDeploy使用的zip文件的一部分?如有任何建议,我们将不胜感激。下面是appspec.yml文件。

应用规范

version: 0.0
os: linux
files:
- source: /
destination: /var/www/html
overwrite: true
hooks:
BeforeInstall:
- location: scripts/codedeploy/install_dependencies.sh
timeout: 300
runas: root
AfterInstall:
- location: scripts/codedeploy/install_composer_dependencies.sh
timeout: 300
runas: root
- location: scripts/codedeploy/start_server.sh
timeout: 30
runas: root
ApplicationStop:
- location: scripts/codedeploy/stop_server.sh
timeout: 30
runas: root

我也遇到了类似的问题。我的路径是scripts/file-name.sh。我刚刚从位置路径中删除了"scripts/",只留下.sh文件名,它对我有效。

最新更新