1
1
#! /usr/bin/env bash
2
2
3
- SWARM_VERSION=" ${SWARM_VERSION:- } "
4
- FAST_BUILD=" ${FAST_BUILD:- } "
5
-
6
- # # fix coverity issue
7
- sudo apt-get install -y -q ca-certificates
8
- echo -n | openssl s_client -connect scan.coverity.com:443 | sed -ne ' /-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | sudo tee -a /etc/ssl/certs/ca-certificates.crt
9
- # #
10
-
11
- if [ " $FAST_BUILD " == " true" ]; then
12
- echo " Fast build, skipping docker installations."
13
- exit 0
14
- fi
15
-
16
3
set -exu
17
4
18
- sudo ip a ls
19
- sudo ip r ls
20
- sudo ss -antpl
5
+ SWARM_VERSION= " ${SWARM_VERSION :- } "
6
+ DOCKER_VERSION= " ${DOCKER_VERSION :- } "
7
+ DOCKER_HOST= " ${DOCKER_HOST :- } "
21
8
22
9
export HOST_PORT=" 2375"
23
- export SWARM_PORT=" 2377"
24
- export HOST_IP=" $( ip a show dev eth0 | grep " inet\b" | awk ' {print $2}' | cut -d/ -f1) "
25
- # because of swarm use docker-engine directly
26
- export PRE_DOCKER_HOST=" $DOCKER_HOST "
27
- export DOCKER_HOST=" tcp://127.0.0.1:${HOST_PORT} "
28
-
29
10
30
- docker info
31
- docker version
32
-
33
- sudo -E apt-get update
34
- sudo -E apt-get install -q -y wget
35
- sudo -E apt-get -q -y --purge remove docker-engine
36
- sudo -E apt-cache policy docker-engine
37
-
38
- ./.travis/get-docker-com.sh
39
-
40
- sudo -E stop docker
41
-
42
- # mkdir "${HOME}/.cache" || :
43
- # pushd "${HOME}/.cache"
44
- # wget -N "https://apt.dockerproject.org/repo/pool/main/d/docker-engine/docker-engine_${DOCKER_VERSION}_amd64.deb"
45
- # sudo apt-get -f install
46
- # sudo dpkg -i "$(ls *${DOCKER_VERSION}*)"
47
- # popd
48
11
rm -f " docker-java/src/test/resources/logback.xml"
49
- # rm -f "src/test/resources/travis-logback.xml"
50
12
mv " docker-java/src/test/resources/travis-logback.xml" " docker-java/src/test/resources/logback-test.xml"
51
13
52
- # https://github.com/docker/docker/issues/18113
53
- sudo rm /var/lib/docker/network/files/local-kv.db
54
-
55
- sudo cat /etc/default/docker
14
+ if [[ -n $DOCKER_VERSION ]]; then
15
+ sudo -E apt-get -q -y --purge remove docker-engine docker-ce
56
16
57
- cat << EOF | sudo tee /etc/default/docker
58
- DOCKER_OPTS="\
59
- --dns 8.8.8.8 \
60
- --dns 8.8.4.4 \
61
- -D \
62
- -H=unix:///var/run/docker.sock \
63
- -H=tcp://0.0.0.0:${HOST_PORT} \
64
- --label=com.github.dockerjava.test=docker-java \
65
- "
66
- EOF
17
+ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
18
+ sudo add-apt-repository " deb [arch=amd64] https://download.docker.com/linux/ubuntu $( lsb_release -cs) stable"
19
+ sudo apt-get update
20
+ sudo apt-cache madison docker-ce
21
+ sudo apt-get install " docker-ce=$DOCKER_VERSION "
22
+ fi
67
23
68
- sudo cat /etc/default/docker
69
- sudo bash -c ' :> /var/log/upstart/docker.log'
70
-
71
- date
72
- sudo -E start docker
73
-
74
- tries=20
75
- sleep=5
76
- for i in $( seq 1 $tries ) ; do
77
- if sudo grep " API listen on" /var/log/upstart/docker.log ; then
78
- echo " Docker started. Delay $(( $i * $sleep )) "
79
- break
80
- elif [[ $i -ge $tries ]]; then
81
- echo " Docker didn't start. Exiting!"
82
- sudo cat /var/log/upstart/docker.log
83
- exit 1
84
- else
85
- echo " Docker didn't start, sleeping for 5 secs..."
86
- sleep $sleep
87
- fi
88
- done
24
+ if [[ -n $DOCKER_HOST ]]; then
25
+ sudo mkdir -p /etc/systemd/system/docker.service.d/
89
26
27
+ echo "
28
+ [Service]
29
+ ExecStart=
30
+ ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:${HOST_PORT}
31
+ " | sudo tee -a /etc/systemd/system/docker.service.d/override.conf
90
32
91
- sudo ss -antpl
33
+ sudo systemctl daemon-reload
34
+ sudo service docker restart || sudo journalctl -xe
35
+ sudo service docker status
36
+ fi
92
37
93
- curl -V
38
+ while (! docker ps ); do
39
+ # Docker takes a few seconds to initialize
40
+ echo " Waiting for Docker to launch..."
41
+ sleep 1
42
+ done
94
43
95
- docker version || sudo cat /var/log/upstart/docker.log
44
+ docker version
96
45
docker info
97
46
98
47
set +u
@@ -106,57 +55,38 @@ registry.url=https://index.docker.io/v1/
106
55
EOF
107
56
108
57
if [[ -n $SWARM_VERSION ]]; then
109
- # export SWARM_PORT="${PRE_DOCKER_HOST##*:}"
58
+ export SWARM_PORT=" 2377"
59
+ export HOST_IP=" $( ip a show dev eth0 | grep " inet\b" | awk ' {print $2}' | cut -d/ -f1) "
110
60
111
61
docker pull swarm
112
62
113
- # # kv store https://docs.docker.com/v1.11/engine/userguide/networking/get-started-overlay/
114
- # docker run -d \
115
- # -p "8500:8500" \
116
- # -h "consul" \
117
- # --name=consul \
118
- # progrium/consul -server -bootstrap
119
- #
120
- # sleep 5
121
-
122
- # SWARM_TOKEN=$(docker run swarm c)
123
-
124
- # docker run \
125
- # -d \
126
- # --name=swarm_manager \
127
- # -p ${SWARM_PORT}:2375 \
128
- # "swarm:${SWARM_VERSION}" \
129
- # manage token://${SWARM_TOKEN}
130
-
131
63
docker run \
132
64
-d \
133
65
-p ${SWARM_PORT} :2375 \
134
66
--name=swarm_manager \
135
- swarm manage --engine-refresh-min-interval " 3s " --engine-refresh-max-interval " 6s " " nodes:// ${HOST_IP} : ${HOST_PORT} "
136
- # swarm manage --engine-refresh-min-interval "3s" --engine-refresh-max-interval "6s" "consul ://${HOST_IP}:8500 "
67
+ " swarm: ${SWARM_VERSION} " \
68
+ manage --engine-refresh-min-interval " 3s" --engine-refresh-max-interval " 6s" " nodes ://${HOST_IP} :${HOST_PORT} "
137
69
138
70
# join engine to swarm
139
71
docker run \
140
72
-d \
141
73
" --name=swarm_join" \
142
74
" swarm:${SWARM_VERSION} " \
143
75
join --advertise=" ${HOST_IP} :${HOST_PORT} " --delay=" 0s" --heartbeat " 5s" " nodes://${HOST_IP} :${HOST_PORT} "
144
- # join --advertise="${HOST_IP}:${HOST_PORT}" --delay="0s" --heartbeat "5s" "token://${SWARM_TOKEN}"
145
76
146
77
docker run --rm \
147
- " swarm:${SWARM_VERSION} " list " nodes://${HOST_IP} :${HOST_PORT} "
78
+ " swarm:${SWARM_VERSION} " \
79
+ list " nodes://${HOST_IP} :${HOST_PORT} "
148
80
149
81
docker ps -a
150
- sudo ss -antpl
151
82
152
83
sleep 30
153
84
154
85
docker logs swarm_join
155
86
docker logs swarm_manager
156
- # docker logs consul
157
87
158
88
# switch to swarm connection
159
- DOCKER_HOST=" $PRE_DOCKER_HOST "
89
+ export DOCKER_HOST=" tcp://127.0.0.1: ${SWARM_PORT} "
160
90
161
91
docker version
162
92
docker info
0 commit comments