Closed
Conversation
- Multi-stage Dockerfile (golang:1.23-alpine builder, alpine:3.21 runtime) - CGO_ENABLED=1 for go-sqlite3, non-root user, version injection via --build-arg - .dockerignore excludes credentials, reports, IDE/git files - .github/workflows/docker.yml: builds linux/amd64 + linux/arm64, pushes to ghcr.io/oisee/vsp on v* tag push (triggered by release.yml tag push) - docs/docker.md: full configuration guide covering all SAP_* env vars, safety modes, tool groups, feature flags, network/TLS, MCP client integration - NOTE: Docker is most useful with HTTP streamable MCP transport (coming later) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Dockerfile: set SAP_TRANSPORT=http-streamable and SAP_HTTP_ADDR=0.0.0.0:8080 as defaults so the container listens on all interfaces out of the box - Dockerfile: add EXPOSE 8080 for port mapping documentation - docs/docker.md: rewrite to feature HTTP streamable as the primary Docker transport; add transport/address reference table; update MCP client integration section with HTTP URL-based config; update common configuration examples Made-with: Cursor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds Docker support for running vsp as a containerised MCP server, published automatically to GitHub Container Registry (GHCR) — no Docker Hub account required.
Dockerfile— multi-stage build (golang:1.23-alpinebuilder with CGO,alpine:3.21runtime); non-root user; version/commit/date injection via--build-arg.dockerignore— excludes credentials, reports, IDE/git files from build context.github/workflows/docker.yml— triggers onv*tag push (same event fired byrelease.yml); buildslinux/amd64+linux/arm64; pushes toghcr.io/oisee/vsp; uses built-inGITHUB_TOKENwithpackages: write— no extra secretsdocs/docker.md— comprehensive guide: allSAP_*env vars, safety modes, tool groups, feature flags, network/TLS, MCP client (Claude Desktop) integration, update workflowreports/2026-03-13-001-docker-support.md— design recordBlocker / Why Draft
The current vsp MCP server communicates exclusively over stdio (stdin/stdout). Docker works for this today —
docker run -ipipes stdio to the MCP client — but it is an awkward integration:docker runsubprocess per sessionOnce HTTP streamable transport (see #38 ) lands, a Docker container becomes far more natural: expose a port, run as a long-lived service, route multiple MCP clients to the same instance. The
Dockerfileand workflow are ready for that — only the vsp server code needs the transport layer.No changes to
release.ymldocker.ymlself-triggers from the tag push thatrelease.ymlalready performs. The two workflows run in parallel with independent permission scopes.Test plan
docker build -t vsp .completes without errordocker run --rm vsp --versionprints versiondocker run -i --rm -e SAP_URL=... -e SAP_USER=... -e SAP_PASSWORD=... vspconnects to SAP systemdocker.ymlworkflow runs and image appears atghcr.io/oisee/vspdocker pull ghcr.io/oisee/vsp:latestworks on both amd64 and arm64🤖 Generated with Claude Code