-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinput.sh
More file actions
executable file
·53 lines (44 loc) · 1.4 KB
/
Copy pathinput.sh
File metadata and controls
executable file
·53 lines (44 loc) · 1.4 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
#!/bin/bash
DOCKER_IMAGE='njohnson/openvpn'
_check() {
curl -k 'https://localhost:8080' -so /dev/null \
&& return 0 \
|| return 1
}
installDocker() {
local deb_dir="/etc/apt/sources.list.d"
local docker_deb="$deb_dir/docker.list"
apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D \
&& sudo mkdir -p "$deb_dir" \
&& touch "$docker_deb" \
&& echo 'deb https://apt.dockerproject.org/repo ubuntu-trusty main' >> "$docker_deb" \
&& apt-get update \
&& apt-cache policy docker-engine \
&& apt-get install linux-image-extra-$(uname -r) -y \
&& apt-get install docker-engine -y \
&& return 0 \
|| { echo "WARNINGDOCKER INSTALL FAILED"; exit 1; }
}
_killContainers() {
docker ps -a | awk '{print $1}' | grep -v 'CONTAINER' | xargs -I {} docker rm -f {};
}
_runDockerVpn() {
local container_id=$(docker run -d --privileged -p 1194:1194/udp -p 443:443/tcp "$DOCKER_IMAGE")
docker run -d -p 8080:8080 --name tmp-ssl --volumes-from "$container_id" "$DOCKER_IMAGE" serveconfig
}
_waitForSetupCompletion() {
_check;
while [ $? -eq 1 ]; do
echo 'Waiting for connection...'
sleep 2
_check
done
}
startDockerVpn() {
_killContainers \
&& _runDockerVpn \
&& _waitForSetupCompletion
}
echo "Starting docker-vpn setup!"
installDocker && startDockerVpn
echo "docker-vpn setup complete!"