Du kan använda både docker och docker-compose. Till exempel med docker compose.
Skapa en fil som heter 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"
Dessutom behöver du en fil under ./data
med vilka SQL-kommandon du vill köra och och .env
fil där du definierar miljövariablerna som jag använde i docker-compose.yml
fil ovan som:${DATABASE}
Din .env
fil:
# MySQL
DATABASE=db_name_here
ROOT_USER=root
ROOT_PASSWORD=root
USER=dev
PASSWORD=dev
Din fil med SQL-kommandon för att köra ./data/init.sql
(du kan namnge filen vad du vill)
CREATE DATABASE 'whatever';
DROP DATABASE 'whatever';
-- you can do whatever you want here
Den här filen kommer att köras varje gång du gör:
docker-compose up -d db