Vous pouvez utiliser docker et docker-compose. Par exemple avec docker compose.
Créez un fichier appelé docker-compose.yml comme :
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"
De plus, vous avez besoin d'un fichier sous ./data
avec les commandes SQL que vous souhaitez exécuter et et .env
fichier où vous définissez les variables d'environnement que j'ai utilisées dans le docker-compose.yml
fichier ci-dessus comme :${DATABASE}
Votre .env
fichier :
# MySQL
DATABASE=db_name_here
ROOT_USER=root
ROOT_PASSWORD=root
USER=dev
PASSWORD=dev
Votre fichier avec les commandes SQL pour exécuter ./data/init.sql
(vous pouvez nommer le fichier comme vous voulez)
CREATE DATABASE 'whatever';
DROP DATABASE 'whatever';
-- you can do whatever you want here
Ce fichier sera exécuté à chaque fois que vous le ferez :
docker-compose up -d db