Sie können sowohl docker als auch docker-compose verwenden. Zum Beispiel mit docker compose.
Erstellen Sie eine Datei namens docker-compose.yml wie:
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"
Zusätzlich benötigen Sie eine Datei unter ./data
mit beliebigen SQL-Befehlen, die Sie ausführen möchten, und und .env
Datei, in der Sie die Umgebungsvariablen definieren, die ich in der docker-compose.yml
verwendet habe obige Datei wie:${DATABASE}
Ihre .env
Datei:
# MySQL
DATABASE=db_name_here
ROOT_USER=root
ROOT_PASSWORD=root
USER=dev
PASSWORD=dev
Ihre Datei mit SQL-Befehlen zum Ausführen von ./data/init.sql
(Sie können die Datei beliebig benennen)
CREATE DATABASE 'whatever';
DROP DATABASE 'whatever';
-- you can do whatever you want here
Diese Datei wird jedes Mal ausgeführt, wenn Sie Folgendes tun:
docker-compose up -d db