important update
参考 https://immich.app/docs/install/requirements ,immich 官方已经启用 docker-compose ,今后将不支持。请使用 docker compose, noted at 2024-06-24 09:54:52

昨天晚上将 immich 服务端从 v1.98.2 升级到 v1.106.4,花了一个多小时,因为整体上还是比较复杂的

  • docker 客户端和 docker-compose 版本过低,immich 最新的 compose 文件使用了 start_interval 语法, 使用 docker-compose config 检查语法时报错 Additional property start_interval is not allowed
  • 我用的是 github docker/copmpose 项目的 docker-compose 二进制,而不是 docker compose 子命令
  • pgdata 数据库以前使用 volume 形式挂载的,现在把路径写到了 .env 文件里,通过路径直接映射挂载的。我看了一下 immich release 发行描述,写了很多人都不仔细阅读immich 的更新日志,尤其是有 breaking changes 一些版本,用户按照自己的想法直接更新导致了一些 data loss,还是很惨痛的
  • 整个compose服务删除了一个容器
  • 升级之前备份 pgdata 和 model-cache 数据

昨晚更新 docker 和docker-compose版本之前用的版本,

  • docker: 20.10.17
  • docker-compose: Docker Compose version v2.6.0

升级过程:

# 先关闭 docker daemon 是个好习惯
$ sudo systemctl stop docker

# sudo apt-get update 之后直接安装最新版本的 docker ce 软件包
$ sudo apt-get install --only-upgrade docker-ce docker-ce-cli containerd.io

# 下面开始升级 docker-compose,我还是选择下载官方二进制到本地,然后赋予可执行权限,截止 2024-06-17 22:32:16,最新二进制是 v2.27.1,此处我下载的是 v2.27.0
$ curl -L "https://github.com/docker/compose/releases/download/v2.27.0/docker-compose-$(uname -s)-$(uname -m)" > ./docker-compose
# 备份一下旧的 docker-compose,版本是v2.6.0
$ sudo cp /usr/local/bin/docker-compose /usr/local/bin/docker-compose-v2.6.0
$ sudo mv ./docker-compose /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose

几个命令,docker ce 和 docker-compose 都升级好了

  • docker ce 新版本:26.1.3
  • docker-compose 新版本:Docker Compose version v2.27.0

最后,我的 immich 服务端升级也非常顺利,成功升级到了 v1.106.4