11#! /usr/bin/env bash
22
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-
163set -exu
174
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 :- } "
218
229export 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-
2910
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
4811rm -f " docker-java/src/test/resources/logback.xml"
49- # rm -f "src/test/resources/travis-logback.xml"
5012mv " docker-java/src/test/resources/travis-logback.xml" " docker-java/src/test/resources/logback-test.xml"
5113
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
5616
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
6723
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/
8926
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
9032
91- sudo ss -antpl
33+ sudo systemctl daemon-reload
34+ sudo service docker restart || sudo journalctl -xe
35+ sudo service docker status
36+ fi
9237
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
9443
95- docker version || sudo cat /var/log/upstart/docker.log
44+ docker version
9645docker info
9746
9847set +u
@@ -106,57 +55,38 @@ registry.url=https://index.docker.io/v1/
10655EOF
10756
10857if [[ -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) "
11060
11161 docker pull swarm
11262
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-
13163 docker run \
13264 -d \
13365 -p ${SWARM_PORT} :2375 \
13466 --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} "
13769
13870 # join engine to swarm
13971 docker run \
14072 -d \
14173 " --name=swarm_join" \
14274 " swarm:${SWARM_VERSION} " \
14375 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}"
14576
14677 docker run --rm \
147- " swarm:${SWARM_VERSION} " list " nodes://${HOST_IP} :${HOST_PORT} "
78+ " swarm:${SWARM_VERSION} " \
79+ list " nodes://${HOST_IP} :${HOST_PORT} "
14880
14981 docker ps -a
150- sudo ss -antpl
15182
15283 sleep 30
15384
15485 docker logs swarm_join
15586 docker logs swarm_manager
156- # docker logs consul
15787
15888 # switch to swarm connection
159- DOCKER_HOST=" $PRE_DOCKER_HOST "
89+ export DOCKER_HOST=" tcp://127.0.0.1: ${SWARM_PORT} "
16090
16191 docker version
16292 docker info
0 commit comments