Skip to main content

Docker Hub

Sync descriptions to Docker Hub repositories

Anodizer can sync short and full descriptions to your Docker Hub repositories. This does not build or push images; it updates the repository metadata that appears on the Docker Hub page.

Classification

GroupRequired (default)RollbackToken scope
Assetsfalsemanual cleanup checklist (description PATCH cannot be programmatically reverted)DOCKER_TOKEN write

See Release resilience for the full classification table and the Submitter gate semantics.

The required: field

Default: false — a Docker Hub description sync failure is logged but does not fail the release.

Set required: true to make the release exit non-zero if this publisher fails:

dockerhub:
  - username: myuser
    images:
      - myorg/myapp
    required: true

See Publish overview — the required: field for the full semantics.

Minimal config

dockerhub:
  - username: myuser
    images:
      - myorg/myapp
    description: "A fast CLI tool"

Full config reference

dockerhub:
  - username: myuser                 # required
    secret_name: DOCKER_PASSWORD     # optional; env var for the password
    images:                          # optional; repo names to update
      - myorg/myapp
    description: ""                  # optional; short description (max 100 chars)
    full_description:                # optional; long description source
      from_file:
        path: README.md              # local file path
      # or:
      # from_url:
      #   url: "https://..."
      #   headers:
      #     Authorization: "token {{ Env.GITHUB_TOKEN }}"
    disable: false                   # optional; skip this entry

Authentication

VariableDescription
DOCKER_PASSWORDDocker Hub password (or custom name via secret_name)

Common gotchas

  • Description only: this publisher updates repository metadata (short and full description) only. It does not build or push Docker images. Use the Docker packages stage for image builds.
  • Short description limit: Docker Hub truncates short descriptions to 100 characters. Anodizer emits a warning when the configured value exceeds this limit.
  • from_file precedence: when both from_file and from_url are set on full_description, from_file wins.

Docker Hub config fields

FieldTypeDefaultDescription
usernamestringrequiredDocker Hub username
secret_namestringDOCKER_PASSWORDEnvironment variable name for the password
imageslistnoneDocker Hub repository names to update
descriptionstring""Short description (max 100 characters)
full_descriptionobjectnoneFull description source (see below)
disablestring/boolnoneDisable this config

Full description sources

The full_description field supports loading content from a file or URL:

# From a local file
full_description:
  from_file:
    path: README.md

# From a URL
full_description:
  from_url:
    url: "https://raw.githubusercontent.com/myorg/myapp/main/README.md"
    headers:
      Authorization: "token {{ Env.GITHUB_TOKEN }}"
SourceFields
from_filepath — local file path
from_urlurl — HTTP URL; headers — optional HTTP headers

Behavior

  • Authenticates via Docker Hub API (hub.docker.com/v2/users/login/)
  • PATCHes each repository with the description fields
  • Short descriptions longer than 100 characters trigger a warning (Docker Hub truncates)
  • from_file takes precedence over from_url when both are set
  • Skips the PATCH when both description and full_description are empty

Full example

dockerhub:
  - username: myuser
    images:
      - myorg/myapp
      - myorg/myapp-server
    description: "A fast CLI tool for data processing"
    full_description:
      from_file:
        path: README.md