Skip to content

Commit

Permalink
Merge pull request #39 from nginx-proxy/cross-compile
Browse files Browse the repository at this point in the history
build: switch to go cross compilation
  • Loading branch information
buchdag authored Dec 21, 2023
2 parents 3e24e95 + 33c2880 commit 396ab17
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 9 deletions.
22 changes: 17 additions & 5 deletions Dockerfile.alpine
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
# Build forego
FROM golang:1.21.5-alpine as go-builder
FROM --platform=$BUILDPLATFORM golang:1.21.5-alpine as go-builder

ENV CGO_ENABLED=0

ARG TARGETOS TARGETARCH TARGETVARIANT
ENV GOOS=$TARGETOS GOARCH=$TARGETARCH VARIANT=$TARGETVARIANT

RUN apk add --no-cache musl-dev

Expand All @@ -9,10 +14,17 @@ WORKDIR /build
COPY . .
RUN go mod download

RUN CGO_ENABLED=0 go build -o forego . \
&& go clean -cache

FROM alpine:3.19.0
RUN set -eu; \
case "$GOARCH" in \
arm) export GOARM="${VARIANT#v}" ;; \
amd64) export GOAMD64="$VARIANT" ;; \
*) [ -z "$VARIANT" ] ;; \
esac; \
go env | grep -E 'OS=|ARCH=|ARM=|AMD64='; \
go build -o forego .; \
go clean -cache

FROM --platform=$TARGETPLATFORM alpine:3.19.0

RUN apk add --no-cache bash

Expand Down
20 changes: 16 additions & 4 deletions Dockerfile.debian
Original file line number Diff line number Diff line change
@@ -1,16 +1,28 @@
# Build forego
FROM golang:1.21.5 as go-builder
FROM --platform=$BUILDPLATFORM golang:1.21.5 as go-builder

ENV CGO_ENABLED=0

ARG TARGETOS TARGETARCH TARGETVARIANT
ENV GOOS=$TARGETOS GOARCH=$TARGETARCH VARIANT=$TARGETVARIANT

WORKDIR /build

# Install the dependencies
COPY . .
RUN go mod download

RUN CGO_ENABLED=0 GOOS=linux go build -o forego . \
&& go clean -cache
RUN set -eu; \
case "$GOARCH" in \
arm) export GOARM="${VARIANT#v}" ;; \
amd64) export GOAMD64="$VARIANT" ;; \
*) [ -z "$VARIANT" ] ;; \
esac; \
go env | grep -E 'OS=|ARCH=|ARM=|AMD64='; \
go build -o forego .; \
go clean -cache

FROM debian:12.4-slim
FROM --platform=$TARGETPLATFORM debian:12.4-slim

# Install Forego
COPY --from=go-builder /build/forego /usr/local/bin/forego
Expand Down

0 comments on commit 396ab17

Please sign in to comment.