ContainerDeck 0.3.0 — Stacks with service discovery
The piece that makes Stacks actually usable: containers in a stack now reach each other by name.
Service discovery (verified working)
apple/container 1.0.0 has no inter-container name resolution — not on the default network, not on a custom one (container system dns create only covers container→host). ContainerDeck closes the gap itself:
- After every service is running, it collects their IPs and injects
<ip> <service>lines into each container's/etc/hosts. - Services become reachable by their plain name —
db,http://superset:8088— exactly as the compose file expects. - No admin password, works on macOS 15. Tested end-to-end: two containers reach each other by bare service name.
Because container IDs are global, service names must be unique across stacks running at the same time.
Notes
- This corrects the approach that was prototyped for 0.2.x: the DNS-domain route was tested and does not work on 1.0.0, so it was replaced with the
/etc/hostsmethod that does. - Compose subset,
${VAR:-default}interpolation, depends_on ordering and build support unchanged from 0.2.0.
Installation
macOS 15+ on Apple Silicon. The DMG is not notarized: after dragging the app to Applications, allow it once via System Settings → Privacy & Security → "Open Anyway".