Executando verificação de segurança...
1

Cansado de abrir 10 terminais para rodar seus microserviços? Conheça o DCM.

Se você trabalha com arquitetura de microserviços, provavelmente já passou por isso: você chega de manhã, abre o computador e precisa rodar docker-compose up em três, cinco ou até dez repositórios diferentes para conseguir testar uma única funcionalidade.

O fluxo geralmente é:

cd services/auth -> docker-compose up -d
cd ../api -> docker-compose up -d
cd ../worker -> docker-compose up -d
... e por aí vai.
Além de ser tedioso, gerenciar a ordem de inicialização e o consumo de recursos de cada um desses contextos isolados pode se tornar um pesadelo logístico.

O que é o DCM?
O DCM (Docker Compose Manager) nasceu da necessidade de simplificar esse caos. É uma ferramenta de linha de comando (CLI) escrita em Go, projetada para gerenciar múltiplos contextos Docker Compose a partir de um único ponto de configuração.

Em vez de navegar por pastas, você define um workspace.json e deixa o DCM fazer o trabalho pesado.

Como funciona na prática?
Imagine que você tem a seguinte estrutura:

text
Projetos/
├── api-publica/
├── api-interna/
├── user-grpc/
└── order-grpc/
Com o DCM, você cria um arquivo de configuração central (workspace.json):

{
  "version": "1.0",
  "projects": {
    "api-publica": {
      "path": "./api-publica",
      "description": "API pública REST (gateway externo)"
    },
    "api-interna": {
      "path": "./api-interna",
      "description": "API interna / BFF que fala com gRPC"
    },
    "user-grpc": {
      "path": "./user-grpc",
      "description": "Serviço gRPC de usuários"
    },
    "order-grpc": {
      "path": "./order-grpc",
      "description": "Serviço gRPC de pedidos"
    }
  },
  "groups": {
    "order": {
      "description": "Fluxo de pedido usando todas as camadas (pública + interna + user-grpc + order-grpc)",
      "services": [
        "api-publica",
        "api-interna",
        "user-grpc",
        "order-grpc"
      ]
    },
    "user": {
      "description": "Fluxo simplificado usando apenas api-publica, api-interna e user-grpc (sem pedidos)",
      "services": [
        "api-publica",
        "api-interna",
        "user-grpc"
      ]
    }
  }
}

Agora, em vez de múltiplos terminais, você só precisa de um comando:

bash
dcm up order ou dcm up user
Principais Diferenciais
Inicialização Paralela (Lightning Fast): Graças à concorrência do Go, o DCM inicia os serviços simultaneamente, reduzindo drasticamente o tempo de espera em comparação ao processo manual sequencial.
Abstração por Grupos: Você pode criar grupos como test, backend-only ou full-stack, subindo apenas o necessário para cada tarefa.
Binário Standalone: Sem dependências de runtime (Node, Python, etc). É só baixar o binário e rodar.
Validação de Workspace: O comando dcm validate garante que seus caminhos e arquivos de compose estão corretos antes de tentar subir o ambiente.
Por que Go?
A escolha por Go foi estratégica: queria algo que fosse extremamente leve, rápido para lidar com processos de sistema e que pudesse ser distribuído como um único arquivo executável para Windows, Linux e macOS.

Se você quiser testar ou contribuir, o projeto está aberto no GitHub:

👉 Disneyjr/dcm

Faça o Download https://github.com/Disneyjr/dcm-cli/releases

Carregando publicação patrocinada...
1

DCM é a solução pra um problema que NINGUÉM deveria ter. (Nada contra)

Não vamos fingir que é normal ter "rodar docker-compose up em três, cinco ou até dez repositórios diferentes para conseguir testar uma única funcionalidade."

A ferramenta tá legitimando uma arquitetura bosta com CLI bonitinha. É tipo tentar consertar casa com infiltração botando balde no chão em vez de arrumar o telhado.