Pular para o conteúdo
Skillpedia
Deploy e nuvem (DevOps)48 mil · #2860

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

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/docker-compose/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/docker-compose/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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-compose

Ou 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.md
Conteú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.

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#2860
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas