Load when editing Dockerfile, docker-compose*.yml, or managing containers. Provides container management patterns for development and production environments.
| Category | Pattern | Solution |
|---|---|---|
| Stale code | restart keeps old code | Use up -d --build instead |
| Cache issues | Changes not appearing | Add --force-recreate flag |
| Wrong compose | Using prod for dev | Always use docker-compose.dev.yml for local |
| Network sockets | Broadcast not working | Add SO_BROADCAST socket option |
| Volume mounts | Source changes not reflecting | Check volume paths in compose file |
| Port conflicts |
| Container won't start |
| Check ports 3000, 8000, 5432 not in use |
| Rule | Pattern |
|---|---|
| Dev compose | Always use docker-compose.dev.yml for local development |
| Rebuild after code | up -d --build not restart |
| Force recreate | Add --force-recreate when cache issues |
| Check logs first | docker compose logs -f {service} before debugging |
| Clean rebuilds | --no-cache for dependency changes |
| ❌ Bad | ✅ Good |
|---|---|
docker compose restart | docker compose up -d --build |
| Production compose for dev | docker-compose.dev.yml |
| Debugging without logs | docker compose logs -f backend |
| Ignoring exit codes | Check docker compose ps for health |
# Pattern 1: Development startup (DEFAULT)
docker compose -f docker/docker-compose.dev.yml up -d
# Pattern 2: Rebuild single service
docker compose -f docker/docker-compose.dev.yml up -d --build backend
# Pattern 3: Force full recreate (cache issues)
docker compose up -d --build --force-recreate backend
# Pattern 4: Clean rebuild (dependency changes)
docker compose build --no-cache backend
docker compose up -d
# Pattern 5: Debug container
docker compose logs -f backend --tail 100
docker exec -it nop-backend bash
| Situation | Compose File |
|---|---|
| Local development | docker/docker-compose.dev.yml |
| Production deploy | docker-compose.yml |
| Testing | docker/docker-compose.test.yml |
| Debugging | docker/docker-compose.debug.yml |
| Task | Command |
|---|---|
| Start dev | docker compose -f docker/docker-compose.dev.yml up -d |
| Rebuild service | docker compose up -d --build backend |
| View logs | docker compose logs -f backend |
| Enter container | docker exec -it nop-backend bash |
| Stop all | docker compose down |
| Full reset | docker compose down && docker compose up -d --build |
| Check status | docker compose ps |