文档目录

更新与重新部署

执行新交付包的 deploy.sh 会删除并重建同名容器。数据库目录和数据库运行文件因 bind mount 保留,其他容器可写层内容不保留。

更新前:

  1. 确认新旧版本均为社区版或均为正式版
  2. 确认 CPU 架构一致
  3. 执行 backup.sh 并检查归档
  4. 单独导出需要保留的 upload、ES、Agent 配置、日志和容器内备份
  5. 确认新版本数据库升级 SQL 和 ES 重建/导入方案

已有 dbfiles/.dcmp-seeded 时,deploy.sh 不会重新复制镜像中的初始数据库。新镜像带有新的 dcmm.sql 并不等于现有数据库会自动升级;数据库结构变更必须执行对应升级脚本并验收。

更新示例:

cd <old-delivery-dir>
bash backup.sh
cd <new-delivery-dir>
vi config.env
bash deploy.sh
bash status.sh

更新后至少检查:

docker inspect dcmp --format 'image={{.Config.Image}} ip={{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}'
docker exec dcmp /usr/local/bin/dcmp-healthcheck
docker exec dcmp systemctl is-active \
  greatsql elasticsearch dcmp-agent ac1 ap1 dd1 mh1 st1 sa1 crond
docker exec dcmp /usr/dcmp/dbfiles/bin/mysql --login-path=backup_user -Nse 'SELECT 1'
docker exec dcmp curl -fsS http://127.0.0.1:9200
docker exec dcmp curl -fsS http://127.0.0.1:8808/health
docker port dcmp