Puede usar tanto docker como docker-compose. Por ejemplo, con docker componer.
Cree un archivo llamado 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"
Además, necesita un archivo en ./data
con cualquier comando SQL que desee ejecutar y .env
archivo donde defines las variables ambientales que usé en docker-compose.yml
archivo anterior como:${DATABASE}
Tu .env
archivo:
# MySQL
DATABASE=db_name_here
ROOT_USER=root
ROOT_PASSWORD=root
USER=dev
PASSWORD=dev
Su archivo con comandos SQL para ejecutar ./data/init.sql
(puedes nombrar el archivo como quieras)
CREATE DATABASE 'whatever';
DROP DATABASE 'whatever';
-- you can do whatever you want here
Este archivo se ejecutará cada vez que lo haga:
docker-compose up -d db