github.com/percona/percona-xtradb-cluster-operator@v1.14.0/build/Dockerfile (about)

     1  FROM golang:1.21 AS go_builder
     2  WORKDIR /go/src/github.com/percona/percona-xtradb-cluster-operator
     3  
     4  COPY . .
     5  
     6  ARG GIT_COMMIT
     7  ARG GIT_BRANCH
     8  ARG BUILD_TIME
     9  ARG GO_LDFLAGS
    10  ARG GOOS=linux
    11  ARG CGO_ENABLED=0
    12  
    13  RUN go mod download \
    14      && mkdir -p build/_output/bin \
    15      && GOOS=$GOOS CGO_ENABLED=$CGO_ENABLED GO_LDFLAGS=$GO_LDFLAGS \
    16         go build -ldflags "-w -s -X main.GitCommit=$GIT_COMMIT -X main.GitBranch=$GIT_BRANCH -X main.BuildTime=$BUILD_TIME" \
    17             -o build/_output/bin/percona-xtradb-cluster-operator \
    18                 cmd/manager/main.go \
    19      && cp -r build/_output/bin/percona-xtradb-cluster-operator /usr/local/bin/percona-xtradb-cluster-operator
    20  
    21  RUN go build -o build/_output/bin/peer-list cmd/peer-list/main.go \
    22      && cp -r build/_output/bin/peer-list /usr/local/bin/
    23  
    24  FROM registry.access.redhat.com/ubi9/ubi-minimal AS ubi9
    25  RUN microdnf -y update && microdnf clean all
    26  
    27  LABEL name="Percona XtraDB Cluster Operator" \
    28        vendor="Percona" \
    29        summary="Percona XtraDB Cluster is an active/active high availability and high scalability open source solution for MySQL clustering" \
    30        description="Percona XtraDB Cluster is a high availability solution that helps enterprises avoid downtime and outages and meet expected customer experience." \
    31        maintainer="Percona Development <info@percona.com>"
    32  
    33  COPY LICENSE /licenses/
    34  COPY --from=go_builder /usr/local/bin/percona-xtradb-cluster-operator /usr/local/bin/percona-xtradb-cluster-operator
    35  COPY --from=go_builder /usr/local/bin/peer-list /peer-list
    36  COPY build/pxc-entrypoint.sh /pxc-entrypoint.sh
    37  COPY build/pxc-init-entrypoint.sh /pxc-init-entrypoint.sh
    38  COPY build/unsafe-bootstrap.sh /unsafe-bootstrap.sh
    39  COPY build/pxc-configure-pxc.sh /pxc-configure-pxc.sh
    40  COPY build/liveness-check.sh /liveness-check.sh
    41  COPY build/readiness-check.sh /readiness-check.sh
    42  COPY build/pmm-prerun.sh /pmm-prerun.sh
    43  COPY build/get-pxc-state /get-pxc-state
    44  
    45  USER 2