mirror of
				https://github.com/juanfont/headscale.git
				synced 2025-10-28 10:51:44 +01:00 
			
		
		
		
	Merge pull request #708 from juanfont/revert-680-topic/speedup-build
Revert BuildKit (docker buildx) support
This commit is contained in:
		
						commit
						0eb3b23f16
					
				@ -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
 | 
			
		||||
 | 
			
		||||
@ -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
 | 
			
		||||
 | 
			
		||||
@ -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
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,32 +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 .
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user