diff --git a/.gitea/workflows/docker-publish.yml b/.gitea/workflows/docker-publish.yml index 55b9231..f6a88f6 100644 --- a/.gitea/workflows/docker-publish.yml +++ b/.gitea/workflows/docker-publish.yml @@ -490,6 +490,8 @@ jobs: --build-arg "PI_TOOLKIT_REF=${TOOLKIT_REF}" \ --build-arg "PI_EXTENSIONS_REF=${EXTENSIONS_REF}" \ --build-arg "MEMPALACE_TOOLKIT_REF=${MEMPALACE_TOOLKIT_REF}" \ + --build-arg "IMAGE_TITLE=pi-devbox" \ + --build-arg "IMAGE_DESCRIPTION=pi-devbox ${RELEASE_TAG} — core variant: pi coding agent CLI ${PI_VERSION}, pi-toolkit, extensions (fork + observational-memory), MemPalace. No browser UI — see the -studio tags for that." \ --build-arg "RELEASE_TAG=${RELEASE_TAG}" \ --build-arg "BUILD_DATE=${BUILD_DATE}" \ --build-arg "SOURCE_REVISION=${GITHUB_SHA:-}" \ @@ -579,6 +581,8 @@ jobs: --build-arg "PI_EXTENSIONS_REF=${EXTENSIONS_REF}" \ --build-arg "MEMPALACE_TOOLKIT_REF=${MEMPALACE_TOOLKIT_REF}" \ --build-arg "INSTALL_STUDIO=true" \ + --build-arg "IMAGE_TITLE=pi-devbox (studio)" \ + --build-arg "IMAGE_DESCRIPTION=pi-devbox ${RELEASE_TAG} — studio variant: everything in the core variant (pi ${PI_VERSION}, pi-toolkit, fork + observational-memory, MemPalace) plus the pi-studio browser UI ${STUDIO_TAG}." \ --build-arg "PI_STUDIO_REF=${STUDIO_REF}" \ --build-arg "PI_STUDIO_VERSION=${STUDIO_TAG}" \ --build-arg "RELEASE_TAG=${RELEASE_TAG}" \ diff --git a/Dockerfile.variant b/Dockerfile.variant index 77ec899..f82e86f 100644 --- a/Dockerfile.variant +++ b/Dockerfile.variant @@ -219,10 +219,21 @@ ARG SOURCE_REVISION= # MEMPALACE_TOOLKIT_REF is consumed in Dockerfile.base; re-declared here # only so its intended ref lands in the label set alongside the others. ARG MEMPALACE_TOOLKIT_REF=main +# Dockerfile.base sets description="pi-devbox — base image (variant-independent)" +# and every variant INHERITS it, so both published images used to advertise +# themselves on Docker Hub as the base image. A LABEL cannot branch on +# INSTALL_STUDIO, so the description arrives as a build-arg: CI passes the +# variant-specific string (see docker-publish.yml), and the default below keeps +# a plain `docker build -f Dockerfile.variant` honest rather than misleading. +ARG IMAGE_TITLE="pi-devbox" +ARG IMAGE_DESCRIPTION="pi-devbox — development container for the pi coding agent" LABEL org.opencontainers.image.version="${RELEASE_TAG}" \ org.opencontainers.image.revision="${SOURCE_REVISION}" \ org.opencontainers.image.created="${BUILD_DATE}" \ + org.opencontainers.image.title="${IMAGE_TITLE}" \ + org.opencontainers.image.description="${IMAGE_DESCRIPTION}" \ + description="${IMAGE_DESCRIPTION}" \ se.jordbo.pi-devbox.pi-version="${PI_VERSION}" \ se.jordbo.pi-devbox.pi-toolkit-ref="${PI_TOOLKIT_REF}" \ se.jordbo.pi-devbox.pi-extensions-ref="${PI_EXTENSIONS_REF}" \