AgentSkillsCN

docker

Docker Compose、容器管理以及基础设施相关模式。在处理 Dockerfile、docker-compose.yml 或部署任务时加载此技能。

SKILL.md
--- frontmatter
name: docker
description: Docker Compose, container management, and infrastructure patterns. Load when working with Dockerfile, docker-compose.yml, or deployment tasks.

Docker

Commands

TaskCommand
Start devdocker-compose -f docker/docker-compose.dev.yml up -d
Start proddocker-compose up -d
View logsdocker-compose logs -f [service]
Rebuilddocker-compose build --no-cache
Full resetdocker-compose down && docker-compose up -d --build
Enter containerdocker exec -it nop-backend bash
Check healthdocker-compose ps
Config testdocker-compose config

Gotchas

CategoryPatternSolution
BuildChanges not visibleUse --no-cache flag
BuildContainer old codeUse --build --force-recreate
NetworkBridge uses gateway IPUse different IP for containers
PortsWrong service on portVerify port mappings (8000=Portainer, 12000=NOP)
ConfigInvalid YAMLRun docker-compose config first
VolumesData not persistingCheck volume mounts in compose file

Rules

RuleRequirement
Config testRun docker-compose config before apply
Health checksDefine health checks for all services
Resource limitsSet memory/CPU limits
SecretsUse environment variables, not hardcoded
RollbackDocument rollback plan

Patterns

yaml
# Pattern 1: Health check
services:
  backend:
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
      interval: 30s
      timeout: 10s
      retries: 3

# Pattern 2: Resource limits
services:
  backend:
    deploy:
      resources:
        limits:
          cpus: '0.50'
          memory: 512M

# Pattern 3: Environment from file
services:
  backend:
    env_file:
      - .env

Pre-Change Checklist

  • Environment variables documented
  • No secrets in code
  • docker-compose config validates
  • Rollback plan documented
  • Health checks defined

Rollback Plan Template

markdown
## Rollback Plan

### Changes Made
1. [Change 1]
2. [Change 2]

### Rollback Steps
1. `docker-compose down`
2. `git checkout [previous-commit] -- [files]`
3. `docker-compose up -d --build`

### Verification
- [ ] Services healthy
- [ ] Application accessible
- [ ] Logs show no errors