Bạn có thể sử dụng cả docker và docker-soạn. Ví dụ với docker soạn thư.
Tạo một tệp có tên là docker-compos.yml như:
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"
Ngoài ra, bạn cần một tệp dưới ./data
với bất kỳ lệnh SQL nào bạn muốn chạy và .env
tệp nơi bạn xác định các biến môi trường mà tôi đã sử dụng trong docker-compose.yml
tệp ở trên như:${DATABASE}
.env
của bạn tệp:
# MySQL
DATABASE=db_name_here
ROOT_USER=root
ROOT_PASSWORD=root
USER=dev
PASSWORD=dev
Tệp của bạn với các lệnh SQL để thực thi ./data/init.sql
(bạn có thể đặt tên tệp bất cứ điều gì bạn muốn)
CREATE DATABASE 'whatever';
DROP DATABASE 'whatever';
-- you can do whatever you want here
Tệp này sẽ được thực thi mỗi khi bạn thực hiện:
docker-compose up -d db