更新与重新部署
执行新交付包的 deploy.sh 会删除并重建同名容器。数据库目录和数据库运行文件因 bind mount 保留,其他容器可写层内容不保留。
更新前:
- 确认新旧版本均为社区版或均为正式版
- 确认 CPU 架构一致
- 执行
backup.sh并检查归档 - 单独导出需要保留的 upload、ES、Agent 配置、日志和容器内备份
- 确认新版本数据库升级 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