-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathMakefile
More file actions
171 lines (142 loc) · 5.96 KB
/
Makefile
File metadata and controls
171 lines (142 loc) · 5.96 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
SHELL:=/bin/bash
BASEPATH=$(CURDIR)
BUILDPATH=$(BASEPATH)/make
MAKEPATH=$(BASEPATH)/make
# gradle parameters
GRADLECMD=$(shell which gradle)
BUILDARGS=
# docker parameters
DOCKERCMD=$(shell which docker)
DOCKERBUILD=$(DOCKERCMD) build
DOCKERRMIMAGE=$(DOCKERCMD) rmi
DOCKERPULL=$(DOCKERCMD) pull
DOCKERIMAGES=$(DOCKERCMD) images
DOCKERSAVE=$(DOCKERCMD) save
DOCKERCOMPOSECMD=$(shell which docker-compose)
DOCKERTAG=$(DOCKERCMD) tag
DOCKERRUN=$(DOCKERCMD) run
DOCKERCOMPOSEFILEPATH=$(MAKEPATH)
DOCKERCOMPOSEFILENAME=docker-compose.yml
DOCKERCOMPOSE_FILE_OPT=-f $(DOCKERCOMPOSEFILEPATH)/$(DOCKERCOMPOSEFILENAME)
REGISTRYSERVER=
DOCKER_NAMESPACE=""
VERSIONTAG=v0.0.4
# pull/push image
PUSHSCRIPTPATH=$(MAKEPATH)
PUSHSCRIPTNAME=pushimage.sh
REGISTRYUSER=""
REGISTRYPASSWORD=""
CORE=core
BINPATH_CORE=$(BASEPATH)/$(CORE)/build/libs
DOCKERFILEPATH_CORE=$(BUILDPATH)/$(CORE)
DOCKERFILENAME_CORE=Dockerfile
DOCKERIMAGENAME_CORE=$(DOCKER_NAMESPACE)/bookinfo-$(CORE)
RATING=rating
BINPATH_RATING=$(BASEPATH)/$(RATING)/build/libs
DOCKERFILEPATH_RATING=$(BUILDPATH)/$(RATING)
DOCKERFILENAME_RATING=Dockerfile
DOCKERIMAGENAME_RATING=$(DOCKER_NAMESPACE)/bookinfo-$(RATING)
ORDER=order
BINPATH_ORDER=$(BASEPATH)/$(ORDER)/build/libs
DOCKERFILEPATH_ORDER=$(BUILDPATH)/$(ORDER)
DOCKERFILENAME_ORDER=Dockerfile
DOCKERIMAGENAME_ORDER=$(DOCKER_NAMESPACE)/bookinfo-$(ORDER)
DB=db
DOCKERFILEPATH_DB=$(BUILDPATH)/$(DB)
DOCKERFILENAME_DB=Dockerfile
DOCKERIMAGENAME_DB=$(DOCKER_NAMESPACE)/bookinfo-$(DB)
PAYMENT=payment
BINPATH_PAYMENT=$(BASEPATH)/$(PAYMENT)/build/libs
DOCKERFILEPATH_PAYMENT=$(BUILDPATH)/$(PAYMENT)
DOCKERFILENAME_PAYMENT=Dockerfile
DOCKERIMAGENAME_PAYMENT=$(DOCKER_NAMESPACE)/bookinfo-$(PAYMENT)
build-common:
@echo "common:build $(BUILDARGS)"
@$(GRADLECMD) common:build $(BUILDARGS)
pre-build: build-common
@echo "common: publish"
@$(GRADLECMD) common:publish
build-core:
@echo "core:build $(BUILDARGS)"
@$(GRADLECMD) core:build $(BUILDARGS)
cp $(BINPATH_CORE)/* $(DOCKERFILEPATH_CORE)
@echo "build container for core..."
$(DOCKERBUILD) -f $(DOCKERFILEPATH_CORE)/$(DOCKERFILENAME_CORE) -t $(DOCKERIMAGENAME_CORE):$(VERSIONTAG) .
@echo "Done."
build-rating:
@echo "rating:build $(BUILDARGS)"
@$(GRADLECMD) rating:build $(BUILDARGS)
cp $(BINPATH_RATING)/* $(DOCKERFILEPATH_RATING)
@echo "build container for rating..."
$(DOCKERBUILD) -f $(DOCKERFILEPATH_RATING)/$(DOCKERFILENAME_RATING) -t $(DOCKERIMAGENAME_RATING):$(VERSIONTAG) .
@echo "Done."
build-order:
@echo "order:build $(BUILDARGS)"
@$(GRADLECMD) order:build $(BUILDARGS)
cp $(BINPATH_ORDER)/* $(DOCKERFILEPATH_ORDER)
@echo "build container for order..."
$(DOCKERBUILD) -f $(DOCKERFILEPATH_ORDER)/$(DOCKERFILENAME_ORDER) -t $(DOCKERIMAGENAME_ORDER):$(VERSIONTAG) .
@echo "Done."
build-db:
@echo "build container for db..."
$(DOCKERBUILD) -f $(DOCKERFILEPATH_DB)/$(DOCKERFILENAME_DB) -t $(DOCKERIMAGENAME_DB):$(VERSIONTAG) .
@echo "Done."
build-payment:
@echo "payment:build $(BUILDARGS)"
@$(GRADLECMD) payment:build $(BUILDARGS)
cp $(BINPATH_PAYMENT)/* $(DOCKERFILEPATH_PAYMENT)
@echo "build container for payment..."
$(DOCKERBUILD) -f $(DOCKERFILEPATH_PAYMENT)/$(DOCKERFILENAME_PAYMENT) -t $(DOCKERIMAGENAME_PAYMENT):$(VERSIONTAG) .
@echo "Done."
build: pre-build build-core build-rating build-order build-db build-payment
.PHONY: push-core push-rating push-order push-payment push-image
push-core:
@echo "pushing bookinfo core image..."
@$(DOCKERTAG) $(DOCKERIMAGENAME_CORE):$(VERSIONTAG) $(REGISTRYSERVER)/$(DOCKERIMAGENAME_CORE):$(VERSIONTAG)
@$(PUSHSCRIPTPATH)/$(PUSHSCRIPTNAME) $(REGISTRYSERVER)/$(DOCKERIMAGENAME_CORE):$(VERSIONTAG) \
$(REGISTRYUSER) $(REGISTRYPASSWORD) $(REGISTRYSERVER)
@$(DOCKERRMIMAGE) $(REGISTRYSERVER)/$(DOCKERIMAGENAME_CORE):$(VERSIONTAG)
push-rating:
@echo "pushing bookinfo rating image..."
@$(DOCKERTAG) $(DOCKERIMAGENAME_RATING):$(VERSIONTAG) $(REGISTRYSERVER)/$(DOCKERIMAGENAME_RATING):$(VERSIONTAG)
@$(PUSHSCRIPTPATH)/$(PUSHSCRIPTNAME) $(REGISTRYSERVER)/$(DOCKERIMAGENAME_RATING):$(VERSIONTAG) \
$(REGISTRYUSER) $(REGISTRYPASSWORD) $(REGISTRYSERVER)
@$(DOCKERRMIMAGE) $(REGISTRYSERVER)/$(DOCKERIMAGENAME_RATING):$(VERSIONTAG)
push-order:
@echo "pushing bookinfo order image..."
@$(DOCKERTAG) $(DOCKERIMAGENAME_ORDER):$(VERSIONTAG) $(REGISTRYSERVER)/$(DOCKERIMAGENAME_ORDER):$(VERSIONTAG)
@$(PUSHSCRIPTPATH)/$(PUSHSCRIPTNAME) $(REGISTRYSERVER)/$(DOCKERIMAGENAME_ORDER):$(VERSIONTAG) \
$(REGISTRYUSER) $(REGISTRYPASSWORD) $(REGISTRYSERVER)
@$(DOCKERRMIMAGE) $(REGISTRYSERVER)/$(DOCKERIMAGENAME_ORDER):$(VERSIONTAG)
push-db:
@echo "pushing bookinfo payment image..."
@$(DOCKERTAG) $(DOCKERIMAGENAME_DB):$(VERSIONTAG) $(REGISTRYSERVER)/$(DOCKERIMAGENAME_DB):$(VERSIONTAG)
@$(PUSHSCRIPTPATH)/$(PUSHSCRIPTNAME) $(REGISTRYSERVER)/$(DOCKERIMAGENAME_DB):$(VERSIONTAG) \
$(REGISTRYUSER) $(REGISTRYPASSWORD) $(REGISTRYSERVER)
@$(DOCKERRMIMAGE) $(REGISTRYSERVER)/$(DOCKERIMAGENAME_DB):$(VERSIONTAG)
push-payment:
@echo "pushing bookinfo payment image..."
@$(DOCKERTAG) $(DOCKERIMAGENAME_PAYMENT):$(VERSIONTAG) $(REGISTRYSERVER)/$(DOCKERIMAGENAME_PAYMENT):$(VERSIONTAG)
@$(PUSHSCRIPTPATH)/$(PUSHSCRIPTNAME) $(REGISTRYSERVER)/$(DOCKERIMAGENAME_PAYMENT):$(VERSIONTAG) \
$(REGISTRYUSER) $(REGISTRYPASSWORD) $(REGISTRYSERVER)
@$(DOCKERRMIMAGE) $(REGISTRYSERVER)/$(DOCKERIMAGENAME_PAYMENT):$(VERSIONTAG)
push-image: push-core push-rating push-order push-db push-payment
.PHONY: start
start:
@echo "loading book msa images..."
DOCKERIMAGENAME_CORE=$(DOCKERIMAGENAME_CORE) DOCKERIMAGENAME_RATING=$(DOCKERIMAGENAME_RATING) \
DOCKERIMAGENAME_ORDER=$(DOCKERIMAGENAME_ORDER) DOCKERIMAGENAME_PAYMENT=$(DOCKERIMAGENAME_PAYMENT) \
DOCKERIMAGENAME_DB=$(DOCKERIMAGENAME_DB) VERSION=$(VERSIONTAG)\
$(DOCKERCOMPOSECMD) $(DOCKERCOMPOSE_FILE_OPT) up -d
@echo "Start complete."
down:
@echo "stoping book msa instance..."
@$(DOCKERCOMPOSECMD) $(DOCKERCOMPOSE_FILE_OPT) down -v
@echo "Done."
restart: down start
install: build start
clean:
@$(GRADLECMD) core:clean
@$(GRADLECMD) rating:clean
@$(GRADLECMD) order:clean
@$(GRADLECMD) payment:clean