-
Notifications
You must be signed in to change notification settings - Fork 25
/
build.sh
executable file
·57 lines (46 loc) · 1.34 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
#!/bin/bash
usage() (
cat <<USAGE
Build a docker image for GraphHopper and optionally push it to Docker Hub
Usage:
./build.sh [[--push] <tag>]
./build.sh --help
Argument:
<tag> Build an image for the given graphhopper repository tag [default: master]
Option:
--push Push the image to Docker Hub
--help Print this message
Docker Hub credentials are needed for pushing the image. If they are not provided using the
DOCKERHUB_USER and DOCKERHUB_TOKEN environment variables, then they will be asked interactively.
USAGE
)
if [ "$1" == "--push" ]; then
push="true"
docker login --username "${DOCKERHUB_USER}" --password "${DOCKERHUB_TOKEN}" || exit $?
shift
else
push="false"
fi
if [ $# -gt 1 ] || [ "$1" == "--help" ]; then
usage
exit
fi
if [ ! -d graphhopper ]; then
echo "Cloning graphhopper"
git clone https://github.com/graphhopper/graphhopper.git
else
echo "Pulling graphhopper"
(cd graphhopper; git checkout master; git pull)
fi
imagename="israelhikingmap/graphhopper:${1:-latest}"
if [ "$1" ]; then
echo "Checking out graphhopper:$1"
(cd graphhopper; git checkout --detach "$1")
fi
echo "Building docker image ${imagename}"
docker build . -t "${imagename}"
if [ "${push}" == "false" ]; then
echo "Use \"docker push ${imagename}\" to publish the image on Docker Hub"
else
docker push "${imagename}"
fi