Du kan bruge både docker og docker-compose. For eksempel med docker compose.
Opret en fil kaldet docker-compose.yml som:
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"
Derudover skal du bruge en fil under ./data
med hvilke SQL-kommandoer du vil køre og og .env
fil, hvor du definerer de miljøvariabler, jeg brugte i docker-compose.yml
fil ovenfor som:${DATABASE}
Din .env
fil:
# MySQL
DATABASE=db_name_here
ROOT_USER=root
ROOT_PASSWORD=root
USER=dev
PASSWORD=dev
Din fil med SQL-kommandoer til at udføre ./data/init.sql
(du kan navngive filen, hvad du vil)
CREATE DATABASE 'whatever';
DROP DATABASE 'whatever';
-- you can do whatever you want here
Denne fil vil blive udført hver gang du gør:
docker-compose up -d db