chore(oci): migrate check gate and HTTP service to musl, drop glibc Dockerfile (YTMCP-21) #31
Loading…
Reference in a new issue
No description provided.
Delete branch "chore/ytmcp-21-migrate-check-and-service-to-musl"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Remove the glibc Linux Docker image entirely so the static musl build is the single source for both the check toolchain and the HTTP service container, completing the glibc-removal arc started by YTMCP-20.
Give oci-build/Dockerfile.static a deployable
runtimestage:FROM alpine:3holding the static binary, withENTRYPOINT ["/youtrack-mcp"]and a/dataVOLUME preserving the compose state contract. No ca-certificates layer (rustls compiles CA roots in via webpki, matching the prior scratch posture). Smoke-tested: the container serves--transport httpandGET /healthzreturns 200.Repoint compose.yml to build
oci-build/Dockerfile.statictargetruntime; theyoutrack-mcp:localtag,--transport httpcommand,youtrack-mcp-datavolume, andyoutrack-mcp-privatenetwork are unchanged.docker compose buildsucceeds.Move the check gate to the musl toolchain:
dev_imageand thepre-commitrecipe now userust-builder-musl, andcheck-dockerbuildsDockerfile.static --target builder.build-dockerbuilds the new runtime image; the redundantbuild-docker-exportrecipe is removed in favor ofbuild-static.Delete oci-build/Dockerfile and update CLAUDE.md, README.md, docs/deployment.md, and .dockerignore so no glibc Linux image or glibc check toolchain is described; musl is documented as the single Linux Docker build.
.forgejo/workflows/check.ymlis intentionally left unchanged: it runs cargo natively on the runner via JS actions (checkout, rust-cache) that require Node, which the Alpine-based musl image does not ship, so acontainer:directive would break the job. It already references no glibc image, so the glibc-removal goal holds for it; the musl toolchain lockstep lives injust pre-commit.The static binary publish workflow (build-binary-static.yml) and the
binaryexport stage are untouched.Signed-off-by: David Randall David@NiceGuyIT.biz
#YTMCP-21