部署后如何从实例中删除 AWS CodeDeploy bundle.tar

How to remove AWS CodeDeploy bundle.tar from instance after deploy

我使用 BitBucket 设置了 CodeDeploy。所以我可以通过 Bitbucket UI 部署我最新的提交。但是每次部署都会在这个目录 /opt/codedeploy-agent/deployment-root/

的实例上创建一个 bundle.tar

我试图添加一个钩子 AfterInstall,简单的 bash 脚本,它只查找并删除创建的包,但它现在给我一个错误。日志中没有任何内容。这是我的 appspec.yml 文件:

version: 0.0
os: linux
files:
  - source: /
    destination: /var/www/html/mysite.com
permissions:
  - object: /var/www/html/mysite.com
    pattern: "**"
    owner: user
    group: www
    mode: 444
    type:
      - file
  - object: /var/www/html/mysite.com
    pattern: "**"
    owner: user
    group: www
    mode: 555
    type:
      - directory
hooks:
  AfterInstall:
    - location: /usr/local/scripts/deploy/remove-bundle-after-deploy.sh
    timeout: 180
    runas: root

这是 remove-bundle-after-deploy.sh 文件:

#!/bin/bash
find /opt/codedeploy-agent/deployment-root/ -type f -name bundle.tar -exec rm -f {} +

如何设置 CodeDeploy 以完全不在我的实例上创建 bundle.tar 文件?那可能吗?如果没有,我如何在成功部署后删除它们?

您实际上可以配置您希望 CodeDeploy 存储的最大修订。

http://docs.aws.amazon.com/codedeploy/latest/userguide/host-cleanup.html#host-agent-cleanup