You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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目录。
  • 核对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部署前就发现归档缺失文件的问题,避免重复失败。
  • 提前设置脚本执行权限(预防后续报错)

    • 虽然本次是找不到文件,但可以提前给脚本加可执行权限:在本地执行chmod +x scripts/stop_nginx.sh后提交到GitHub,或者在CI打包步骤里添加chmod +x scripts/*.sh,避免后续出现权限不足的报错。

内容的提问来源于stack exchange,提问作者CHIRAG SHARMA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 20:52:41