Skip to content

feat: develop inside a dev container with nested docker daemon#175

Open
itzcull wants to merge 4 commits into
masterfrom
itzcull/setup-dev-containers
Open

feat: develop inside a dev container with nested docker daemon#175
itzcull wants to merge 4 commits into
masterfrom
itzcull/setup-dev-containers

Conversation

@itzcull
Copy link
Copy Markdown
Owner

@itzcull itzcull commented May 14, 2026

Summary

  • Adds .devcontainer/ (workspace image + DinD feature + lifecycle scripts) so each Conductor workspace gets its own per-workspace node_modules, pnpm store, and nested docker daemon.
  • Root docker-compose.yml stays the single source of truth for app services (Postgres today) and is brought up against the container's nested daemon by postCreateCommand/postStartCommand — so two workspaces never collide on host port 5432, the host docker daemon, or shared state.
  • Migrates every CI job to devcontainers/ci@v0.4 so CI runs against the same image used locally; drops the per-job setup-node/pnpm install/playwright install triplets and the services: postgres block from test-e2e.
  • Updates README's Getting Started to mandate the devcontainer and explain the nested-daemon Postgres bring-up.

Test plan

  • devcontainer up --workspace-folder . completes; post-create.sh finishes installing deps, browsers, and bringing up root compose.
  • Inside the container: pg_isready -h localhost -p 5432 -U local succeeds; on the host lsof -iTCP:5432 is empty.
  • pnpm test:unit, pnpm test:browser, pnpm test:integration, pnpm test:e2e, pnpm run ci all pass inside the container.
  • Two workspaces run pnpm test:integration in parallel without collision.
  • All six CI jobs pass against the devcontainer image.

itzcull added 4 commits May 15, 2026 00:30
Move the inner loop (Postgres, Vite, Vitest, Playwright, testcontainers)
into a per-workspace dev container running docker-in-docker. The root
docker-compose.yml stays the single source of truth for app services and
is brought up against the container's nested daemon, so multiple
Conductor workspaces no longer collide on host port 5432, the host
docker daemon, or shared node_modules/pnpm state.

CI migrates every job to devcontainers/ci@v0.4 so it runs against the
same image used locally.
Revert the AGENTS.md tweak from the previous commit. The agent sees a
docker host either way; it doesn't need to know about the dev container.
v0.4 does not exist; v0.3 is the current moving tag.
Drop the CI migration to devcontainers/ci; keep CI on the original
host-runner setup. The devcontainer changes for local dev remain.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant