Você pode usar o docker e o docker-compose. Por exemplo, com docker compose.
Crie um arquivo chamado docker-compose.yml como:
version: '3'
services:
db:
image: percona:5.7
container_name: whatever_you_want
environment:
- MYSQL_DATABASE=${DATABASE}
- MYSQL_ROOT_PASSWORD=${ROOT_PASSWORD}
- MYSQL_USER=${USER}
- MYSQL_PASSWORD=${PASSWORD}
volumes:
- ./data:/docker-entrypoint-initdb.d
ports:
- "3306:3306"
Além disso, você precisa de um arquivo em
./data com quaisquer comandos SQL que você deseja executar e .env arquivo onde você define as variáveis ambientais que usei no docker-compose.yml arquivo acima como:${DATABASE} Seu
.env Arquivo:# MySQL
DATABASE=db_name_here
ROOT_USER=root
ROOT_PASSWORD=root
USER=dev
PASSWORD=dev
Seu arquivo com comandos SQL para executar
./data/init.sql (você pode nomear o arquivo como quiser) CREATE DATABASE 'whatever';
DROP DATABASE 'whatever';
-- you can do whatever you want here
Este arquivo será executado toda vez que você fizer:
docker-compose up -d db