Undefined Title

envconsulをDocker上でビルドする

2014-06-29

envconsulはまだバイナリでダウンロードすることができないようで、自分でビルドする必要がある。go getでさくっと取ってこれる環境であればいいのだが、そうでないときはバイナリを作る必要がある。CentOSで使いたいんだけど、golangが入ってる環境MacOSXしかないし、ってとき、まあお察しのとおりVagrantかDockerを使えばいい。

ということで、Dockerfile書いてみた。

yumでgolangとgit入れて、go getしてbuildしてるだけ。ホストOSの環境を変更しないのがいいね。

CMD ["cp", "envconsul", "/target"]

この部分でバイナリを/targetへコピーしているのだが、以下のようにするとホストの/tmpへコピーすることになる。

docker build -t envconsul.build .
docker run -v /tmp:/target envconsul.build

あとはできたバイナリをCentOSへscpなりで持っていけばいい。

MacOSXだとboot2docker使ってるだろうから、その場合VMからscpしてやる。

$ boot2docker config | egrep 'SSHPort|SSHKey'
SSHKey = "/Users/<yourname>/.ssh/id_boot2docker"
SSHPort = 2022
$ scp -P 2022 -i ~/.ssh/id_boot2docker docker@localhost:/tmp/envconsul
envconsul                                100% 8304KB   8.1MB/s   00:01