-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
128 lines (84 loc) · 2.16 KB
/
Makefile
File metadata and controls
128 lines (84 loc) · 2.16 KB
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
ifneq ($(wildcard .env),'')
include .env
endif
SHELL = /bin/bash
.PHONY: PHONY
PHONY:
OS := $(shell uname)
ifeq ($(OS), Linux)
dc = sudo docker-compose
su-rm = sudo rm
xargs-seperator = -d '\n'
else
dc = docker-compose
su-rm = rm
xargs-seperator = -0
endif
_env/docker-compose.env:
@echo "### Environment config not setup. ###"
@echo "Take a look at _env/README for instructions."
@exit 1
_env/mysql-dump.sql:
# Create an empty file to avoid docker creating it as a directory when
# setting up the binding.
touch _env/mysql-dump.sql
_data/app:
mkdir -p _data/app
_data/db/data:
mkdir -p _data/db/data
.env: _env/docker-compose.env
ln -s _env/docker-compose.env .env
docker-images: PHONY .env
$(dc) build $(s)
start: PHONY .env _env/mysql-dump.sql _data/app _data/db/data
$(dc) up $(s) || $(MAKE) stop s=$(s)
start-detached: PHONY .env _env/mysql-dump.sql _data/app _data/db/data
$(dc) up --detach $(s)
restart: PHONY .env _env/mysql-dump.sql _data/app _data/db/data
$(dc) restart $(s)
stop: PHONY .env
$(dc) stop $(s)
rebuild-app-service: PHONY .env _env/mysql-dump.sql _data/app _data/db/data
$(MAKE) docker-images s=app
$(MAKE) stop s=app
$(MAKE) start-detached s=app
tear-it-all-down: PHONY
@echo "### Tearing it all down... ###"
$(MAKE) clean-docker-deeply
$(MAKE) clean-data
$(MAKE) clean-build
$(MAKE) clean-ml-of-atd
rm -f .env
clean-docker-containers: PHONY
$(dc) down --volumes || exit 0
rm -f .env
clean-docker-deeply: PHONY
$(dc) down --volumes --rmi all || exit 0
$(su-rm) -rf .docker
rm -f .env
clean-data: PHONY
rm -rf _data
shell: PHONY .env
$(dc) exec $(s) sh -c "fish || bash || sh; exit 0"
app-make = $(dc) exec --user=opam --workdir=$(APP_PREFIX_DIR)/app app make
clean-local-opam-switch: PHONY .env
$(app-make) $@
clean-build: PHONY .env
$(app-make) $@
ml-of-atd: PHONY .env
$(app-make) $@
clean-ml-of-atd: PHONY
$(app-make) $@
test: PHONY .env
$(app-make) $@
main.exe: PHONY .env
$(app-make) $@
rebuild: PHONY .env
$(app-make) $@
run: PHONY .env
$(app-make) $@
# Build and run main.exe
brun: PHONY .env
$(app-make) $@
follow-db-logs: PHONY .env
$(dc) exec db sh -c "tail -f /var/log/mysql/*.log"