-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocker_build
executable file
·81 lines (72 loc) · 1.84 KB
/
docker_build
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
#!/bin/bash
OS=$1
if [ ! $OS ]; then
echo "choose container OS"
echo -e "\tu for ubuntu:14.04"
echo -e "\tc for centos:6.8"
echo -e "\ta for alpine:3.5"
echo -n "default [a]:"
read OS
if [[ u = $OS ]]; then
OS="ubuntu:14.04"
elif [[ c = $OS ]]; then
OS="centos:6.8"
else
OS="alpine:3.5"
fi
echo "> container OS set to $OS"
fi
NAME=$2
if [ ! $NAME ]; then
echo -n "please input container name:"
read NAME
if [ ! $NAME ]; then
echo "container name not set" && exit
fi
if [ $(docker ps -a --format {{.Names}} | grep -c "^${NAME}$") != 0 ]; then
echo "ERROR container name $NAME is being use" && exit
fi
echo "> container name set to $NAME"
fi
TAG=$3
if [ ! $TAG ]; then
echo -n "please input docker image name:"
read TAG
if [ ! $TAG ]; then
echo "ERROR image name not set" && exit
fi
echo "> image name set to $TAG"
fi
echo "docker build -t $TAG ."
docker run -itd --name $NAME --cap-add=NET_ADMIN $OS sh > /dev/null
docker cp source/ $NAME:/root
if [[ a = $OS ]]; then
docker exec -it $NAME /bin/sh /root/source/build
else
docker exec -it $NAME /root/source/build
fi
docker exec -it $NAME /bin/sh /root/source/build
docker stop $NAME > /dev/null
docker commit $NAME $TAG
docker rm $NAME > /dev/null
echo "done."
# docker_gen_client
echo "#!/bin/bash
CLIENT=\$1
if [ ! \$CLIENT ]; then
echo -n \"please input client name[client1]:\"
read CLIENT
if [ ! \$CLIENT ]; then
CLIENT=client1
fi
fi
docker exec -it $NAME /root/source/gen_client \$CLIENT
docker cp $NAME:/root/source/\$CLIENT.tar.gz .
" > ${NAME}.gen_client
# docker_run
echo "#!/bin/bash
docker run -itd --name $NAME --cap-add=NET_ADMIN -p 1196:1194/udp $TAG /root/source/start
" > ${NAME}.docker_run
chmod 705 ${NAME}.gen_client ${NAME}.docker_run
echo "./${NAME}.docker_run to start openvpn server, and"
echo "./${NAME}.gen_client to create client config file"