Build correct arch for container image (#817)

Signed-off-by: Lavi Blumberg <lavifb@gmail.com>
This commit is contained in:
Lavi Blumberg 2023-04-19 18:15:00 -04:00 committed by GitHub
parent 75e52d70b5
commit 75092bf0bc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 26 additions and 12 deletions

View File

@ -1,4 +1,4 @@
FROM golang:1.20-alpine as builder
FROM --platform=$BUILDPLATFORM golang:1.20-alpine as builder
RUN apk add --no-cache make git
WORKDIR /workspace/helmfile
@ -7,11 +7,12 @@ COPY go.mod go.sum /workspace/helmfile/
RUN go mod download
COPY . /workspace/helmfile
RUN make static-linux
ARG TARGETARCH
RUN make static-linux-${TARGETARCH}
# -----------------------------------------------------------------------------
FROM alpine:3.16
FROM --platform=$BUILDPLATFORM alpine:3.16
LABEL org.opencontainers.image.source https://github.com/helmfile/helmfile
@ -89,6 +90,7 @@ RUN helm plugin install https://github.com/databus23/helm-diff --version v3.6.0
# Allow users other than root to use helm plugins located in root home
RUN chmod 751 ${HOME}
COPY --from=builder /workspace/helmfile/dist/helmfile_linux_amd64 /usr/local/bin/helmfile
ARG TARGETARCH
COPY --from=builder /workspace/helmfile/dist/helmfile_linux_${TARGETARCH} /usr/local/bin/helmfile
CMD ["/usr/local/bin/helmfile"]

View File

@ -1,4 +1,4 @@
FROM golang:1.20-alpine as builder
FROM --platform=$BUILDPLATFORM golang:1.20-alpine as builder
RUN apk add --no-cache make git
WORKDIR /workspace/helmfile
@ -7,11 +7,12 @@ COPY go.mod go.sum /workspace/helmfile/
RUN go mod download
COPY . /workspace/helmfile
RUN make static-linux
ARG TARGETARCH
RUN make static-linux-${TARGETARCH}
# -----------------------------------------------------------------------------
FROM debian:stable-slim
FROM --platform=$BUILDPLATFORM debian:stable-slim
LABEL org.opencontainers.image.source https://github.com/helmfile/helmfile
@ -94,6 +95,7 @@ RUN helm plugin install https://github.com/databus23/helm-diff --version v3.6.0
# Allow users other than root to use helm plugins located in root home
RUN chmod 751 ${HOME}
COPY --from=builder /workspace/helmfile/dist/helmfile_linux_amd64 /usr/local/bin/helmfile
ARG TARGETARCH
COPY --from=builder /workspace/helmfile/dist/helmfile_linux_${TARGETARCH} /usr/local/bin/helmfile
CMD ["/usr/local/bin/helmfile"]

View File

@ -1,4 +1,4 @@
FROM golang:1.20-alpine as builder
FROM --platform=$BUILDPLATFORM golang:1.20-alpine as builder
RUN apk add --no-cache make git
WORKDIR /workspace/helmfile
@ -7,11 +7,12 @@ COPY go.mod go.sum /workspace/helmfile/
RUN go mod download
COPY . /workspace/helmfile
RUN make static-linux
ARG TARGETARCH
RUN make static-linux-${TARGETARCH}
# -----------------------------------------------------------------------------
FROM ubuntu:20.04
FROM --platform=$BUILDPLATFORM ubuntu:20.04
LABEL org.opencontainers.image.source https://github.com/helmfile/helmfile
@ -94,6 +95,7 @@ RUN helm plugin install https://github.com/databus23/helm-diff --version v3.6.0
# Allow users other than root to use helm plugins located in root home
RUN chmod 751 ${HOME}
COPY --from=builder /workspace/helmfile/dist/helmfile_linux_amd64 /usr/local/bin/helmfile
ARG TARGETARCH
COPY --from=builder /workspace/helmfile/dist/helmfile_linux_${TARGETARCH} /usr/local/bin/helmfile
CMD ["/usr/local/bin/helmfile"]

View File

@ -73,6 +73,14 @@ static-linux:
env CGO_ENABLED=0 GOOS=linux GOARCH=amd64 GOFLAGS=-mod=readonly go build -o "dist/helmfile_linux_amd64" -ldflags="$(GO_BUILD_VERSION_LDFLAGS)" ${TARGETS}
.PHONY: static-linux
static-linux-amd64:
env CGO_ENABLED=0 GOOS=linux GOARCH=amd64 GOFLAGS=-mod=readonly go build -o "dist/helmfile_linux_amd64" -ldflags="$(GO_BUILD_VERSION_LDFLAGS)" ${TARGETS}
.PHONY: static-linux-amd64
static-linux-arm64:
env CGO_ENABLED=0 GOOS=linux GOARCH=arm64 GOFLAGS=-mod=readonly go build -o "dist/helmfile_linux_arm64" -ldflags="$(GO_BUILD_VERSION_LDFLAGS)" ${TARGETS}
.PHONY: static-linux-arm64
install:
env CGO_ENABLED=0 go install -ldflags="$(GO_BUILD_VERSION_LDFLAGS)" ${TARGETS}
.PHONY: install