Gerador de Docker Compose

Crie um docker-compose.yml válido por formulário: serviços, imagens, portas, ambiente, volumes, depends_on e reinício, com predefinições de PostgreSQL, MySQL e Redis.

Serviço 1
Serviço 2
docker-compose.yml

Segue a Compose Specification atual (sem a chave “version:”). Volumes nomeados são declarados automaticamente. Troque as senhas de exemplo antes de usar.

Ferramentas Relacionadas

Ver Todas

O que é Gerador de Docker Compose?

Monte um docker-compose.yml para ambientes com vários contêineres sem brigar com a indentação do YAML. Adicione serviços a partir de predefinições (PostgreSQL, MySQL, Redis, MongoDB, Nginx, seu próprio app) ou comece do zero e preencha imagem ou contexto de build, portas, variáveis de ambiente, volumes, dependências, política de reinício e comando. O YAML é atualizado enquanto você digita e os erros são explicados.

Como usar Gerador de Docker Compose

  1. Edite os serviços de exemplo ou use Adicionar serviço para inserir uma predefinição.
  2. Para cada serviço, defina a Imagem (ou o Contexto de build), as Portas, o Ambiente, os Volumes, o Depende de e a Política de reinício.
  3. Corrija os problemas listados em vermelho (nomes, portas, variáveis ou dependências inválidos).
  4. Baixe o docker-compose.yml e execute docker compose up -d.

Exemplo

Entrada
Service app (build ., port 3000, NODE_ENV=production, depends on db) + PostgreSQL preset
Saída
services:
  app:
    build: .
    restart: unless-stopped
    ports:
      - "3000:3000"
    environment:
      NODE_ENV: production
    depends_on:
      - db
  db:
    image: postgres:16-alpine
    restart: unless-stopped
    ports:
      - "5432:5432"
    environment:
      POSTGRES_USER: app
      POSTGRES_PASSWORD: change-me
      POSTGRES_DB: app
    volumes:
      - pgdata:/var/lib/postgresql/data
volumes:
  pgdata: {}

Quando usar Gerador de Docker Compose

Use-o para montar stacks de desenvolvimento local, demos e implantações simples em um único host. Em produção, você normalmente vai acrescentar health checks, limites de recursos, segredos e redes à mão, ou usar um orquestrador como o Kubernetes. Troque as senhas de exemplo das predefinições antes de usá-las em qualquer lugar.

Como funciona Gerador de Docker Compose

O formulário é convertido em um objeto que segue a Compose Specification atual (sem a chave obsoleta version:) e serializado em YAML com js-yaml. Os mapeamentos de porta ficam entre aspas, porque valores sem aspas como 22:22 podem ser lidos como números na base 60 por parsers YAML 1.1. Linhas de ambiente KEY=value viram um mapeamento, e qualquer volume cuja origem seja um nome em vez de um caminho (por exemplo pgdata:/var/lib/postgresql/data) é declarado automaticamente na chave de nível superior volumes:. Nomes de serviços, formatos de portas, a sintaxe KEY=value e os alvos de depends_on são validados.

Casos de Uso Comuns

  • Rodar um app com PostgreSQL e Redis localmente
  • Compartilhar um ambiente de desenvolvimento reproduzível com a equipe
  • Criar um arquivo compose para uma ferramenta auto-hospedada
  • Aprender a sintaxe do Compose com exemplos

Nota de Segurança

Publicar portas de banco de dados (por exemplo 5432:5432) as expõe em todas as interfaces do host. Em servidores, remova o mapeamento de porta ou vincule a 127.0.0.1, e use senhas fortes ou segredos.

Perguntas Frequentes

Por que não há a linha version:?

A chave version é obsoleta na Compose Specification usada pelo Docker Compose v2; as versões atuais a ignoram e mostram um aviso.

O depends_on espera o banco de dados ficar pronto?

Não, ele só controla a ordem de inicialização. Acrescente um healthcheck e condition: service_healthy, ou tente reconectar no seu app.

Qual a diferença entre um volume nomeado e um bind mount?

Um volume nomeado (pgdata:/path) é gerenciado pelo Docker e sobrevive à recriação do contêiner; um bind mount (./data:/path) mapeia uma pasta da sua máquina.

Explore mais categorias