-
Notifications
You must be signed in to change notification settings - Fork 36
Description
Summary
The create_web_service tool currently supports Docker as a runtime but only when building from source code repositories. It would be incredibly valuable to support deploying pre-built Docker images directly from container registries (Docker Hub, GitHub Container Registry, etc.), which is a common deployment pattern for many production services.
Use Case
We're building a Rails 8 real-time collaboration app (https://github.com/earino/tally.food) that uses AnyCable for high-performance WebSocket connections. Our architecture requires:
- Rails web service - Handles HTTP requests and RPC calls
- AnyCable-Go service - Dedicated WebSocket server (pre-built Docker image:
anycable/anycable-go:latest) - PostgreSQL & Redis - Data and pub/sub
This is a standard microservices pattern where specialized services use official pre-built images rather than custom source code.
Current Limitation
According to the tool description:
"This tool is currently limited to support only a subset of the web service configuration parameters. It also only supports web services which don't use Docker, or a container registry."
While the runtime: "docker" parameter exists, it appears to require a source repository with a Dockerfile, not a pre-built container image.
Proposed Solution
Add support for creating web services from existing container registry images, similar to Render's UI workflow: New+ → Web Service → Deploy an existing image from a registry
Suggested API Extension
create_web_service({
name: "my-anycable-server",
image: "anycable/anycable-go:latest", // NEW parameter
imageRegistry: { // NEW parameter (optional)
type: "dockerhub" | "ghcr" | "private",
credentials: { ... } // if needed
},
plan: "starter",
region: "oregon",
envVars: [
{ key: "ANYCABLE_HOST", value: "0.0.0.0" },
{ key: "ANYCABLE_PORT", value: "10000" },
// ...
]
})This would mirror Render's existing capability while making it accessible to LLM-powered workflows.
Workaround
Currently, we need to manually create the AnyCable-Go service through the Render dashboard, then use MCP for everything else. This breaks the workflow of fully automated infrastructure management through Claude Code or Cursor.
Additional Context
- Our development environment uses
docker-compose.ymlwith the sameanycable/anycable-go:latestimage - AnyCable requires this separate service architecture (documented at https://docs.anycable.io/deployment)
- This pattern is common for: Redis, Memcached, pgBouncer, custom sidecars, etc.
Related
- Issue How to get database/Redis connection URLs via MCP? (or feature request if not currently possible) #7 discusses obtaining connection URLs, which would also be needed for the web service returned from this enhanced tool
- This would complement the existing
create_web_servicefor source-based deployments