forked from jasonish/evebox
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocker.sh
executable file
·115 lines (91 loc) · 1.96 KB
/
docker.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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#! /bin/sh
set -e
IMAGE="evebox/builder:latest"
docker_build() {
docker build ${CACHE_FROM} --rm \
-t ${IMAGE} \
-f ${DOCKERFILE} .
}
docker_run() {
it=""
if [ -t 1 ] ; then
it="-it"
fi
volumes=""
volumes="${volumes} -v $(pwd):/src"
cache="$(pwd)/.docker_cache"
mkdir -p ${cache}/go
mkdir -p ${cache}/node_modules
mkdir -p ${cache}/npm
mkdir -p ./webapp/node_modules
real_uid=$(id -u)
real_gid=$(id -g)
if [[ "${real_uid}" = "0" ]]; then
image_home="/root"
else
image_home="/home/builder"
fi
volumes="${volumes} -v ${cache}/go:${image_home}/go"
volumes="${volumes} -v ${cache}/npm:${image_home}/npm"
#volumes="${volumes} -v ${cache}/node_modules:/src/webapp/node_modules"
docker run --rm ${it} ${volumes} \
-e REAL_UID="${real_uid}" \
-e REAL_GID="${real_gid}" \
-w /src \
"${IMAGE}" "$@"
}
release() {
DOCKERFILE="./docker/builder/Dockerfile"
docker_build
docker_run "make install-deps dist rpm deb"
}
release_windows() {
DOCKERFILE="./docker/builder/Dockerfile"
docker_build
docker_run \
"make install-deps && GOOS=windows CC=x86_64-w64-mingw32-gcc make dist"
}
release_macos() {
IMAGE="evebox/builder:macos"
DOCKERFILE="./docker/builder-macos/Dockerfile"
docker_build
docker_run \
"make install-deps && GOOS=darwin CC=o64-clang make dist"
}
case "$1" in
release)
release
;;
release-windows)
release_windows
;;
release-macos)
release_macos
;;
install-deps)
docker_build
docker_run make install-deps
;;
make)
docker_build
docker_run make
;;
shell)
docker_build
docker_run
;;
*)
if [[ "$1" ]]; then
docker_build
docker_run "$@"
else
cat <<EOF
usage: ./docker.sh <command>
Commands:
release Build x86_64 Linux release - zip/deb/rpm.
release-windows Build x86_64 Windows release zip.
release-macos Build x86_64 MacOS release zip.
EOF
fi
;;
esac