-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.sh
executable file
·95 lines (74 loc) · 1.84 KB
/
build.sh
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
#!/usr/bin/env bash
buildServiceImage() {
servicename=$1
echo "Building Service image"
if [ "${servicename}" = "" ]; then
echo "No service specified"
exit
fi
#if [ ! -f service/${servicename}/${servicename} ]; then
echo "Compiling ${servicename}"
cd service/${servicename}
go build
if [ $? -ne 0 ]; then
echo "Build of ${servicename} failed"
exit
fi
echo "Done"
#fi
#if [ -f service/${serivicename}/${serivicename} ]; then
echo "Building docker image"
imageName=${servicename}_image
echo "Killing any running container"
docker rm -f ${servicename}
rm -f /opt/docker/dnsmasq.d/0host_${servicename}
echo "Remove existing image"
docker rmi -f ${imageName}
docker build --force-rm=true -t ${imageName} .
echo "Done"
#fi
cd ../..
}
runService () {
servicename=$1
options=$2
daemonize=$3
imageName=${servicename}_image
runOpts="-d"
if [ "${daemonize}" = "0" ]; then
runOpts="-i"
fi
echo $imageName
if [ "$servicename" = "" ]; then
echo "No service specified"
exit
fi
container=${servicename}
echo "Running ${servicename}"
docker run ${runOpts} -h ${container} --dns=172.17.42.1 ${options} --dns-search="docker.docker" --name ${container} $imageName
echo "Updating dns"
new_ip=$(docker inspect --format='{{.NetworkSettings.IPAddress}}' $servicename)
echo "IP of ${container} is ${new_ip}"
echo "host-record=${container}.docker.docker,${new_ip}" > /opt/docker/dnsmasq.d/0host_$container
echo "Done"
}
buildAndRun() {
servicename=$1
if [ -a "$servicename" ]; then
echo "No Service specified. Exiting"
exit
fi
buildServiceImage ${servicename}
runService ${servicename}
}
declare -a services=('queryengine' 'price')
if [ $# -eq 0 ]; then
for SERVICE in ${services[@]}
do
echo "Build and Run ${SERVICE}"
buildAndRun $SERVICE
done
else
buildAndRun $1
fi
sudo service dnsmasq restart