AgentSkillsCN

docker

在编辑 Dockerfile、docker-compose*.yml 文件,或管理容器时加载。提供适用于开发与生产环境的容器管理模式。

SKILL.md
--- frontmatter
name: docker
description: Load when editing Dockerfile, docker-compose*.yml, or managing containers. Provides container management patterns for development and production environments.

Docker

Merged Skills

  • container-management: Start, stop, rebuild, logs
  • compose-files: Multi-container orchestration, environment separation

⚠️ Critical Gotchas

CategoryPatternSolution
Stale coderestart keeps old codeUse up -d --build instead
Cache issuesChanges not appearingAdd --force-recreate flag
Wrong composeUsing prod for devAlways use docker-compose.dev.yml for local
Network socketsBroadcast not workingAdd SO_BROADCAST socket option
Volume mountsSource changes not reflectingCheck volume paths in compose file
Port conflictsContainer won't startCheck ports 3000, 8000, 5432 not in use

Rules

RulePattern
Dev composeAlways use docker-compose.dev.yml for local development
Rebuild after codeup -d --build not restart
Force recreateAdd --force-recreate when cache issues
Check logs firstdocker compose logs -f {service} before debugging
Clean rebuilds--no-cache for dependency changes

Avoid

❌ Bad✅ Good
docker compose restartdocker compose up -d --build
Production compose for devdocker-compose.dev.yml
Debugging without logsdocker compose logs -f backend
Ignoring exit codesCheck docker compose ps for health

Patterns

bash
# 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

Environment Detection

SituationCompose File
Local developmentdocker/docker-compose.dev.yml
Production deploydocker-compose.yml
Testingdocker/docker-compose.test.yml
Debuggingdocker/docker-compose.debug.yml

Commands

TaskCommand
Start devdocker compose -f docker/docker-compose.dev.yml up -d
Rebuild servicedocker compose up -d --build backend
View logsdocker compose logs -f backend
Enter containerdocker exec -it nop-backend bash
Stop alldocker compose down
Full resetdocker compose down && docker compose up -d --build
Check statusdocker compose ps