Skip to content

Commit

Permalink
Cross-compile binaries on native platform using xgo
Browse files Browse the repository at this point in the history
Massive speed boost
  • Loading branch information
mraerino committed Apr 28, 2024
1 parent 7774d9b commit 528f869
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 6 deletions.
18 changes: 12 additions & 6 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,19 +1,25 @@
# build binary
FROM golang:1.21 AS builder
FROM --platform=$BUILDPLATFORM ghcr.io/crazy-max/xgo:latest AS builder

COPY . /go/src/github.com/nimbolus/terraform-backend
COPY . /source
WORKDIR /source

WORKDIR /go/src/github.com/nimbolus/terraform-backend

RUN GOOS=linux CGO_ENABLED=1 go build ./cmd/terraform-backend
ARG TARGETPLATFORM
ENV TARGETS=$TARGETPLATFORM
ENV PACK=cmd/terraform-backend
ENV OUT=terraform-backend
ENV GO111MODULE=on
RUN xgo-build .

# start clean for final image
FROM debian:12

ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get -q update && \
apt-get -yq install ca-certificates && \
apt-get autoclean

COPY --from=builder /go/src/github.com/nimbolus/terraform-backend/terraform-backend /terraform-backend
ARG TARGETPLATFORM
COPY --from=builder /build/terraform-backend-${TARGETPLATFORM/\//-} /terraform-backend

ENTRYPOINT ["/terraform-backend"]
1 change: 1 addition & 0 deletions go.mod
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
module github.com/nimbolus/terraform-backend

// warning: upgrading this might break the release flow (xgo)
go 1.21

require (
Expand Down

0 comments on commit 528f869

Please sign in to comment.