Skip to content

Publish pre-built Docker images to GHCR on tagged releases #83

@luis15pt

Description

@luis15pt

Proposed functionality

Publish pre-built Docker images to GitHub Container Registry (GHCR) automatically on tagged releases.

The repo already has a Dockerfile, tagged releases (v1.0.0), and a .github directory, so this should be straightforward to implement with a GitHub Actions workflow that:

  1. Triggers on published releases
  2. Builds the existing Dockerfile
  3. Tags as latest + the release version (e.g. v1.0.0, 1.0.0, 1.0)
  4. Pushes to ghcr.io/netboxlabs/netbox-mcp-server

This would allow users to go from:

git clone https://github.com/netboxlabs/netbox-mcp-server.git
cd netbox-mcp-server
docker build -t netbox-mcp-server:latest .

To simply:

docker pull ghcr.io/netboxlabs/netbox-mcp-server:latest

And reference the image directly in docker-compose.yml files without any local build step:

services:
  netbox-mcp:
    image: ghcr.io/netboxlabs/netbox-mcp-server:latest
    restart: unless-stopped
    environment:
      - NETBOX_URL=${NETBOX_URL}
      - NETBOX_TOKEN=${NETBOX_TOKEN}
      - TRANSPORT=http
      - HOST=0.0.0.0
    ports:
      - "8000:8000"

Happy to submit a PR with the workflow if that would be helpful.

Use case

I run multiple MCP servers (Grafana, Prometheus, NetBox) in a single docker-compose stack on a dedicated Docker host, accessed remotely by Claude Code over the network. Grafana and Prometheus MCP servers pull directly from their registries (grafana/mcp-grafana on Docker Hub, ghcr.io/pab1it0/prometheus-mcp-server on GHCR), but NetBox MCP requires cloning the repo and building locally before it can be added to the stack.

This means:

  • Maintaining a cloned repo on the Docker host just to build the image
  • Updating requires git pull + docker build instead of docker compose pull
  • A self-contained docker-compose.yml can't be shared with the team — everyone needs to clone and build first
  • NetBox is the only MCP server in the stack that can't be treated as a standard container image

It's a small but real friction point that makes NetBox MCP harder to adopt and operate compared to other MCP servers in the ecosystem.

External dependencies

No response

Metadata

Metadata

Labels

status: needs triageThis issue is awaiting triage by a maintainertype: featureA new feature or functionality

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions