Můžete použít jak docker, tak docker-compose. Například pomocí docker compose.
Vytvořte soubor s názvem docker-compose.yml jako:
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"
Dále potřebujete soubor pod ./data
s libovolnými příkazy SQL, které chcete spustit, a .env
soubor, kde definujete proměnné prostředí, které jsem použil v docker-compose.yml
soubor výše jako:${DATABASE}
Vaše .env
soubor:
# MySQL
DATABASE=db_name_here
ROOT_USER=root
ROOT_PASSWORD=root
USER=dev
PASSWORD=dev
Váš soubor s příkazy SQL ke spuštění ./data/init.sql
(soubor můžete pojmenovat, jak chcete)
CREATE DATABASE 'whatever';
DROP DATABASE 'whatever';
-- you can do whatever you want here
Tento soubor bude spuštěn pokaždé, když provedete:
docker-compose up -d db