-
Notifications
You must be signed in to change notification settings - Fork 2
/
Makefile-db
63 lines (55 loc) · 1.97 KB
/
Makefile-db
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# db environment
DB_DOCKERFILE=Dockerfile-db
DB_IMAGE=mysql-database
DB_CONTAINER_NAME=events-database
DB_DATA_DIR=${PWD}/Data
DB_SEED_DIR=${PWD}/Seed
DB_DATABASE=game_night
DB_SEED_FILE=/Seed/${DB_CONTAINER_NAME}.sql
DB_CONTAINER_ID=$(shell docker ps -aq -f 'name=${DB_CONTAINER_NAME}')
DB_HOST=$(shell docker inspect --format '{{ .NetworkSettings.IPAddress }}' ${DB_CONTAINER_ID})
DB_PORT=3306
DB_USER=root
DB_PASSWORD=password
# ===================
# Database Container
# ===================
db_run: db_stop
docker run \
-d \
--name ${DB_CONTAINER_NAME} \
-e MYSQL_ROOT_PASSWORD=${DB_PASSWORD} \
--expose ${DB_PORT} \
-p ${DB_PORT}:${DB_PORT} \
-v ${DB_DATA_DIR}:/var/lib/mysql \
${DB_IMAGE} --character-set-server=utf8mb4 --collation-server=utf8mb4_bin
db_run_clean: db_stop db_clean
docker run --name ${DB_CONTAINER_NAME} \
-e MYSQL_DATABASE=${DB_DATABASE} \
-e MYSQL_ROOT_PASSWORD=${DB_PASSWORD} \
-v ${DB_DATA_DIR}:/var/lib/mysql \
-d --expose ${DB_PORT} ${DB_IMAGE} --character-set-server=utf8mb4 --collation-server=utf8mb4_bin
db_run_seed: db_stop db_clean
docker run \
-d \
--name ${DB_CONTAINER_NAME} \
-e MYSQL_ROOT_PASSWORD=${DB_PASSWORD} \
-e MYSQL_DATABASE=${DB_DATABASE} \
--expose ${DB_PORT} \
-v ${DB_DATA_DIR}:/var/lib/mysql \
-v ${DB_SEED_DIR}:/docker-entrypoint-initdb.d \
${DB_IMAGE} --character-set-server=utf8mb4 --collation-server=utf8mb4_bin
db_connect_bash:
docker exec -it ${DB_CONTAINER_ID} /bin/bash
db_connect_shell:
docker run --name mysql-shell -it \
--rm mysql sh -c 'exec mysql -h${DB_HOST} -P${DB_PORT} -u${DB_USER} -p${DB_PASSWORD} --default-character-set=utf8mb4'
db_dump:
docker run --name mysqldump-shell \
-v ${DB_SEED_DIR}:/Seed \
--rm mysql sh -c 'exec mysqldump -h${DB_HOST} -P${DB_PORT} -u${DB_USER} -p${DB_PASSWORD} ${DB_DATABASE} --default-character-set=utf8mb4 > ${DB_SEED_FILE}'
db_stop:
@docker stop ${DB_CONTAINER_NAME} || true && docker rm ${DB_CONTAINER_NAME} || true
db_clean:
rm -rf ${DB_DATA_DIR}
mkdir -p ${DB_DATA_DIR}