Skip to content

Commit 396ab17

Browse files
authored
Merge pull request #39 from nginx-proxy/cross-compile
build: switch to go cross compilation
2 parents 3e24e95 + 33c2880 commit 396ab17

File tree

2 files changed

+33
-9
lines changed

2 files changed

+33
-9
lines changed

Dockerfile.alpine

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
# Build forego
2-
FROM golang:1.21.5-alpine as go-builder
2+
FROM --platform=$BUILDPLATFORM golang:1.21.5-alpine as go-builder
3+
4+
ENV CGO_ENABLED=0
5+
6+
ARG TARGETOS TARGETARCH TARGETVARIANT
7+
ENV GOOS=$TARGETOS GOARCH=$TARGETARCH VARIANT=$TARGETVARIANT
38

49
RUN apk add --no-cache musl-dev
510

@@ -9,10 +14,17 @@ WORKDIR /build
914
COPY . .
1015
RUN go mod download
1116

12-
RUN CGO_ENABLED=0 go build -o forego . \
13-
&& go clean -cache
14-
15-
FROM alpine:3.19.0
17+
RUN set -eu; \
18+
case "$GOARCH" in \
19+
arm) export GOARM="${VARIANT#v}" ;; \
20+
amd64) export GOAMD64="$VARIANT" ;; \
21+
*) [ -z "$VARIANT" ] ;; \
22+
esac; \
23+
go env | grep -E 'OS=|ARCH=|ARM=|AMD64='; \
24+
go build -o forego .; \
25+
go clean -cache
26+
27+
FROM --platform=$TARGETPLATFORM alpine:3.19.0
1628

1729
RUN apk add --no-cache bash
1830

Dockerfile.debian

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,28 @@
11
# Build forego
2-
FROM golang:1.21.5 as go-builder
2+
FROM --platform=$BUILDPLATFORM golang:1.21.5 as go-builder
3+
4+
ENV CGO_ENABLED=0
5+
6+
ARG TARGETOS TARGETARCH TARGETVARIANT
7+
ENV GOOS=$TARGETOS GOARCH=$TARGETARCH VARIANT=$TARGETVARIANT
38

49
WORKDIR /build
510

611
# Install the dependencies
712
COPY . .
813
RUN go mod download
914

10-
RUN CGO_ENABLED=0 GOOS=linux go build -o forego . \
11-
&& go clean -cache
15+
RUN set -eu; \
16+
case "$GOARCH" in \
17+
arm) export GOARM="${VARIANT#v}" ;; \
18+
amd64) export GOAMD64="$VARIANT" ;; \
19+
*) [ -z "$VARIANT" ] ;; \
20+
esac; \
21+
go env | grep -E 'OS=|ARCH=|ARM=|AMD64='; \
22+
go build -o forego .; \
23+
go clean -cache
1224

13-
FROM debian:12.4-slim
25+
FROM --platform=$TARGETPLATFORM debian:12.4-slim
1426

1527
# Install Forego
1628
COPY --from=go-builder /build/forego /usr/local/bin/forego

0 commit comments

Comments
 (0)