Improve Dockerfile
This commit makes several changes to the dockerfile: - Add go.mod and go.sum in a seperate stage, subsequently calling `go mod download` to make it cache dependencies and speed up builds - Use ubuntu:latest (28MB larger) instead of scratch, makes the image a lot easier to debug (e.g. it has a shell and a package manager) - Change ENTRYPOINT to CMD, this makes the behaviour of the image slightly different from a CLI perspective, but makes interacting with the image from code, docker-compose and kubernetes easier.
This commit is contained in:
parent
d86123195c
commit
a43bb1bb40
1 changed files with 11 additions and 4 deletions
15
Dockerfile
15
Dockerfile
|
@ -1,12 +1,19 @@
|
||||||
FROM golang:latest AS build
|
FROM golang:latest AS build
|
||||||
ENV GOPATH /go
|
ENV GOPATH /go
|
||||||
COPY . /go/src/headscale
|
|
||||||
|
COPY go.mod go.sum /go/src/headscale/
|
||||||
WORKDIR /go/src/headscale
|
WORKDIR /go/src/headscale
|
||||||
|
RUN go mod download
|
||||||
|
|
||||||
|
COPY . /go/src/headscale
|
||||||
|
|
||||||
RUN go install -a -ldflags="-extldflags=-static" -tags netgo,sqlite_omit_load_extension ./cmd/headscale
|
RUN go install -a -ldflags="-extldflags=-static" -tags netgo,sqlite_omit_load_extension ./cmd/headscale
|
||||||
RUN test -e /go/bin/headscale
|
RUN test -e /go/bin/headscale
|
||||||
|
|
||||||
FROM scratch
|
FROM ubuntu:latest
|
||||||
COPY --from=build /go/bin/headscale /go/bin/headscale
|
|
||||||
|
COPY --from=build /go/bin/headscale /usr/local/bin/headscale
|
||||||
ENV TZ UTC
|
ENV TZ UTC
|
||||||
|
|
||||||
EXPOSE 8080/tcp
|
EXPOSE 8080/tcp
|
||||||
ENTRYPOINT ["/go/bin/headscale"]
|
CMD ["headscale"]
|
||||||
|
|
Loading…
Reference in a new issue