我在同一个EC2盒子上运行同一服务的两个版本(beta和prod)。 每个服务由两个独立目录A,B中运行的进程组成。 所以,在/ var / myproject /目录中,我有四个文件夹 一个 A.beta 乙 B.beta
我正在使用CodeDeploy(作为代码管道的一部分)来部署这两个阶段 这是我的appspec.yml(用于prod阶段)
version: 0.0
os: linux
files:
- source: DeployFolders/ProcessA
destination: /var/myproject/A
- source: DeployFolders/ProcessB
destination: /var/myproject/B
permissions:
- object: /var/myproject/A
mode: 777
- object: /var/myproject/B
mode: 777
for beta stage
version: 0.0
os: linux
files:
- source: DeployFolders/ProcessA
destination: /var/myproject/A.beta
- source: DeployFolders/ProcessB
destination: /var/myproject/B.beta
permissions:
- object: /var/myproject/A.beta
mode: 777
- object: /var/myproject/B.beta
mode: 777
Prod阶段在beta阶段之后运行并删除beta部署文件夹(A.beta和B.beta) 下一次部署,当我首先部署beta阶段时,删除之前创建的prod部署文件夹(A和B)。
我知道CodeDeploy必须覆盖目标文件夹,但在这种情况下,它会删除兄弟文件夹。 我做错了什么?