我有 3 个不同的存储库必须部署(部署类型为蓝/绿)到同一个自动缩放组。我创建了 3 个不同的代码管道和一个部署组。
这里的问题是蓝/绿部署将使用启动模板中提供的 AMI-id 创建新的自动缩放组,因此实例中一次只有一个分支。
因为 Web 应用程序需要所有 3 个 repos 代码才能运行。因为我不想为所有 3 个存储库创建新的自动缩放组。我想过这样做:
虚拟分支 A:
项目
名称 - Repo1Project
- Repo2Project
- Repo3Project
- appspec.yml
- attach-target-group-to-alb.sh
在 appspec.yml 中:
version: 0.0
os: linux
files:
- source: ProjectName/Repo1Project
destination: /var/www/html/Repo1Project
- source: ProjectName/Repo2Project
destination: /var/www/html/Repo2Project
- source: ProjectName/Repo3Project
destination: /var/www/html/Repo3Project
hooks:
BeforeInstall:
- location: Repo1Project/Scripts/pre_install.sh
- location: Repo2Project/Scripts/pre_install.sh
- location: Repo3Project/Scripts/pre_install.sh
timeout: 600
runas: ec2-user
AfterInstall:
- location: Repo1Project/Scripts/post_install.sh
- location: Repo2Project/Scripts/post_install.sh
- location: Repo3Project/Scripts/post_install.sh
timeout: 600
runas: ec2-user
AfterAllowTraffic:
- location: attach-target-group-to-alb.sh
timeout: 600
runas: ec2-user
使用以下命令更新每个文件夹:
仅将特定文件/文件夹从其他分支合并到当前
git checkout Repo1ProjectBranch 项目名称/Repo1Project
git commit -m "你的评论"
然后将其推送到实际的 BranchB
但我不确定这是否是有效的方法,或者还有其他更好的解决方案。因此,如果有人已经找到更好的解决方案,请考虑将其发布在这里。