Skip to content

Publish multi-arch Docker image (amd64 + arm64) to GHCR #77

@StephanMeijer

Description

@StephanMeijer

Request

The repo already ships a working Dockerfile (on the canary branch), but no container image is published anywhere — not on GHCR, Docker Hub, or GitHub Packages.

Could you add a CI workflow that builds and pushes a multi-architecture image (linux/amd64 + linux/arm64) on each release?

Why

Without a published image, every consumer that wants to run plane-mcp-server in a container (e.g. on Kubernetes) has to:

  1. Clone this repo
  2. Build the image locally or in their own CI
  3. Push it to their own registry
  4. Keep it in sync with upstream releases

Publishing an official image eliminates all of that and makes adoption much easier — especially for self-hosted Plane users running on ARM hardware (Raspberry Pi clusters, Apple Silicon dev machines, AWS Graviton, etc.).

Suggested approach

A GitHub Actions workflow using the official Docker actions would cover it. Something along these lines:

# .github/workflows/docker-publish.yaml
name: Publish Docker Image

on:
  release:
    types: [published]

jobs:
  publish:
    runs-on: ubuntu-latest
    permissions:
      packages: write
    steps:
      - uses: actions/checkout@v4
      - uses: docker/setup-qemu-action@v3
      - uses: docker/setup-buildx-action@v3
      - uses: docker/login-action@v3
        with:
          registry: ghcr.io
          username: ${{ github.actor }}
          password: ${{ secrets.GITHUB_TOKEN }}
      - uses: docker/build-push-action@v6
        with:
          context: .
          push: true
          platforms: linux/amd64,linux/arm64
          tags: |
            ghcr.io/${{ github.repository }}:latest
            ghcr.io/${{ github.repository }}:${{ github.event.release.tag_name }}

Happy to open a PR with the workflow if that would help — just let me know.

Context

I'm deploying plane-mcp-server on a k3s cluster (HTTP transport mode) to expose Plane tools to AI agents via MCP. Currently building the image in my own CI as a workaround.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions