Build the image:
docker build -t unique-migrate -f docker/migrate/Dockerfile .Run migrations (example):
docker run --rm \
-e DATABASE_URL='mysql://root:password@tcp(db-host:3306)/your_db?multiStatements=true' \
unique-migrateEnvironment:
DATABASE_URL: required, formatmysql://user:pass@tcp(host:port)/dbname?multiStatements=trueMAX_RETRIES: optional, default60SLEEP: optional retry sleep seconds, default2
docker-compose service example:
version: "3.8"
services:
db:
image: mysql:8.0
environment:
- MYSQL_ROOT_PASSWORD=password
- MYSQL_DATABASE=your_db
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
interval: 5s
timeout: 5s
retries: 10
migrate:
image: unique-migrate
depends_on:
db:
condition: service_healthy
environment:
- DATABASE_URL=mysql://root:password@tcp(db:3306)/your_db?multiStatements=true
restart: "no"