mirror of
https://github.com/zalando/postgres-operator.git
synced 2026-09-30 05:41:57 +02:00
Add pipeline to publish ghcr multi-arch image (#2268)
Refactor operator image build process Add a pipeline to build and publish arm64/amd64 image in ghcr on every pushed tag
This commit is contained in:
+15
-2
@@ -1,11 +1,24 @@
|
||||
FROM registry.opensource.zalan.do/library/alpine-3.15:latest
|
||||
ARG BASE_IMAGE=registry.opensource.zalan.do/library/alpine-3.15:latest
|
||||
ARG VERSION=latest
|
||||
|
||||
FROM ubuntu:20.04 as builder
|
||||
|
||||
ARG VERSION
|
||||
|
||||
COPY . /go/src/github.com/zalando/postgres-operator
|
||||
WORKDIR /go/src/github.com/zalando/postgres-operator
|
||||
|
||||
ENV OPERATOR_LDFLAGS="-X=main.version=${VERSION}"
|
||||
RUN bash docker/build_operator.sh
|
||||
|
||||
FROM ${BASE_IMAGE}
|
||||
LABEL maintainer="Team ACID @ Zalando <team-acid@zalando.de>"
|
||||
|
||||
# We need root certificates to deal with teams api over https
|
||||
RUN apk --no-cache add curl
|
||||
RUN apk --no-cache add ca-certificates
|
||||
|
||||
COPY build/* /
|
||||
COPY --from=builder /go/src/github.com/zalando/postgres-operator/build/* /
|
||||
|
||||
RUN addgroup -g 1000 pgo
|
||||
RUN adduser -D -u 1000 -G pgo -g 'Postgres Operator' pgo
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
#!/bin/bash
|
||||
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
arch=$(dpkg --print-architecture)
|
||||
|
||||
set -ex
|
||||
|
||||
# Install dependencies
|
||||
|
||||
apt-get update
|
||||
apt-get install -y wget
|
||||
|
||||
(
|
||||
cd /tmp
|
||||
wget -q "https://storage.googleapis.com/golang/go1.18.9.linux-${arch}.tar.gz" -O go.tar.gz
|
||||
tar -xf go.tar.gz
|
||||
mv go /usr/local
|
||||
ln -s /usr/local/go/bin/go /usr/bin/go
|
||||
go version
|
||||
)
|
||||
|
||||
# Build
|
||||
|
||||
export PATH="$PATH:$HOME/go/bin"
|
||||
export GOPATH="$HOME/go"
|
||||
mkdir -p build
|
||||
cp scm-source.json build/
|
||||
|
||||
GO111MODULE=on go mod vendor
|
||||
CGO_ENABLED=0 go build -o build/postgres-operator -v -ldflags "$OPERATOR_LDFLAGS" cmd/main.go
|
||||
Reference in New Issue
Block a user