Skip to content

Commit 08cb027

Browse files
committed
Update lab
Signed-off-by: David Gageot <[email protected]>
1 parent 6549b63 commit 08cb027

20 files changed

+272
-325
lines changed

README.md

+69-140
Large diffs are not rendered by default.

cleanup_swarm.sh

-1
This file was deleted.

docker-compose-v1.yml

+4-7
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,16 @@ services:
55
build: web
66
image: dockerdemos/lab-web
77
ports: ["80:80"]
8-
links: ["words-java:words"]
98

10-
words-java:
9+
words:
1110
build: words-java
1211
image: dockerdemos/lab-words-java
1312
expose: ["8080"]
14-
links: ["db:mongo"]
1513

1614
db-ui:
17-
image: mongo-express:0.30.43
15+
image: mongo-express:0.31.0
1816
ports: ["8081:8081"]
19-
links: ["db:mongo"]
2017

21-
db:
22-
image: mongo:3.2.4
18+
mongo:
19+
image: mongo:3.3.15
2320
expose: ["27017"]

docker-compose-v2.yml

+4-8
Original file line numberDiff line numberDiff line change
@@ -5,25 +5,21 @@ services:
55
build: web
66
image: dockerdemos/lab-web
77
ports: ["80:80"]
8-
links: ["words-dispatcher:words"]
98

10-
words-dispatcher:
9+
words:
1110
build: words-dispatcher
1211
image: dockerdemos/lab-words-dispatcher
1312
expose: ["8080"]
14-
links: ["words-java:words-java"]
1513

1614
words-java:
1715
build: words-java
1816
image: dockerdemos/lab-words-java
1917
expose: ["8080"]
20-
links: ["db:mongo"]
2118

2219
db-ui:
23-
image: mongo-express:0.30.43
20+
image: mongo-express:0.31.0
2421
ports: ["8081:8081"]
25-
links: ["db:mongo"]
2622

27-
db:
28-
image: mongo:3.2.4
23+
mongo:
24+
image: mongo:3.3.15
2925
expose: ["27017"]

docker-compose-v3.yml

+1-13
Original file line numberDiff line numberDiff line change
@@ -5,29 +5,17 @@ services:
55
image: dockerdemos/lab-web
66
ports: ["80"]
77
networks: ["private"]
8-
depends_on: ["words"]
98

109
words:
1110
image: dockerdemos/lab-words-dispatcher
12-
expose: ["8080"]
1311
networks: ["private"]
14-
depends_on: ["words-java"]
1512

1613
words-java:
1714
image: dockerdemos/lab-words-java
18-
expose: ["8080"]
1915
networks: ["private"]
20-
depends_on: ["mongo"]
21-
22-
db-ui:
23-
image: mongo-express:0.30.43
24-
ports: ["8081"]
25-
networks: ["private"]
26-
depends_on: ["mongo"]
2716

2817
mongo:
29-
image: mongo:3.2.4
30-
expose: ["27017"]
18+
image: mongo:3.3.15
3119
networks: ["private"]
3220

3321
networks:

docker-compose-v4.yml

-36
This file was deleted.

init_swarm_google.sh

+26-28
Original file line numberDiff line numberDiff line change
@@ -7,31 +7,29 @@ export GOOGLE_ZONE="europe-west1-d"
77
export GOOGLE_DISK_SIZE="1000"
88
export GOOGLE_MACHINE_TYPE="custom-2-8192"
99

