Building a devcontainer for Topaz: workspace mounts, DNS wildcards, and why /etc/resolv.conf always wins
I wanted the "Open in Dev Container" badge for Topaz to do the obvious thing: open the repository in VS Code with the emulator already running, the certificates trusted, and *.topaz.local.dev resolving without any manual setup. That target experience sounds simple. Getting there was not.
The tricky part was not Docker Compose itself. The tricky part was figuring out why workspace mounts were unreliable in Compose mode, how to distribute certificates without depending on bind mounts, and why /etc/resolv.conf kept defeating otherwise reasonable DNS ideas. This post is a technical account of building the Topaz devcontainer, the three services that ended up in the Docker Compose file, and the architecture that finally worked.
