Skip to content

feat: prebuilt GHCR devcontainer image + simplified F5 launch - #446

Open
piers-sinclair wants to merge 2 commits into
mainfrom
feat/devcontainer-prebuilt-image
Open

feat: prebuilt GHCR devcontainer image + simplified F5 launch#446
piers-sinclair wants to merge 2 commits into
mainfrom
feat/devcontainer-prebuilt-image

Conversation

@piers-sinclair

Copy link
Copy Markdown
Owner

Summary

Ports the devcontainer improvements from DwellAround PRs #57 and #63 to the Dostar template.

Prebuilt GHCR image:

  • New Dockerfile baking in all stable tooling: .NET 10, Node 22, pnpm, PostgreSQL client, Docker CLI, GitHub CLI, Azure CLI, dotnet-ef, Dostar.Cli, claude-code, Trivy, OpenGrep, Playwright Chromium, pre-warmed pnpm store and NuGet cache
  • New devcontainer-image.yml CI workflow publishing ghcr.io/piers-sinclair/dostar-devcontainer on Dockerfile changes
  • devcontainer.json: remove features and onCreateCommand (all tooling now in image)
  • Delete devcontainer-lock.json (features lock, no longer applicable)
  • configure-git-mounts.sh/.ps1: reference prebuilt image, add docker socket + playwright/pnpm/nuget named volumes, fix container_workspace to lowercase
  • postCreate.sh: guard all tool installs (no-ops when image current), remove Trivy/OpenGrep wget blocks, add UI test pnpm install + Playwright browser check
  • postStart.sh: add postStart.log, docker socket fix, 15-retry PG readiness wait, run migrations on every start
  • postAttach.sh: fix trivy/opengrep repair hints, add playwright health check, add start log pointer

Simplified F5 launch:

  • launch: prepare now only builds Dostar.Api (postStart handles migrations)
  • New run: reset-db task for manually re-applying migrations after schema changes
  • run: backend now depends on launch: prepare (not run: migrate directly)

First-time setup after merge

After CI publishes the first image, set the GHCR package to Public:
GitHub profile -> Packages -> dostar-devcontainer -> Package settings -> Change visibility -> Public

Test plan

  • docker build succeeds locally
  • Open devcontainer - no feature install step
  • postCreate log shows tool guards firing (already on PATH)
  • postStart log shows PG ready + migrations applied
  • F5 starts backend and frontend without running migrations
  • Terminal -> Run Task -> run: reset-db runs migrations manually
  • health shows all tools green + both log pointers

Generated with Claude Code

piers-sinclair and others added 2 commits June 27, 2026 08:39
Mirrors the changes applied to DwellAround in PRs #57 and #63.

Prebuilt image:
- Add Dockerfile baking in all stable tooling: .NET 10, Node 22, pnpm,
  PostgreSQL client, Docker CLI, GitHub CLI, Azure CLI, dotnet-ef,
  Dostar.Cli, claude-code, Trivy, OpenGrep, Playwright Chromium, plus
  pre-warmed pnpm store and NuGet cache
- Add devcontainer-image.yml CI workflow to publish dostar-devcontainer
- Remove devcontainer features and onCreateCommand (tooling in image)
- Delete devcontainer-lock.json (features lock, no longer applicable)
- configure-git-mounts: reference dostar-devcontainer image, add docker
  socket + playwright/pnpm/nuget volumes, fix container_workspace case
- postCreate: guard all tool installs, remove Trivy/OpenGrep wget,
  add UI test pnpm install and Playwright browser check
- postStart: add postStart.log, docker socket fix, 15-retry PG wait,
  run migrations on every start
- postAttach: fix repair hints, add playwright check, add start log line

Simplified F5 launch:
- launch: prepare now only builds Dostar.Api (postStart runs migrations)
- Add run: reset-db task for manual migration re-apply
- run: backend now depends on launch: prepare (not run: migrate directly)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
PNPM_CONFIG_CONFIRM_MODULES_PURGE=false prevents pnpm from hanging
on a y/n prompt when the node_modules volume needs to be purged.

Mirrors fix from DwellAround PR #64.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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