To compile CoreDNS, we assume you have a working Go setup. See various tutorials if you don’t have that already configured.
~~~
% git clone https://github.com/coredns/coredns
~~~
We vendor most (not all!) packages. This is mostly because vendoring isn't a perfect solution (in
Go). We don't vendor `mholt/caddy` and `miekg/dns` for instance. Using `make` will pull down these
dependencies and checks out the correct version as well.
Next just run `make`:
First, make sure your `$GOPATH` is correctly set. See [here](https://github.com/golang/go/wiki/SettingGOPATH) for details. Then, check out the project under your `$GOPATH` and run `make` to compile the binary:
~~~
% make
$ mkdir -p $GOPATH/src/github.com/coredns
$ cd $GOPATH/src/github.com/coredns/
$ git clone https://github.com/coredns/coredns
$ cd coredns
$ make
~~~
This should yield a `coredns` binary.
We vendor most ([not all!](https://github.com/coredns/coredns/issues/1523)) packages. This is mostly because vendoring isn't a perfect solution (in
Go). We don't vendor `mholt/caddy` and `miekg/dns` for instance. Using `make` will pull down these
dependencies and checks out the correct version as well.
## Compilation with Docker
CoreDNS requires Go to compile. However, if you already have docker installed and prefer not to setup