Puoi usare sia docker che docker-compose. Ad esempio con la finestra mobile componi.
Crea un file chiamato docker-compose.yml come:
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"
Inoltre hai bisogno di un file sotto ./data
con qualsiasi comando SQL tu voglia eseguire e e .env
file in cui definisci le variabili ambientali che ho usato in docker-compose.yml
file sopra come:${DATABASE}
Il tuo .env
file:
# MySQL
DATABASE=db_name_here
ROOT_USER=root
ROOT_PASSWORD=root
USER=dev
PASSWORD=dev
Il tuo file con i comandi SQL per eseguire ./data/init.sql
(puoi nominare il file come vuoi)
CREATE DATABASE 'whatever';
DROP DATABASE 'whatever';
-- you can do whatever you want here
Questo file verrà eseguito ogni volta che fai:
docker-compose up -d db