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

AWS CodeDeploy如何避免部署时删除.gitignore中的文件?

解决CodeDeploy部署时删除.gitignore排除文件的问题

这绝对是CodeDeploy部署WordPress这类站点时的高频需求,完全不用退回到SFTP手动更新!咱们直接来解决核心问题:

问题根源

你遇到的文件被删除情况,大概率是因为部署配置里的文件存在行为设置成了CLEAR——这个选项会删除目标目录中所有不在GitHub仓库(应用包)里的文件,正好命中了你排除的wp-config.php和wp-content/uploads。

解决方案:调整文件存在行为

CodeDeploy提供了明确的配置项来控制部署时对现有文件的处理,有两个设置渠道,后者优先级更高:

1. 通过CodeDeploy控制台修改部署组配置

  • 打开CodeDeploy控制台,找到你的目标部署组
  • 点击「编辑部署组」,滚动到Deployment settings区域
  • 找到「File exists behavior」下拉菜单,选择以下两个符合你需求的选项之一:
    • OVERWRITE:覆盖目标目录中与仓库同名的文件,同时保留所有不在仓库里的文件(完美匹配你的需求:仅更新仓库内容,保留本地自定义文件)
    • RETAIN:不覆盖任何已存在的文件,仅添加仓库里有但目标目录没有的新文件(适合不想覆盖本地修改过的文件场景)
  • 保存部署组配置,重新触发部署即可

2. 通过appspec.yml显式指定(推荐)

为了确保部署行为不受控制台配置变更影响,建议在项目根目录的appspec.yml中直接定义文件处理规则,示例配置如下:

version: 0.0
os: linux # 根据你的EC2系统调整,比如windows
files:
  - source: / # 仓库根目录
    destination: /var/www/html # 你的EC2站点根目录
    file_exists_behavior: OVERWRITE # 关键配置,替换成RETAIN可满足不同需求

这个配置会告诉CodeDeploy:将仓库内容同步到目标目录,覆盖同名文件,但绝不删除任何不在仓库里的文件。

额外提醒

  • 如果之前用了CLEAR选项导致文件被删除,先手动恢复wp-config.php和uploads目录,再调整配置重新部署
  • 对于wp-config.php这类敏感配置文件,更安全的做法是通过AWS Systems Manager参数存储来管理,部署时通过appspec的hooks脚本拉取配置,避免直接放在服务器上(不过这是进阶优化,当前配置已经能解决你的核心问题)

内容的提问来源于stack exchange,提问作者Keith Pickering

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:26:44