Description
Publish a secondary Docker image tag (e.g., ghcr.io/spelech/CSharp-MCP-Router:latest-full) that comes pre-installed with Node.js, Python 3, uv, and bun.
Motivation
The official lightweight aspnet:10.0 Docker image lacks the toolchains needed to natively run python/node scripts via stdio. A "batteries-included" tag allows users to rapidly deploy and run stdio backend scripts natively inside the container without having to build custom images or manage sidecar network topologies.
Proposed Implementation (Multi-stage Dockerfile)
We should maintain a single Dockerfile and use multi-stage targets to output both image variants cleanly.
- Dockerfile Updates: Extend the final
runtime stage into a new runtime-full stage that runs the apt-get commands to install Node.js, Python 3, bun, and uv.
- GitHub Actions Updates: Update the CI/CD workflow to build and push both targets concurrently:
- Build
--target runtime ➔ tag as :latest and :vX.X.X
- Build
--target runtime-full ➔ tag as :latest-full and :vX.X.X-full
Description
Publish a secondary Docker image tag (e.g.,
ghcr.io/spelech/CSharp-MCP-Router:latest-full) that comes pre-installed with Node.js, Python 3,uv, andbun.Motivation
The official lightweight
aspnet:10.0Docker image lacks the toolchains needed to natively run python/node scripts viastdio. A "batteries-included" tag allows users to rapidly deploy and runstdiobackend scripts natively inside the container without having to build custom images or manage sidecar network topologies.Proposed Implementation (Multi-stage Dockerfile)
We should maintain a single Dockerfile and use multi-stage targets to output both image variants cleanly.
runtimestage into a newruntime-fullstage that runs theapt-getcommands to install Node.js, Python 3,bun, anduv.--target runtime➔ tag as:latestand:vX.X.X--target runtime-full➔ tag as:latest-fulland:vX.X.X-full