構成
root/
┝ Dockerfile
┗ src/
└ main.go
Dockerfile(1.11以前)
FROM golang:latest as build
WORKDIR /go/src/app
ENV GOBIN=/go/bin
COPY . .
RUN go get -u github.com/golang/dep/cmd/dep
RUN dep init
RUN dep ensure
RUN go install -v ./...
FROM gcr.io/distroless/base
EXPOSE 5000
COPY --from=build /go/bin /
CMD ["/src"]
これで大概動きますが、ライブラリがないみたいに怒られるケースがあります。謎。
depを導入したので多分解決しました(2019/05/03)
Dockerfile(1.11以降)
Modulesをつかっていい感じにやります
FROM golang:latest as build
WORKDIR /go/src/app
ENV GOBIN=/go/bin
ENV GO111MODULE=on
COPY . .
RUN go mod init go-tools
RUN go install -v ./...
FROM gcr.io/distroless/base
EXPOSE 5000
COPY --from=build /go/bin /
CMD ["/src"]