Skip to content

Pin container image versions instead of using :latest #14

Description

@randomparity

Context

The ansible-reviewer suggested pinning container image versions for reproducibility and controlled upgrades.

Current State

All service definitions use :latest tags:

image: "lscr.io/linuxserver/radarr:latest"

Problem

:latest tags are mutable — the same tag can point to different images over time. This means:

  • Deployments are not reproducible
  • podman auto-update may pull breaking changes
  • No easy rollback to a known-good version
  • Different hosts may run different versions

Expected Behavior

Pin images to specific version tags or digests:

image: "lscr.io/linuxserver/radarr:5.x.x"

Use podman auto-update with --dry-run to check for updates, then manually update the version in the service definition and redeploy.

Files

  • services/*.yml — all service definitions
  • roles/immich/defaults/main.yml — Immich component versions

Notes

This is a trade-off between convenience (auto-updates with :latest) and stability (pinned versions). For a homelab, :latest with auto-update may be acceptable, but pinned versions are the safer practice. Consider making this configurable per-service.


From ansible-reviewer follow-up suggestion

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions