GoのためのDockerfile

2017-09-18#go#docker

base image

library/golangで公式イメージが用意されている。ユースケースに合わせていくつかの種類が用意されている。

ディレクトリレイアウト

$ docker run -i -t --rm golang:1.9 /bin/bash
root@xxxxxxxxx:/go# pwd
/go
root@xxxxxxxxx:/go# ls
bin src
root@xxxxxxxxx:/go# env | grep GO
GOLANG_VERSION=1.9
GOPATH=/go

GOPATH/goに設定されているので、/go/src/以下にWORKDIRを設定していく。

Dockerfile

FROM golang:1.9
WORKDIR /go/src/github.com/naoty/golang-sample
COPY . .
RUN go install github.com/naoty/golang-sample
ENTRYPOINT ["golang-sample"]

go install .../go/bin/以下にバイナリがビルドされる。PATH/go/binも含まれているため、そのままビルドされたバイナリを指定するだけでOK。

参考