10-
docker-machine create -d google --google-address ip-kv kv
11-
12-
docker $(docker-machine config kv) run \
13-
-d -p "8500:8500" \
14-
--name="consul" --restart "always" -h "consul" \
15-
progrium/consul -server -bootstrap
16-
17-
docker-machine create -d google \
18-
--google-address ip-master \
19-
--swarm --swarm-master \
20-
--swarm-discovery="consul://$(docker-machine ip kv):8500" \
21-
--engine-opt="cluster-store=consul://$(docker-machine ip kv):8500" \
22-
--engine-opt="cluster-advertise=eth0:2376" \
23-
master
24-
25-
for i in {1..4}; do
26-
name=$(printf "node-%0.2d" $i)
27-
ip=$(printf "ip-node%0.2d" $i)
28-
29-
docker-machine -D create -d google --swarm \
30-
--google-address $ip \
31-
--swarm-discovery="consul://$(docker-machine ip kv):8500" \
32-
--engine-opt="cluster-store=consul://$(docker-machine ip kv):8500" \
33-
--engine-opt="cluster-advertise=eth0:2376" \
34-
$name
35-
done
36-
37-
docker $(docker-machine config --swarm master) network create --driver overlay lab-net
10+
docker-machine create -d google gce-manager
11+
docker-machine create -d google gce-worker1
12+
docker-machine create -d google gce-worker2
13+
docker-machine create -d google gce-worker3
14+
15+
docker $(docker-machine config gce-manager) \
16+
swarm init \
17+
--listen-addr $(gcloud compute instances list gce-manager --format='value(networkInterfaces.networkIP)'):2377 \
18+
--advertise-addr $(gcloud compute instances list gce-manager --format='value(networkInterfaces.networkIP)'):2377
19+
20+
docker $(docker-machine config gce-worker1) \
21+
swarm join $(docker-machine ip gce-manager):2377 \
22+
--listen-addr $(gcloud compute instances list gce-worker1 --format='value(networkInterfaces.networkIP)'):2377 \
23+
--token $(docker $(docker-machine config gce-manager) swarm join-token worker -q)
24+
25+
docker $(docker-machine config gce-worker2) \
26+
swarm join $(docker-machine ip gce-manager):2377 \
27+
--listen-addr $(gcloud compute instances list gce-worker2 --format='value(networkInterfaces.networkIP)'):2377 \
28+
--token $(docker $(docker-machine config gce-manager) swarm join-token worker -q)
29+
30+
docker $(docker-machine config gce-worker3) \
31+
swarm join $(docker-machine ip gce-manager):2377 \
32+
--listen-addr $(gcloud compute instances list gce-worker3 --format='value(networkInterfaces.networkIP)'):2377 \
33+
--token $(docker $(docker-machine config gce-manager) swarm join-token worker -q)
34+
35+
docker $(docker-machine config gce-manager) info

init_swarm_vbox.sh

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
#!/bin/bash
2+
3+
set -e
4+
5+
docker-machine create -d virtualbox manager
6+
docker-machine create -d virtualbox worker1
7+
docker-machine create -d virtualbox worker2
8+
docker-machine create -d virtualbox worker3
9+
10+
docker $(docker-machine config manager) \
11+
swarm init \
12+
--listen-addr $(docker-machine ip manager):2377 \
13+
--advertise-addr $(docker-machine ip manager):2377
14+
15+
docker $(docker-machine config worker1) \
16+
swarm join $(docker-machine ip manager):2377 \
17+
--listen-addr $(docker-machine ip worker1):2377 \
18+
--token $(docker $(docker-machine config manager) swarm join-token worker -q)
19+
20+
docker $(docker-machine config worker2) \
21+
swarm join $(docker-machine ip manager):2377 \
22+
--listen-addr $(docker-machine ip worker2):2377 \
23+
--token $(docker $(docker-machine config manager) swarm join-token worker -q)
24+
25+
docker $(docker-machine config worker3) \
26+
swarm join $(docker-machine ip manager):2377 \
27+
--listen-addr $(docker-machine ip worker3):2377 \
28+
--token $(docker $(docker-machine config manager) swarm join-token worker -q)
29+
30+
docker $(docker-machine config manager) info

init_swarm_virtualbox.sh

-28
This file was deleted.

push.sh

+8-8
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22

33
set -e
44

5-
folders="web words-dispatcher words-java"
6-
7-
for folder in $folders; do
8-
docker build -t dockerdemos/lab-$folder $folder
9-
docker push dockerdemos/lab-$folder
10-
done
11-
12-
docker save -o images.tar dockerdemos/lab-web dockerdemos/lab-words-dispatcher dockerdemos/lab-words-java mongo-express:0.30.43 mongo:3.2.4
5+
docker-compose build
6+
docker-compose push
7+
docker save -o images.tar \
8+
dockerdemos/lab-web \
9+
dockerdemos/lab-words-dispatcher \
10+
dockerdemos/lab-words-java \
11+
mongo-express:0.31.0 \
12+
mongo:3.3.15

web/Dockerfile

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
FROM nginx:1.8.1-alpine
1+
FROM nginx:1.11.4-alpine
22

3+
COPY nginx.conf /etc/nginx/nginx.conf
34
COPY default.conf /etc/nginx/conf.d/default.conf
45
COPY static /usr/share/nginx/html

web/default.conf

+5-3
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,10 @@ server {
77
index index.html index.htm;
88
}
99

