Sobes.tech
Junior

O que é Docker Compose e como é que se usa?

sobes.tech IA

Resposta da IA

O Docker Compose é uma ferramenta para definir e executar aplicações Docker multicontêiner. Permite descrever os serviços da aplicação, as suas dependências e configuração num único ficheiro (geralmente docker-compose.yml). Depois, com um único comando, pode-se iniciar todos os serviços definidos.

Utilização do Docker Compose:

  1. Definição de serviços: No ficheiro docker-compose.yml, descrevem-se os diferentes componentes da aplicação como serviços (por exemplo, servidor web, base de dados, API backend). Para cada serviço, especifica-se a imagem Docker, portas, volumes, variáveis de ambiente e dependências.

    # exemplo de ficheiro docker-compose.yml
    version: '3.8'
    services:
      webapp:
        image: my-webapp
        ports:
          - "80:80"
        volumes:
          - .:/app
      database:
        image: postgres:13
        environment:
          POSTGRES_USER: user
          POSTGRES_PASSWORD: password
    
  2. Iniciar a aplicação: O comando docker-compose up constrói, cria e inicia todos os serviços descritos no ficheiro docker-compose.yml.

    # iniciar todos os serviços em segundo plano
    docker-compose up -d
    
  3. Parar a aplicação: O comando docker-compose down para e remove os contêineres, redes e volumes criados por docker-compose up.

    # parar e remover serviços
    docker-compose down
    

Vantagens principais:

  • Simplificação da configuração: Toda a configuração da aplicação multicontêiner está concentrada num único ficheiro.
  • Reprodutibilidade: É fácil configurar e lançar a aplicação num ambiente idêntico em diferentes máquinas.
  • Gestão do ciclo de vida: Comandos simples para lançar, parar e reiniciar todos os serviços.
  • Testes: É conveniente levantar ambientes de teste com serviços dependentes (bases de dados, filas de mensagens, etc.).

No QA, o Docker Compose é frequentemente utilizado para implementar rapidamente ambientes de teste, simular infraestruturas complexas e garantir a previsibilidade do ambiente de teste.