Ir para o conteúdo

Configure Database with Docker

Você combina o melhor dos dois mundos:

  • Não instala nada permanentemente na sua máquina, mantendo-a limpa.
  • Usa um banco de dados real e persistente, o que significa que seus dados não serão perdidos quando a API reiniciar.
  • O ambiente fica muito mais próximo de produção, o que é uma ótima prática.

Vamos fazer isso usando o docker-compose, que é a ferramenta ideal para gerenciar um ou mais containers (como nossa API e o banco de dados) de forma simples.

Criação do Arquivo docker-compose.yml

No diretório do projeto, crie um novo arquivo chamado docker-compose.yml com o seguinte conteúdo.

services:
  # Define o serviço do banco de dados MySQL
  mysql_db:
    image: mysql:8.0 # Fixa a versão para evitar upgrades inesperados
    container_name: minimalapi-mysql
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: "admin" # Senha para o superusuário root
      MYSQL_DATABASE: "minimalapi_test_db" # Cria este banco de dados na inicialização
      MYSQL_USER: "test_user" # Cria este usuário para os testes
      MYSQL_PASSWORD: "test_password" # Define a senha para o novo usuário
    ports:
      - "3306:3306" # Mapeia a porta do container para a sua máquina
    volumes:
      - mysql_data:/var/lib/mysql # Garante que os dados sejam persistidos

volumes:
  mysql_data:

O que este arquivo faz?

  • Define um serviço chamado mysql_db usando a imagem oficial do MySQL 8.0.

Como executar

Certifique-se de estar no diretório do projeto, onde deve estar o arquivo docker-compose.yml:

docker-compose up -d

PRONTO! Seu banco de dados MySQL agora está rodando em um container! Você pode pará-lo a qualquer momento com docker-compose down.