10-
location /words/ {
11-
proxy_pass http://words:8080/;
12-
proxy_redirect default;
10+
location ~ /words/(.*) {
11+
resolver 127.0.0.11 ipv6=off valid=1s;
12+
set $upstream words;
13+
14+
proxy_pass http://$upstream:8080/$1;
1315
}
1416
}

web/nginx.conf

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
user nginx;
2+
worker_processes 1;
3+
4+
error_log stderr debug;
5+
pid /var/run/nginx.pid;
6+
7+
events {
8+
worker_connections 1024;
9+
}
10+
11+
http {
12+
include /etc/nginx/mime.types;
13+
default_type application/octet-stream;
14+
15+
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
16+
'$status $body_bytes_sent "$http_referer" '
17+
'"$http_user_agent" "$http_x_forwarded_for"';
18+
19+
access_log /dev/stdout;
20+
21+
sendfile on;
22+
keepalive_timeout 65;
23+
24+
include /etc/nginx/conf.d/*.conf;
25+
}

web/static/app.js

+7-5
Original file line numberDiff line numberDiff line change
@@ -9,22 +9,24 @@ lab.controller('LabCtrl', function ($scope, $http) {
99
$scope.adjective2 = "";
1010
$scope.verb = "";
1111

12-
$http.get('/words/noun').success(function(data) {
12+
$http.get('/words/noun1').success(function(data) {
1313
$scope.noun1 = data;
1414
});
15-
$http.get('/words/noun').success(function(data) {
15+
$http.get('/words/noun2').success(function(data) {
16+
data.word = data.word + "."
1617
$scope.noun2 = data;
1718
});
18-
$http.get('/words/adjective').success(function(data) {
19+
$http.get('/words/adjective1').success(function(data) {
20+
data.word = data.word.charAt(0).toUpperCase() + data.word.substr(1)
1921
$scope.adjective1 = data;
2022
});
21-
$http.get('/words/adjective').success(function(data) {
23+
$http.get('/words/adjective2').success(function(data) {
2224
$scope.adjective2 = data;
2325
});
2426
$http.get('/words/verb').success(function(data) {
2527
$scope.verb = data;
2628
});
27-
29+
2830
$scope.share = function() {
2931
var sentence = $scope.noun1 + " " + $scope.adjective1 + " " + $scope.verb + " " + $scope.noun2 + " " + $scope.adjective2
3032
$http.post('http://docker.local:9000/likes',{'name':sentence})

words-dispatcher/Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM golang:1.6.1-alpine
1+
FROM golang:1.7.1-alpine
22

33
EXPOSE 8080
44
CMD ["./dispatcher"]

words-java/Dockerfile

+9-11
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,17 @@
1-
FROM java:openjdk-8u72-jdk
1+
FROM openjdk:8u92-jdk-alpine
22

3-
ENV MAVEN_VERSION 3.3.9
4-
ENV MAVEN_HOME /usr/share/maven
5-
6-
RUN mkdir -p /usr/share/maven \
7-
&& curl -fsSL http://apache.osuosl.org/maven/maven-3/$MAVEN_VERSION/binaries/apache-maven-$MAVEN_VERSION-bin.tar.gz \
8-
| tar -xzC /usr/share/maven --strip-components=1 \
9-
&& ln -s /usr/share/maven/bin/mvn /usr/bin/mvn
3+
RUN MAVEN_VERSION=3.3.9 \
4+
&& cd /usr/share \
5+
&& wget http://archive.apache.org/dist/maven/maven-3/$MAVEN_VERSION/binaries/apache-maven-$MAVEN_VERSION-bin.tar.gz -O - | tar xzf - \
6+
&& mv /usr/share/apache-maven-$MAVEN_VERSION /usr/share/maven \
7+
&& ln -s /usr/share/maven/bin/mvn /usr/bin/mvn
108

119
WORKDIR /home/lab
12-
ENTRYPOINT ["java", "-DPROD_MODE=true", "-Xmx128m", "-jar", "target/words.jar"]
10+
ENTRYPOINT ["java", "-DPROD_MODE=true", "-Xmx32m", "-jar", "target/words.jar"]
1311
EXPOSE 8080
1412

15-
ADD pom.xml .
13+
COPY pom.xml .
1614
RUN mvn verify -DskipTests --fail-never
1715

18-
ADD . ./
16+
COPY src ./src
1917
RUN mvn verify

0 commit comments

Comments
 (0)