-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathMakefile
More file actions
178 lines (156 loc) · 5.41 KB
/
Makefile
File metadata and controls
178 lines (156 loc) · 5.41 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
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
golang-version ?= 1.14.2
# golang-arch ?= $(shell uname -m)
protobuf-version ?= 3.11.4
protobuf-arch ?= $(shell uname -m)
mariadb-version ?= 10.3
.PHONY: build
build: build-net build-tls build-backend build-godev
.PHONY: build-net
build-net:
@echo "Setting up dr3dev docker network ..."
docker network create --attachable dr3dev || true
.PHONY: build-tls
build-tls:
@echo "Building CFSSL container image ..."
DOCKER_BUILDKIT=1 docker build --build-arg MYUID=$(shell id -u) --build-arg MYGID=$(shell id -g) -t dr3dev-tls:latest ./docker/tls/
.PHONY: build-backend
build-backend:
@echo "Building MariaDB container image ..."
DOCKER_BUILDKIT=1 docker build --build-arg MYUID=$(shell id -u) --build-arg MYGID=$(shell id -g) --build-arg MARIADB_VERSION=$(mariadb-version) -t dr3dev-db:$(mariadb-version) ./docker/backend/db/
@echo "Building Minio container image ..."
DOCKER_BUILDKIT=1 docker build --build-arg MYUSER=$(shell id -un) --build-arg MYUID=$(shell id -u) --build-arg MYGID=$(shell id -g) -t dr3dev-minio:latest ./docker/backend/minio/
.PHONY: build-godev
build-godev:
@echo "Building godev Environment container image ..."
DOCKER_BUILDKIT=1 docker build \
--build-arg MYUSER=$(shell id -un) \
--build-arg MYUID=$(shell id -u) \
--build-arg MYGID=$(shell id -g) \
--build-arg DOCKERGID=$(shell cat /etc/group | grep docker | cut -d: -f3) \
--build-arg DR3DEV=$(PWD) \
--build-arg GOLANG_VERSION=$(golang-version) \
--build-arg PROTOBUF_VERSION=$(protobuf-version) \
--build-arg PROTOBUF_ARCH=$(protobuf-arch) \
-t dr3dev-godev:$(golang-version) ./docker/godev/
.PHONY: start
start: start-tls start-backend start-godev
.PHONY: start-tls
start-tls:
@echo "Starting CFSSL service ..."
mkdir -vp files/tls/ca
docker-compose -f docker/tls/docker-compose.yml up -d
.PHONY: start-backend
start-backend:
@echo "Starting Minio and MariaDB ..."
mkdir -vp files/db/data
mkdir -vp files/minio/data
mkdir -vp files/tls/{mariadb,minio}
files/tls/sh/gencert.sh mariadb
files/tls/sh/gencert.sh minio
MARIADB_VERSION=$(mariadb-version) docker-compose -f docker/backend/docker-compose.yml up -d
.PHONY: start-godev
start-godev:
mkdir -vp files/tls/godev
files/tls/sh/gencert.sh godev
@echo "Starting [complete] Development Environemnt ..."
mkdir -vp files/golang/gopath
ifdef ghuser
echo "$(ghuser)" > files/golang/gopath/dr3env.ghuser
endif
ifdef gitname
echo "$(gitname)" > files/golang/gopath/dr3env.gitname
endif
ifdef gitmail
echo "$(gitmail)" > files/golang/gopath/dr3env.gitmail
endif
ifdef offline
touch files/golang/gopath/offline
endif
ifndef offline
rm -f files/golang/gopath/offline
endif
mkdir -vp files/golang/goroot
mkdir -vp files/golang/protoc
mkdir -vp files/vimplug
mkdir -vp files/vscode
mkdir -vp files/node
GOLANG_VERSION=$(golang-version) docker-compose -f docker/godev/docker-compose.yml run godev
.PHONY: stop
stop: stop-godev stop-backend stop-tls
.PHONY: stop-tls
stop-tls:
@echo "Stopping CFSSL service ..."
docker-compose -f docker/tls/docker-compose.yml down
.PHONY: stop-backend
stop-backend:
@echo "Stopping Minio and MariaDB ..."
MARIADB_VERSION=$(mariadb-version) docker-compose -f docker/backend/docker-compose.yml down
.PHONY: stop-godev
stop-godev:
@echo "Stopping [complete] Development Environemnt ..."
GOLANG_VERSION=$(golang-version) docker-compose -f docker/godev/docker-compose.yml stop godev
.PHONY: clean
clean: stop clean-img clean-net clean-tls clean-backend clean-godev
.PHONY: clean-img
clean-img:
@echo "Cleaning up all docker images (godev, minio & mariadb) ..."
docker image rm dr3dev-godev:$(golang-version) -f
docker image rm dr3dev-minio:latest -f
docker image rm dr3dev-db:$(mariadb-version) -f
docker image rm dr3dev-tls:latest -f
.PHONY: clean-net
clean-net:
@echo "Cleaning up dr3dev docker network ..."
docker network rm dr3dev || true
.PHONY: clean-tls
clean-tls:
@echo "Cleaning up TLS files (CA) ..."
rm -rvf files/tls/ca
.PHONY: clean-backend
clean-backend:
@echo "Cleaning up backend files (minio data and mariadb datafiles) ..."
rm -rvf files/db/data
rm -rvf files/minio/data
rm -rvf files/tls/{mariadb,minio}
.PHONY: clean-godev
clean-godev:
@echo "Cleaning up Go dev env (golang and vim plugins) ..."
sudo rm -rvf files/golang
rm -rvf files/vimplug
rm -rvf files/vscode
rm -rvf files/node
rm -rvf files/tls/godev
.PHONY: status
status:
@echo "-- dr3dev - Defined Networks: ---------------------------"
@echo ""
@docker network ls -f name=dr3dev
@echo ""
@echo "-- dr3dev - Built Images: -------------------------------"
@echo ""
@docker image ls | grep dr3dev || echo -e "No built images\n"
@echo ""
@echo "-- dr3dev - Running Containers: -------------------------"
@echo ""
@docker ps | grep dr3dev || echo -e "No running containers\n"
.PHONY: help
help:
@echo "Possible Arguments:"
@echo ""
@echo "ghuser: Setting your GitHub user will automate DRLMv3 GitHub repos setup"
@echo " in-place with upstream remotes, git-flow init, ..."
@echo " Fork of all DRLMv3 repos must be done from your GitHub account in browser."
@echo " example:"
@echo " make start-all ghuser=didacog"
@echo ""
@echo "gitname: Set the global git config user.name settings."
@echo " example:"
@echo " make start-all gitname='Didac Oliveira'"
@echo ""
@echo "gitmail: Set the global git config user.mail settings."
@echo " example:"
@echo " make start-all gitmail=didac@drlm.org"
@echo ""
@echo "offline: Runs dr3dev offline"
@echo " example:"
@echo " make start-all offline=true"