diff --git a/Dockerfile b/Dockerfile index 33aa5780..b9139f09 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ # Builder image -FROM --platform=$BUILDPLATFORM docker.io/golang:1.18.0-bullseye AS build +FROM docker.io/golang:1.18.0-bullseye AS build ARG VERSION=dev ENV GOPATH /go WORKDIR /go/src/headscale @@ -8,8 +8,9 @@ COPY go.mod go.sum /go/src/headscale/ RUN go mod download COPY . . -ARG TARGETOS TARGETARCH -RUN CGO_ENABLED=0 GOOS=$TARGETOS GOARCH=$TARGETARCH go build -o /go/bin/headscale -ldflags="-s -w -X github.com/juanfont/headscale/cmd/headscale/cli.Version=$VERSION" -a ./cmd/headscale + +RUN CGO_ENABLED=0 GOOS=linux go install -ldflags="-s -w -X github.com/juanfont/headscale/cmd/headscale/cli.Version=$VERSION" -a ./cmd/headscale +RUN strip /go/bin/headscale RUN test -e /go/bin/headscale # Production image diff --git a/Dockerfile.alpine b/Dockerfile.alpine index b8d9e33a..de683f2d 100644 --- a/Dockerfile.alpine +++ b/Dockerfile.alpine @@ -1,5 +1,5 @@ # Builder image -FROM --platform=$BUILDPLATFORM docker.io/golang:1.18.0-alpine AS build +FROM docker.io/golang:1.18.0-alpine AS build ARG VERSION=dev ENV GOPATH /go WORKDIR /go/src/headscale @@ -10,8 +10,8 @@ RUN go mod download COPY . . -ARG TARGETOS TARGETARCH -RUN CGO_ENABLED=0 GOOS=$TARGETOS GOARCH=$TARGETARCH go build -o /go/bin/headscale -ldflags="-s -w -X github.com/juanfont/headscale/cmd/headscale/cli.Version=$VERSION" -a ./cmd/headscale +RUN CGO_ENABLED=0 GOOS=linux go install -ldflags="-s -w -X github.com/juanfont/headscale/cmd/headscale/cli.Version=$VERSION" -a ./cmd/headscale +RUN strip /go/bin/headscale RUN test -e /go/bin/headscale # Production image diff --git a/Dockerfile.debug b/Dockerfile.debug index 4333e94d..9b1b7c6b 100644 --- a/Dockerfile.debug +++ b/Dockerfile.debug @@ -1,5 +1,5 @@ # Builder image -FROM --platform=$BUILDPLATFORM docker.io/golang:1.18.0-bullseye AS build +FROM docker.io/golang:1.18.0-bullseye AS build ARG VERSION=dev ENV GOPATH /go WORKDIR /go/src/headscale @@ -9,7 +9,6 @@ RUN go mod download COPY . . -ARG TARGETOS TARGETARCH RUN CGO_ENABLED=0 GOOS=linux go install -ldflags="-s -w -X github.com/juanfont/headscale/cmd/headscale/cli.Version=$VERSION" -a ./cmd/headscale RUN test -e /go/bin/headscale diff --git a/docs/build-headscale-container.md b/docs/build-headscale-container.md deleted file mode 100644 index ec0dac51..00000000 --- a/docs/build-headscale-container.md +++ /dev/null @@ -1,34 +0,0 @@ -# Build docker from scratch - -The Dockerfiles included in the repository are using the [buildx plugin](https://docs.docker.com/buildx/working-with-buildx/). This plugin is includes in docker newer than Docker-ce CLI 19.03.2. The plugin is used to be able to build different container arches. Building the Dockerfiles without buildx is not possible. - -# Build native - -To build the container on the native arch you can just use: - -``` -$ sudo docker buildx build -t headscale:custom-arch . -``` - -For example: This will build a amd64(x86_64) container if your hostsystem is amd64(x86_64). Or a arm64 container on a arm64 hostsystem (raspberry pi4). - -# Build cross platform - -To build a arm64 container on a amd64 hostsystem you could use: - -``` -$ sudo docker buildx build --platform linux/arm64 -t headscale:custom-arm64 . - -``` - -**Import: Currently arm32 build are not supported as there is a problem with a library used by headscale. Hopefully this will be fixed soon.** - -# Build multiple arches - -To build multiple archres you could use: - -``` -$ sudo docker buildx create --use -$ sudo docker buildx build --platform linux/amd64,linux/arm64 . - -```