Add Docker 1.12+ (service) based deployment (#9)

This commit is contained in:
James Mills 2017-08-08 03:02:04 -07:00 committed by Miek Gieben
parent 901fba81cb
commit 9a3a1a292b
2 changed files with 59 additions and 0 deletions

36
docker/README.md Normal file
View file

@ -0,0 +1,36 @@
# docker based deployment
## Prerequisites
* Docker 1.12.x or later (*Docker Swarm Mode*)
## Setup
First decide which nodes you are going to run coredns on and set appropriate
labels on your nodes. I use `iface=extern` as labels on nodes with external
facing interfaces and `iface=intern` for internal facing nodes.
```#!bash
$ docker node inspect node1 | jq '.[0].Spec.Labels'
{
"iface": "extern"
}
```
## Deploy
Connect to a "manager" node:
(*I use `docker-machine` for this*)
```#!bash
$ eval $(docker-machine env node1)
$ docker stack deploy -c dns.yml dns
```
## Verify
Verify your setup works:
```#!bash
$ dig @<node1> google.com IN A +short
```

23
docker/dns.yml Normal file
View file

@ -0,0 +1,23 @@
version: "3.2"
services:
coredns:
image: coredns/coredns
command: -conf /data/Corefile
ports:
- "53:53/udp"
- "53:53/tcp"
- "9153:9153/tcp"
volumes:
- coredns:/data
deploy:
mode: global
placement:
constraints:
- "node.labels.iface != extern"
restart_policy:
condition: on-failure
volumes:
coredns:
external: true