Skip to content

Images subcommand (pull/check/upgrade)#48

Merged
gcstr merged 2 commits into
mainfrom
feat/images-pull
Apr 17, 2026
Merged

Images subcommand (pull/check/upgrade)#48
gcstr merged 2 commits into
mainfrom
feat/images-pull

Conversation

@gcstr
Copy link
Copy Markdown
Owner

@gcstr gcstr commented Apr 17, 2026

dockform images

Track image freshness across your Docker Compose stacks.

What it does

Scans every service image in every stack and compares against upstream registries to check two things:

  1. Digest drift: has the same tag been re-pushed? For example, nginx:1.29 now points to a new digest.
  2. Newer tags: are there higher semver tags matching a configured tag_pattern?

Subcommands

  • dockform images check: read-only scan. Shows rows that need attention (upgrade available or digest drift) and an optional --all view of up-to-date images. Use --json for machine-readable output.
  • dockform images pull: pulls images with digest drift (same tag, new content) on the remote daemon. Use --recreate to restart affected containers, or --dry-run to preview.
  • dockform images upgrade: rewrites image tags in your compose files to the newest matching version. Use --dry-run to preview.
➜ dockform images check --all

│ Identifier:  homeserver
│ Contexts:    hetzner-one · hetzner-three · hetzner-two

⚠  10 image(s) need attention

  STACK                           IMAGE                       TAG               UPGRADE           DIGEST
  hetzner-one/beszel              henrygd/beszel-agent        0.18.6            0.18.7            -
  hetzner-one/paperless           paperlessngx/paperless-ngx  2.20.13           2.20.14           -
  hetzner-three/beszel            henrygd/beszel-agent        0.18.6            0.18.7            -
  hetzner-three/code-server       codercom/code-server        4.114.0           4.116.0           -
  hetzner-two/beszel              henrygd/beszel              0.18.6            0.18.7            -
  hetzner-two/beszel              henrygd/beszel-agent        0.18.6            0.18.7            -
  hetzner-two/bitwarden           ghcr.io/bitwarden/lite      2026.3.2          2026.4.0          -
  hetzner-two/placeholder-public  nginx                       1.29.7-alpine     1.30.0-alpine     -
  hetzner-two/traefik             traefik                     v3.6.12           v3.6.13           -

✓  18 image(s) up to date

  STACK                       IMAGE                          TAG              STATUS
  hetzner-one/cloudreve       cloudreve/cloudreve            4.15.0           up to date
  hetzner-one/cloudreve       redis                          8.6.2            up to date
  hetzner-one/glance-agent    glanceapp/agent                latest           up to date  no tag_pattern
  hetzner-one/linkwarden      ghcr.io/linkwarden/linkwarden  v2.14.0          up to date
  hetzner-one/linkwarden      offen/docker-volume-backup     v2.47.2          up to date
  hetzner-one/linkwarden      postgres                       16.13-alpine     up to date
  hetzner-one/paperless       offen/docker-volume-backup     v2.47.2          up to date
  hetzner-one/paperless       redis                          8.6.2            up to date
  hetzner-one/papra           ghcr.io/papra-hq/papra         26.4.0-rootless  up to date
  hetzner-one/papra           offen/docker-volume-backup     v2.47.2          up to date
  hetzner-one/wud             getwud/wud                     8.2.2            up to date
  hetzner-three/glance-agent  glanceapp/agent                latest           up to date  no tag_pattern
  hetzner-three/node-red      nodered/node-red               4.1.8            up to date
  hetzner-three/pdfding       mrmn/pdfding                   latest           up to date
  hetzner-two/bitwarden       offen/docker-volume-backup     v2.47.2          up to date
  hetzner-two/coredns         coredns/coredns                1.14.2           up to date
  hetzner-two/glance          glanceapp/glance               latest           up to date  no tag_pattern
  hetzner-two/uptime          louislam/uptime-kuma           2.2.1            up to date

Configuration

Per-stack in the manifest:

stacks:
  hetzner-two/traefik:
    images:
      tag_pattern: '^v\d+\.\d+\.\d+$'

Note

Without a tag_pattern, only digest drift is checked. The row renders as "up to date · no tag_pattern" with a footer explaining how to enable tag tracking.

@gcstr gcstr self-assigned this Apr 17, 2026
@gcstr gcstr added enhancement New feature or request docker labels Apr 17, 2026
@gcstr gcstr merged commit 3e8fca3 into main Apr 17, 2026
6 checks passed
@gcstr gcstr deleted the feat/images-pull branch April 17, 2026 17:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docker enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant