imgLi 文档

升级

升级

imgli 升级的核心原则:先备份数据目录(与数据库),再换二进制 / 镜像,再启动。库表由进程启动时迁移;一般不需要手工 SQL。

升级前检查

  1. 阅读目标版本的 CHANGELOG 与 Release 说明。
  2. 确认当前 imgli version 与部署路径。
  3. 备份
    • SQLite:停服或热拷贝 data_dirimgli.db(及 -wal/-shm 若存在)+ 对象文件(本地盘或对象存储本身的备份策略)。
    • Postgres:pg_dump + 对象存储备份。
  4. 计划回滚:保留旧二进制 / 旧镜像 tag。

仓库提供示例脚本:deploy/ops/backup-sqlite.sh(按你的路径改)。

二进制升级

# 1) 备份
sudo systemctl stop imgli
sudo cp -a /opt/imgli/data /opt/imgli/data.bak.$(date +%Y%m%d)

# 2) 装新版本(示例固定 tag)
curl -fsSL https://raw.githubusercontent.com/yixian-huang/imgli/main/scripts/install.sh \
  | sudo env PREFIX=/usr/local/bin sh -s -- v0.1.1

# 3) 启动并看日志
sudo systemctl start imgli
sudo journalctl -u imgli -f
curl -fsS https://img.example.com/healthz

安装脚本会覆盖 PREFIX 下的 imgli 可执行文件;配置文件与 data 目录不会被脚本改动

Docker / Compose 升级

# 拉指定 tag(避免 latest 漂移)
docker pull ghcr.io/yixian-huang/imgli:v0.1.1
docker stop imgli && docker rm imgli
# 用同一 volume 与同一环境变量重新 run
docker run -d --name imgli --restart unless-stopped \
  -p 8686:8686 -v imgli-data:/data \
  -e IMGLI_BASE_URL=https://img.example.com \
  -e IMGLI_TRUST_PROXY=true \
  ghcr.io/yixian-huang/imgli:v0.1.1

Compose:

# 在 compose 中改 image: ghcr.io/yixian-huang/imgli:vX.Y.Z
docker compose pull
docker compose up -d

不要删除 volume,否则丢库。

源码部署升级

git fetch --tags
git checkout v0.1.1   # 或 main
make build
# 替换运行中的二进制后重启服务

数据库与存储迁移命令

CLI 子命令(运维向):

命令用途
imgli serve正常服务(含自动 migrate)
imgli migrate仅跑库迁移(不启 HTTP)
imgli storage-migrate存储侧迁移(按版本说明使用)
imgli version打印构建版本

生产变更窗口建议:

imgli migrate -config /opt/imgli/imgli.yaml
# 确认无错误后再 systemctl start

回滚

  1. systemctl stop / 停容器。
  2. 换回旧二进制或旧镜像 tag。
  3. 若新版本已写不可逆库变更:用升级前的 DB 备份恢复(先读 CHANGELOG;多数小版本向前兼容)。
  4. 启动 → /healthz → 抽样打开一张旧图与一张新上传。

升级后验收

相关:安装 · 配置