4.3 KiB
4.3 KiB
Upstream sources — immich
| service | image | source repo | releases / changelog |
|---|---|---|---|
| app | ghcr.io/immich-app/immich-server | https://github.com/immich-app/immich | https://github.com/immich-app/immich/releases |
| immich-machine-learning | ghcr.io/immich-app/immich-machine-learning | https://github.com/immich-app/immich | https://github.com/immich-app/immich/releases |
| redis | docker.io/valkey/valkey | https://github.com/valkey-io/valkey | https://github.com/valkey-io/valkey/releases |
| database | ghcr.io/immich-app/postgres | https://github.com/immich-app/base-images | https://github.com/immich-app/immich/blob/main/docker/docker-compose.yml |
Standing notes
- DB image is pinned BY immich-server, not bumped independently. abra cannot survey/upgrade this
recipe (
FATA … Docker references with both a tag and digest are currently not supported) becausedatabaseis pinnedimage:tag@sha256:…. Use the box-item-4 direct check: the authoritative source for the DB tag is immich's owndocker/docker-compose.ymlat the immich-server release tag (https://raw.githubusercontent.com/immich-app/immich/<vX.Y.Z>/docker/docker-compose.yml). Pin the recipe'sdatabaseimage to EXACTLY what that compose pins for the matching immich-server version — do NOT take the newestghcr.io/immich-app/postgrestag. Newer tags (pg-15/16/17/18, vectorchord0.5.x, pgvectors0.3.0) exist but moving ahead of what immich-server ships forces a pg-major data migration and an unsupported extension combo. - immich-server v3.0.2 (latest, 2026-07-09) pins (from its
docker/docker-compose.ymlat the v3.0.2 tag):postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:bcf63357191…andvalkey:9@sha256:4963247afc4cd33c7d3b2d2816b9f7f8eeebab148d29056c2ca4d7cbc966f2d9. The recipe (origin/main, published1.9.0+v3.0.1) is AHEAD onpostgres:14-vectorchord0.4.3-pgvectors0.3.0@sha256:87c050465…(pgvectors 0.2.0→0.3.0, backward- compatible — keep it, do NOT downgrade to immich's 0.2.0). Digest re-verified identical viadocker buildx imagetools inspecton cc-ci (2026-07-13). The recipe's valkey pinvalkey:9@sha256:3b55fbaa…was a STALE old digest for tag9;valkey:9now resolves tosha256:4963247afc4cd…(= immich v3.0.2's pin =valkey:9.1.0, the newest 9.x; no 9.1.1/9.2.x exists). Refreshed the digest to4963247afc4cd…in the 2026-07-13 upgrade (v3.0.1→v3.0.2). - Historical (v2.7.5, 2026-04-13): immich-server v2.7.5 pinned
postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:bcf63357191…. PR #2 bumped the recipe topgvectors0.3.0@sha256:87c050465…(same PG14 + VectorChord 0.4.3, newer pgvectors 0.2.0→0.3.0). - Concurrent app+database restart needs
update_config: failure_action: continueon the app service. When the recipe version label changes (bumpingcoop-cloud.${STACK_NAME}.version) AND the database image changes in the same deploy, both services update simultaneously. The app container starts and immediately tries TypeORM migrations against a still-restarting database → TypeORM connection fails → app process crashes → task FAILED → Docker Swarm setsUpdateStatus='paused'(defaultfailure_action: pause). Fix: setupdate_config: failure_action: continueon the app service. Withcontinue, Docker Swarm records the update ascompletedand Docker'srestart_policyretries the app container; the database finishes restarting in ~15-20s and the app connects successfully. This is also in the recipe as of PR #2. - VectorChord DB backup/restore needs the search_path sed. A plain
pg_dumpof the VectorChord/pgvecto.rs DB emitsSELECT pg_catalog.set_config('search_path', '', false);. Importing that as-is leaves the vector/vchord type + operator references unresolvable, so the first such statement errors. immich's official restore (docs.immich.app/administration/backup-and-restore) pipes the dump through:sed "s/SELECT pg_catalog.set_config('search_path', '', false);/SELECT pg_catalog.set_config('search_path', 'public, pg_catalog', true);/g"beforepsql … --single-transaction --set ON_ERROR_STOP=on. Omitting that sed (immich PR #1'spg_backup.sh) is why the single-transaction import aborted wholesale andci_markerwas lost on restore — fixed in the upgrade PR'spg_backup.sh.