Skip to content

Commit

Permalink
Merge pull request #2898 from dexidp/cross-compile-test
Browse files Browse the repository at this point in the history
Add xx to cross-compile binaries in Docker
  • Loading branch information
sagikazarmark authored Apr 28, 2023
2 parents 7837753 + 4312c46 commit 288a8fa
Showing 1 changed file with 19 additions and 9 deletions.
28 changes: 19 additions & 9 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,26 +1,36 @@
ARG BASE_IMAGE=alpine

FROM golang:1.20.3-alpine3.16 AS builder
FROM --platform=$BUILDPLATFORM tonistiigi/xx:1.2.1@sha256:8879a398dedf0aadaacfbd332b29ff2f84bc39ae6d4e9c0a1109db27ac5ba012 AS xx

WORKDIR /usr/local/src/dex
FROM --platform=$BUILDPLATFORM golang:1.20.3-alpine3.16 AS builder

RUN apk add --no-cache --update alpine-sdk ca-certificates openssl
COPY --from=xx / /

ARG TARGETOS
ARG TARGETARCH
ARG TARGETVARIANT=""
RUN apk add --update alpine-sdk ca-certificates openssl clang lld

ARG TARGETPLATFORM

RUN xx-apk --update add musl-dev gcc

ENV GOOS=${TARGETOS} GOARCH=${TARGETARCH} GOARM=${TARGETVARIANT}
# lld has issues building static binaries for ppc so prefer ld for it
RUN [ "$(xx-info arch)" != "ppc64le" ] || XX_CC_PREFER_LINKER=ld xx-clang --setup-target-triple

RUN xx-go --wrap

WORKDIR /usr/local/src/dex

ARG GOPROXY

ENV CGO_ENABLED=1

COPY go.mod go.sum ./
COPY api/v2/go.mod api/v2/go.sum ./api/v2/
RUN go mod download

COPY . .

RUN make release-binary
RUN xx-verify /go/bin/dex && xx-verify /go/bin/docker-entrypoint

FROM alpine:3.17.3 AS stager

Expand All @@ -37,8 +47,8 @@ ARG TARGETVARIANT
ENV GOMPLATE_VERSION=v3.11.4

RUN wget -O /usr/local/bin/gomplate \
"https://github.com/hairyhenderson/gomplate/releases/download/${GOMPLATE_VERSION}/gomplate_${TARGETOS:-linux}-${TARGETARCH:-amd64}${TARGETVARIANT}" \
&& chmod +x /usr/local/bin/gomplate
"https://github.com/hairyhenderson/gomplate/releases/download/${GOMPLATE_VERSION}/gomplate_${TARGETOS:-linux}-${TARGETARCH:-amd64}${TARGETVARIANT}" \
&& chmod +x /usr/local/bin/gomplate

# For Dependabot to detect base image versions
FROM alpine:3.17.3 AS alpine
Expand Down

0 comments on commit 288a8fa

Please sign in to comment.