File tree Expand file tree Collapse file tree 2 files changed +33
-9
lines changed Expand file tree Collapse file tree 2 files changed +33
-9
lines changed Original file line number Diff line number Diff line change 1
1
# 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
3
8
4
9
RUN apk add --no-cache musl-dev
5
10
@@ -9,10 +14,17 @@ WORKDIR /build
9
14
COPY . .
10
15
RUN go mod download
11
16
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
16
28
17
29
RUN apk add --no-cache bash
18
30
Original file line number Diff line number Diff line change 1
1
# 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
3
8
4
9
WORKDIR /build
5
10
6
11
# Install the dependencies
7
12
COPY . .
8
13
RUN go mod download
9
14
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
12
24
13
- FROM debian:12.4-slim
25
+ FROM --platform=$TARGETPLATFORM debian:12.4-slim
14
26
15
27
# Install Forego
16
28
COPY --from=go-builder /build/forego /usr/local/bin/forego
You can’t perform that action at this time.
0 commit comments