v2.31.0-dev14 3751047

images.md RawHistoryFolder

Images Configuration

Configure automatic image cleanup for Docker runtime images and local registry storage.

Overview

When enabled, Gordon runs a scheduled image prune job that:

  • Prunes dangling runtime images.
  • Applies tag retention to registry repositories.
  • Preserves the latest tag.
  • Removes unreferenced blobs after tag cleanup.

The CLI gordon images prune uses the same defaults as the scheduled job (keep latest + 3 previous tags, both scopes enabled: dangling runtime images and registry tag retention).

Configuration

[images]
allowed_registries = []
require_digest = false

[images.prune]
enabled = false
schedule = "daily"
keep_last = 3

Settings

Key Type Default Description
images.allowed_registries array [] Allowlist for external image registries. Empty means no external registries are accepted. Unqualified image names such as nginx:latest are treated as Docker Hub (docker.io) for policy checks. Gordon always allows its configured registry and rejects localhost/private/link-local registries. Include ports when needed, e.g. "registry.example.com:5000".
images.require_digest bool false Require allowlisted external image references to use a valid @sha256:<64 hex chars> digest. Gordon registry images are exempt.
images.prune.enabled bool false Enables scheduled image cleanup
images.prune.schedule string "daily" Schedule preset: hourly, daily, weekly, monthly
images.prune.keep_last int 3 Number of newest non-latest tags kept per repository during registry cleanup (latest is always kept when present)

Retention Behavior

  • latest is always preserved.
  • keep_last applies per repository and counts non-latest tags.
  • keep_last = 0 skips registry tag/blob cleanup (runtime dangling prune still runs).
  • Negative keep_last values are invalid.
source
1# Images Configuration
2
3Configure automatic image cleanup for Docker runtime images and local registry storage.
4
5## Overview
6
7When enabled, Gordon runs a scheduled image prune job that:
8
9- Prunes dangling runtime images.
10- Applies tag retention to registry repositories.
11- Preserves the `latest` tag.
12- Removes unreferenced blobs after tag cleanup.
13
14The CLI `gordon images prune` uses the same defaults as the scheduled job (keep `latest` + 3 previous tags, both scopes enabled: dangling runtime images and registry tag retention).
15
16## Configuration
17
18```toml
19[images]
20allowed_registries = []
21require_digest = false
22
23[images.prune]
24enabled = false
25schedule = "daily"
26keep_last = 3
27```
28
29## Settings
30
31| Key | Type | Default | Description |
32|-----|------|---------|-------------|
33| `images.allowed_registries` | array | `[]` | Allowlist for external image registries. Empty means no external registries are accepted. Unqualified image names such as `nginx:latest` are treated as Docker Hub (`docker.io`) for policy checks. Gordon always allows its configured registry and rejects localhost/private/link-local registries. Include ports when needed, e.g. `"registry.example.com:5000"`. |
34| `images.require_digest` | bool | `false` | Require allowlisted external image references to use a valid `@sha256:<64 hex chars>` digest. Gordon registry images are exempt. |
35| `images.prune.enabled` | bool | `false` | Enables scheduled image cleanup |
36| `images.prune.schedule` | string | `"daily"` | Schedule preset: `hourly`, `daily`, `weekly`, `monthly` |
37| `images.prune.keep_last` | int | `3` | Number of newest non-`latest` tags kept per repository during registry cleanup (`latest` is always kept when present) |
38
39## Retention Behavior
40
41- `latest` is always preserved.
42- `keep_last` applies per repository and counts non-`latest` tags.
43- `keep_last = 0` skips registry tag/blob cleanup (runtime dangling prune still runs).
44- Negative `keep_last` values are invalid.
45
46## Related
47
48- [CLI Images Command](../cli/images.md)
49- [Configuration Reference](./reference.md)

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 7

Tags 106

↑↓ moveenter openesc close