coredns with nomad plugin for service discovery. This repository will build a docker container with coredns and the nomad plugin.
In order to run this container, and have service discovery work on port 1053, you need to pass in the following environment variables:
NOMAD_ADDR
- the address of the nomad serverNOMAD_TOKEN
- the token to use to query the nomad serverNOMAD_TTL
- the TTL for the DNS records, in seconds
For example:
docker run --name coredns-nomad --rm -p 1053:53 \
--env NOMAD_ADDR=http://nomad:4646/ \
--env NOMAD_TOKEN=XXXXXX \
--env NOMAD_TTL=10 \
ghcr.io/mutablelogic/coredns-nomad:v1.11.1
When you want to test it using dig, query <service>.<namespace>.nomad
. For example,
dig +tcp -p 1053 @localhost service.default.nomad
You can use the pre-built container from the GitHub Container Registry (for arm64 or amd64 on Linux), or you can build it yourself.
git clone [email protected]:mutablelogic/go-coredns-nomad.git
cd go-coredns-nomad
docker build \
--tag ${REGISTRY}/${USERNAME}/coredns-nomad:v1.11.1 \
--build-arg ARCH=$(arch) \
--build-arg PLATFORM=$(uname -s | tr '[:upper:]' '[:lower:]') \
--build-arg VERSION=v1.11.1 \
-f etc/docker/Dockerfile .