docker-compose
Ensina seu agente de IA a colocar projetos no ar e cuidar da infraestrutura.
O que ela faz
O Docker Compose ajuda a gerenciar múltiplos programas (serviços) que precisam rodar juntos. Ele usa um arquivo de texto para descrever todos esses programas e como eles devem se conectar, facilitando a execução de aplicações complexas.
Quando usar
- ✓Quando você tem vários programas que precisam funcionar juntos (ex: um site com um banco de dados).
- ✓Para criar um ambiente de teste igual ao de produção.
- ✓Para garantir que todos na equipe usem as mesmas configurações.
Exemplo do que pedir para a IA
“Configure um ambiente com um site e um banco de dados usando Docker Compose.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
Você escreve um arquivo chamado 'docker-compose.yml' descrevendo cada programa (serviço), a imagem que ele usa, as portas que ele precisa e como ele se conecta a outros programas. Depois, um comando simples inicia tudo.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add sickn33/agentic-awesome-skills --skill docker-composeOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/docker-compose/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Docker Compose
Orquestre aplicações com múltiplos contêineres usando configuração declarativa em YAML.
Quando Usar Esta Habilidade
Use esta habilidade quando:
- Executar aplicações com múltiplos contêineres localmente
- Configurar ambientes de desenvolvimento
- Definir dependências de serviço e redes
- Gerenciar pilhas de aplicações com múltiplos serviços
- Criar configurações de desenvolvimento reproduzíveis
Escopo de Execução
Confirme o contexto Docker e o projeto selecionados antes de qualquer operação. As instruções de build executam comandos contribuídos; inspecione o Dockerfile, o contexto de build, os scripts e as dependências baixadas primeiro. A publicação de imagens, paradas de contêineres compartilhados e exclusão de volumes precisam de autorização para o alvo exato. Não exponha valores de ambiente, histórico de imagens ou logs contendo credenciais. Estes exemplos são fragmentos independentes com ativos específicos do projeto, não uma implantação completa.
Pré-requisitos
- Docker Engine com plugin Compose (v2)
- Conhecimento básico de Docker
- Compreensão da sintaxe YAML
Configuração Básica
Pilha de Aplicação Simples
# docker-compose.yml
services:
web:
build: .
ports:
- "127.0.0.1:3000:3000"
environment:
- NODE_ENV=development
- DATABASE_URL=postgres://postgres:${POSTGRES_PASSWORD:?set a local fixture password}@db:5432/myapp
depends_on:
- db
- redis
db:
image: postgres:15-alpine
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?set a local fixture password}
POSTGRES_DB: myapp
volumes:
- postgres-data:/var/lib/postgresql/data
ports:
- "127.0.0.1:5432:5432"
redis:
image: redis:7-alpine
ports:
- "127.0.0.1:6379:6379"
volumes:
postgres-data:
Configuração de Serviço
Opções de Build
services:
app:
build:
context: ./app
dockerfile: Dockerfile.dev
args:
NODE_VERSION: "20"
target: development
cache_from:
- myapp:cache
image: myapp:dev
Variáveis de Ambiente
services:
app:
environment:
- NODE_ENV=production
- API_KEY=${API_KEY} # From shell or .env file
env_file:
- .env
- .env.local
Mapeamento de Portas
services:
web:
ports:
- "127.0.0.1:3000:3000" # HOST:CONTAINER
- "127.0.0.1:9229:9229" # Bind to localhost only
- "8080-8090:8080-8090" # Port range
expose:
- "3000" # Internal only (no host binding)
Montagens de Volume
services:
app:
volumes:
# Named volume
- app-data:/app/data
# Bind mount
- ./src:/app/src
# Read-only bind mount
- ./config:/app/config:ro
# Anonymous volume (for node_modules)
- /app/node_modules
volumes:
app-data:
driver: local
Dependências
services:
web:
depends_on:
db:
condition: service_healthy
redis:
condition: service_started
db:
image: postgres:15
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 10s
timeout: 5s
retries: 5
Redes
Redes Personalizadas
services:
frontend:
networks:
- frontend-net
backend:
networks:
- frontend-net
- backend-net
db:
networks:
- backend-net
networks:
frontend-net:
driver: bridge
backend-net:
driver: bridge
internal: true # No external access
Apelidos de Rede
services:
db:
networks:
backend:
aliases:
- database
- postgres
networks:
backend:
Limites de Recursos
services:
app:
deploy:
resources:
limits:
cpus: '2'
memory: 1G
reservations:
cpus: '0.5'
memory: 256M
Múltiplos Arquivos Compose
Arquivos de Sobrescrita
# docker-compose.yml (base)
services:
web:
image: myapp:latest
ports:
- "127.0.0.1:3000:3000"
# docker-compose.override.yml (development - auto-loaded)
services:
web:
build: .
volumes:
- ./src:/app/src
environment:
- DEBUG=true
# docker-compose.prod.yml (production)
services:
web:
deploy:
replicas: 3
environment:
- DEBUG=false
Usando Múltiplos Arquivos
# Desenvolvimento (usa sobrescrita automaticamente)
docker compose up
# Produção
docker compose -f docker-compose.yml -f docker-compose.prod.yml up
# Mesclar e visualizar a configuração final
…
Perguntas frequentes
O que são 'serviços' no Docker Compose?
Serviços são os diferentes programas ou partes da sua aplicação que precisam rodar juntos, como um servidor web, um banco de dados ou um cache.
O que é um 'volume'?
Um volume é um espaço onde os dados importantes da sua aplicação são guardados, mesmo que o programa seja reiniciado ou removido. É como um disco rígido para seus programas.
Posso usar o Docker Compose para rodar minha aplicação na internet?
O Docker Compose é ótimo para rodar aplicações localmente ou em um servidor que você gerencia. Para rodar na internet de forma escalável, outras ferramentas podem ser mais adequadas, mas o Compose é um ótimo ponto de partida.
Detalhes
Descrição original do autor
Define and run multi-container Docker applications using Docker Compose.
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #2860
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
bun-runtime
Faz seu agente usar o Bun para rodar, organizar e testar código. Ajuda a escolher o Bun em vez de outras ferramentas e a migrar projetos existentes.
affaan-m/ECC
database-migrations
Ajuda seu agente a fazer mudanças seguras em bancos de dados. Ele garante que as alterações possam ser desfeitas e minimiza o tempo de inatividade.
affaan-m/ECC
deployment-patterns
Configura fluxos de implantação e CI/CD, containerização e estratégias de rollback para garantir lançamentos seguros.
affaan-m/ECC