diff --git a/dockercoins/webui/files/index.html b/dockercoins/webui/files/index.html
index accd2c23..e11773a5 100644
--- a/dockercoins/webui/files/index.html
+++ b/dockercoins/webui/files/index.html
@@ -50,7 +50,7 @@ function refresh () {
points.push({ x: s2.now, y: speed });
}
$("#speed").text("~" + speed.toFixed(1) + " hashes/second");
- var msg = ("I'm attending the @docker Swarm workshop at @qconlondon, "
+ var msg = ("It's #SwarmWeek! I'm attending the @docker workshop at @qconlondon, "
+ "and my #DockerCoins mining rig is crunching "
+ speed.toFixed(1) + " hashes/second! W00T!");
$("#tweet").attr(
diff --git a/www/htdocs/index.html b/www/htdocs/index.html
index 5fa61d96..02342267 100644
--- a/www/htdocs/index.html
+++ b/www/htdocs/index.html
@@ -295,7 +295,7 @@ If you want to use screen or whatever, you're welcome!
## Brand new versions!
-- Engine 1.10.2
+- Engine 1.10.**3**
- Compose 1.6.2
@@ -1242,7 +1242,7 @@ faster for a well-behaved application.*
- `redis` must resolve to the address of our Redis service
- the Redis service must listen on the default port (6379)
----
+???
## Using host name injection to abstract service dependencies
@@ -1267,7 +1267,7 @@ faster for a well-behaved application.*
with a private view where `redis` resolves to `192.168.1.2`
(Before Engine 1.10, it created entries in `/etc/hosts`)
----
+???
## The plan
@@ -1289,7 +1289,7 @@ faster for a well-behaved application.*
Note: the code stays on the first node!
(We do not need to copy the code to the other nodes.)
----
+???
## Making Redis available on its default port
@@ -1311,7 +1311,7 @@ There are two strategies.
Choose wisely!
----
+???
## Deploy Redis
@@ -1337,7 +1337,7 @@ Choose wisely!
The `ERR` messages are normal: Redis speaks Redis, not HTTP.
----
+???
## Update `docker-compose.yml` (1/3)
@@ -1352,7 +1352,7 @@ The `ERR` messages are normal: Redis speaks Redis, not HTTP.
]
----
+???
## Update `docker-compose.yml` (2/3)
@@ -1377,7 +1377,7 @@ Replace `A.B.C.D` with the IP address noted earlier.
Shortcut: `docker-compose.yml-extra-hosts`
(But you still have to replace `A.B.C.D`!)
----
+???
## Update `docker-compose.yml` (3/3)
@@ -1400,7 +1400,7 @@ Shortcut: `docker-compose.yml-extra-hosts`
(Replace `A.B.C.D` with the IP address noted earlier)
----
+???
## Start the stack on the first machine
@@ -1416,7 +1416,7 @@ Shortcut: `docker-compose.yml-extra-hosts`
- Check in the web browser that it's running correctly
----
+???
## Start the stack on another machine
@@ -1439,7 +1439,7 @@ Shortcut: `docker-compose.yml-extra-hosts`
]
----
+???
## Scale!
@@ -1459,7 +1459,7 @@ Shortcut: `docker-compose.yml-extra-hosts`
Note: of course, if we wanted, we could run on all five nodes.
----
+???
## Cleanup
@@ -1481,6 +1481,25 @@ Note: of course, if we wanted, we could run on all five nodes.
---
+# Using custom DNS mapping
+
+- We could setup a Redis server on its default port
+
+- And add a DNS entry mapping `redis` to this server
+
+.exercise[
+
+- See what happens if we run:
+ ```
+ docker run --add-host redis:1.2.3.4 alpine ping redis
+ ```
+
+]
+
+There is a Compose file option for that: `extra_hosts`.
+
+---
+
# Abstracting remote services with ambassadors
- What if we can't/won't run Redis on its default port?
@@ -1540,9 +1559,9 @@ class: pic
.exercise[
-
+
- Replace `redis` with an ambassador using `jpetazzo/hamba`:
@@ -1558,27 +1577,6 @@ class: pic
Shortcut: `docker-compose.yml-ambassador`
(But you still have to update `AA.BB.CC.DD EEEE`!)
-???
-
-## Why did we comment out the `volumes` section?
-
-- Volumes have multiple uses:
-
- - storing persistent stuff (database files...)
-
- - sharing files between containers (logs, configuration...)
-
- - sharing files between host and containers (source...)
-
-- The `volumes` directive expands to an host path
-
.small[(e.g. `/home/docker/orchestration-workshop/dockercoins/webui/files`)]
-
-- This host path exists on the local machine
-
(not on the others)
-
-- This specific volume is used in development
-
(not in production)
-
---
## Start the stack on the first machine
@@ -1675,6 +1673,45 @@ Let's celebrate our success!
---
+## A few words about development volumes
+
+- Try to access the web UI on another node
+
+--
+
+- It doesn't work! Why?
+
+--
+
+- Static assets are masked by an empty volume
+
+--
+
+- We need to comment out the `volumes` section
+
+---
+
+## Why must we comment out the `volumes` section?
+
+- Volumes have multiple uses:
+
+ - storing persistent stuff (database files...)
+
+ - sharing files between containers (logs, configuration...)
+
+ - sharing files between host and containers (source...)
+
+- The `volumes` directive expands to an host path
+
.small[(e.g. `/home/docker/orchestration-workshop/dockercoins/webui/files`)]
+
+- This host path exists on the local machine
+
(not on the others)
+
+- This specific volume is used in development
+
(not in production)
+
+---
+
## Stop the app (but leave Redis running)
- Let's use `docker-compose down`