Restarts WitchCityRope Docker DEVELOPMENT containers using the CORRECT procedure. Handles shutdown, rebuild with dev compose overlay, health checks, and compilation verification.
Purpose: Restart Docker DEVELOPMENT containers the RIGHT way - this is the ONLY correct procedure.
CRITICAL: This skill is for DEVELOPMENT containers only. For TEST containers, use restart-test-containers skill.
When to Use:
When NOT to Use:
restart-test-containers insteadtest-environment skill insteadCRITICAL: Dev and test containers are isolated using different project names:
-p witchcityrope-dev-p witchcityrope-testThis prevents operations on one environment from affecting the other.
This skill is the ONLY place where dev container restart procedure is documented.
If you find container restart instructions elsewhere:
DO NOT duplicate this procedure in:
Common mistakes (DO NOT do these):
docker-compose up -d without the dev overlay-p witchcityrope-dev (will interfere with test containers)./dev.sh then immediately running tests without checking compilationInstead: Always use execute.sh -- it handles overlay, project isolation, compilation checks, and health verification.
Executable Script: execute.sh
# From project root
bash .claude/skills/restart-dev-containers/execute.sh
# Skip confirmation prompt (for automation)
SKIP_CONFIRMATION=true bash .claude/skills/restart-dev-containers/execute.sh
What the script does:
-p witchcityrope-dev)docker-compose.yml + docker-compose.dev.yml)Script includes safety checks - it will not run blindly without showing you what it's about to do.
# From project root - with confirmation prompt
bash .claude/skills/restart-dev-containers/execute.sh
# For automation - skip confirmation
SKIP_CONFIRMATION=true bash .claude/skills/restart-dev-containers/execute.sh
# Force full rebuild (bypass Docker layer cache) - use after adding new npm/NuGet packages
NO_CACHE=true SKIP_CONFIRMATION=true bash .claude/skills/restart-dev-containers/execute.sh
No manual steps documented here -- all logic lives in execute.sh. If the script is unavailable, read execute.sh directly for the correct procedure.
Cause: Compilation errors in container. The skill automatically checks compilation logs and reports errors.
Cause: Old containers still running or other process using ports. Check running containers and kill orphans, or use lsof to find what's occupying the port.
Cause: Services need more time to initialize. The skill retries health checks for up to 60 seconds.
Cause: Missing project isolation flag. Always use this skill which includes the correct -p witchcityrope-dev flag.
After code changes:
I'll restart dev containers to apply my changes.
Skill is invoked automatically
Result: Code changes applied, compilation verified
When run via Claude Code, skill returns:
{
"skill": "restart-dev-containers",
"status": "success",
"timestamp": "2025-12-01T15:30:00Z",
"containers": {
"running": 3,
"expected": 3,
"healthy": true
},
"compilation": {
"web": "clean",
"api": "clean"
},
"healthChecks": {
"web": "healthy",
"api": "healthy",
"database": "healthy"
},
"readyForTesting": true,
"message": "Environment ready for development and testing"
}
On failure:
{
"skill": "restart-dev-containers",
"status": "failure",
"error": "Compilation errors in web container",
"details": "TypeError: Cannot read property 'foo' of undefined at line 42",
"action": "Fix source code and restart again"
}
-p witchcityrope-test)This skill is the single source of truth for DEV container restart.
To update the restart procedure:
-p witchcityrope-dev project isolationrestart-test-containers skillRemember: This skill is executable automation. Run it, don't copy it.