🐹 Go - Dockerfile
Updated at 2018-12-31 05:13
How to build a minimal Docker image based on a Go application source code.
COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build .
COPY --from=0 /go/src/github.com/username/project/executable .
- We use temporary container to build the executable using
golang:1.9.2. We create a new directory where Go would the source to be, copy project directory there and build the executable. We disable CGO that would enable the creation of Go packages that call C code, but that won't work when cross-compiling.
- Then we create the actual image, copying just the executable to the empty image.
- Finally we set that running the Docker image will just run the Go executable by default.