Angular应用CI/CD流水线Code Deploy阶段报错求助
解决CodeDeploy中
scripts/stop_nginx.sh找不到的报错 错误核心原因
报错显示required file not found,说明部署归档包里未包含scripts/stop_nginx.sh脚本,或者路径配置存在错误。以下是针对性的排查和解决步骤:
检查GitHub仓库的脚本路径与提交状态
- 确认仓库根目录下存在
scripts/stop_nginx.sh,注意Linux系统区分大小写,别把scripts写成Scripts,或stop_nginx.sh写成Stop_Nginx.sh。 - 在本地仓库根目录执行
git ls-files,查看输出里是否有这个脚本,确保它没被.gitignore规则排除,且已提交推送到GitHub。
- 确认仓库根目录下存在
修正CI流水线的打包逻辑
- 多数Angular项目的CI打包会只关注
dist文件夹,但CodeDeploy需要同时包含scripts目录和appspec.yml。比如用zip打包时,要明确把这些目录加入:zip -r deployment-archive.zip dist scripts appspec.yml - 若使用GitHub Actions、GitLab CI等工具,检查打包步骤的命令,确保没有遗漏
scripts目录。
- 多数Angular项目的CI打包会只关注
核对AppSpec.yml的脚本路径配置
- 打开
appspec.yml,确认Lifecycle事件(比如BeforeInstall)里指定的脚本路径是scripts/stop_nginx.sh,和归档包里的实际路径完全一致。如果脚本在归档里的路径是src/scripts/stop_nginx.sh,配置也要对应修改。
- 打开
验证部署归档内容
- 在CI流水线中添加一步解压验证,提前确认脚本是否存在:
unzip deployment-archive.zip -d test-deploy ls test-deploy/scripts - 这一步能帮你在CodeDeploy部署前就发现归档缺失文件的问题,避免重复失败。
- 在CI流水线中添加一步解压验证,提前确认脚本是否存在:
提前设置脚本执行权限(预防后续报错)
- 虽然本次是找不到文件,但可以提前给脚本加可执行权限:在本地执行
chmod +x scripts/stop_nginx.sh后提交到GitHub,或者在CI打包步骤里添加chmod +x scripts/*.sh,避免后续出现权限不足的报错。
- 虽然本次是找不到文件,但可以提前给脚本加可执行权限:在本地执行
内容的提问来源于stack exchange,提问作者CHIRAG SHARMA
相关产品推荐
相关产品推荐

