Skip to content

Publish the Docker image to GHCR#90

Draft
dannon wants to merge 2 commits into
galaxyproject:mainfrom
dannon:feat/publish-docker-ghcr
Draft

Publish the Docker image to GHCR#90
dannon wants to merge 2 commits into
galaxyproject:mainfrom
dannon:feat/publish-docker-ghcr

Conversation

@dannon

@dannon dannon commented Jul 8, 2026

Copy link
Copy Markdown
Member

The README's Container Usage section points at galaxyproject/galaxy-mcp, but that image was never published -- nothing in CI built or pushed it, so docker run galaxyproject/galaxy-mcp fails to pull. This wires up publishing.

While getting a local build to pass, I hit a latent Dockerfile bug: the final stage did COPY --from=uv /root/.local /root/.local, but that path doesn't exist in the uv builder (uv lives at /usr/local/bin, nothing installs to /root/.local), so the build errored with a checksum-not-found. Dropped it -- the runtime doesn't need uv, the entrypoint is the venv console script. Also added a .dockerignore.

New docker-publish.yml builds mcp-server-galaxy-py/Dockerfile and pushes ghcr.io/galaxyproject/galaxy-mcp: versioned + latest on release, edge on main, and a build-only validation pass on PRs so a broken Dockerfile can't slip through again. Auth is the built-in GITHUB_TOKEN -- no secrets. Multi-arch (amd64 + arm64) on publish.

Verified locally: image builds, stdio --help runs, HTTP transport binds :8000.

dannon added 2 commits July 7, 2026 16:37
The final stage copied /root/.local out of the uv builder, but that path
never exists there (uv lives at /usr/local/bin and nothing installs into
/root/.local), so the build died at that step with a checksum-not-found
error. The runtime doesn't need uv anyway -- the entrypoint is the
galaxy-mcp console script in /app/.venv/bin. Also add a .dockerignore so
local builds don't drag .env, .venv, and the tool caches into the context.
Nothing ever built or pushed the container the README pointed at, so
galaxyproject/galaxy-mcp didn't actually exist on any registry. This adds
a workflow that builds mcp-server-galaxy-py/Dockerfile and pushes
ghcr.io/galaxyproject/galaxy-mcp -- versioned tags plus latest on release,
an edge tag on main, and a build-only validation pass on PRs so a broken
Dockerfile can't slip through again. Auth is the built-in GITHUB_TOKEN, no
secrets needed. README now points at the ghcr.io image and the dev docs
describe the workflow.
@aghozlane

Copy link
Copy Markdown

Thank you! It would be great to publish that Docker image.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants