mirror of
https://github.com/ceph/ceph-csi.git
synced 2024-11-26 16:20:28 +00:00
b26d33b7c1
When running a simple build with only the required arguments, the following warning are reported: $ buildah bud --build-arg=BASE_IMAGE=ceph/ceph:v15 --build-arg=GO_ARCH=amd64 -f ./deploy/cephcsi/image/Dockerfile . ... STEP 15: COPY . ${SRC_DIR} STEP 16: RUN make cephcsi cephcsi image settings: quay.io/cephcsi/cephcsi version canary make: git: Command not found make: git: Command not found if [ ! -d ./vendor ]; then (go mod tidy && go mod vendor); fi make: git: Command not found ... STEP 23: COMMIT Getting image source signatures ... Writing manifest to image destination Storing signatures --> 239b19c4049 git is used to detect the current commit, and store it in the binary that is built. Without the commit, the "Git Commit:" in the output is empty, making it impossible to get the exact version: $ podman run --rm 239b19c4049 --version Cephcsi Version: canary Git Commit: Go Version: go1.15 Compiler: gc Platform: linux/amd64 Kernel: 5.8.4-200.fc32.x86_64 Signed-off-by: Niels de Vos <ndevos@redhat.com>
66 lines
1.6 KiB
Docker
66 lines
1.6 KiB
Docker
ARG SRC_DIR="/go/src/github.com/ceph/ceph-csi/"
|
|
ARG GO_ARCH
|
|
ARG BASE_IMAGE
|
|
|
|
FROM ${BASE_IMAGE} as builder
|
|
|
|
LABEL stage="build"
|
|
|
|
ARG CSI_IMAGE_NAME=quay.io/cephcsi/cephcsi
|
|
ARG CSI_IMAGE_VERSION=canary
|
|
ARG GO_ARCH
|
|
ARG SRC_DIR
|
|
ARG GIT_COMMIT
|
|
ARG GOROOT=/usr/local/go
|
|
|
|
COPY build.env /
|
|
|
|
RUN source /build.env && \
|
|
( test -n "${GO_ARCH}" && exit 0; echo -e "\n\nMissing GO_ARCH argument for building image, install Golang or run: make image-cephcsi GOARCH=amd64\n\n"; exit 1 ) && \
|
|
mkdir -p ${GOROOT} && \
|
|
curl https://storage.googleapis.com/golang/go${GOLANG_VERSION}.linux-${GO_ARCH}.tar.gz | tar xzf - -C ${GOROOT} --strip-components=1
|
|
|
|
# test if the downloaded version of Golang works (different arch?)
|
|
RUN ${GOROOT}/bin/go version && ${GOROOT}/bin/go env
|
|
|
|
RUN dnf -y install \
|
|
libcephfs-devel librados-devel librbd-devel \
|
|
/usr/bin/cc \
|
|
make \
|
|
git \
|
|
&& true
|
|
|
|
ENV GOROOT=${GOROOT} \
|
|
GOPATH=/go \
|
|
CGO_ENABLED=1 \
|
|
GIT_COMMIT="${GIT_COMMIT}" \
|
|
ENV_CSI_IMAGE_VERSION="${CSI_IMAGE_VERSION}" \
|
|
ENV_CSI_IMAGE_NAME="${CSI_IMAGE_NAME}" \
|
|
PATH="${GOROOT}/bin:${GOPATH}/bin:${PATH}"
|
|
|
|
|
|
WORKDIR ${SRC_DIR}
|
|
|
|
# Copy source directories
|
|
COPY . ${SRC_DIR}
|
|
|
|
# Build executable
|
|
RUN make cephcsi
|
|
|
|
#-- Final container
|
|
FROM ${BASE_IMAGE}
|
|
|
|
ARG SRC_DIR
|
|
|
|
LABEL maintainers="Ceph-CSI Authors" \
|
|
version=${CSI_IMAGE_VERSION} \
|
|
architecture=${GO_ARCH} \
|
|
description="Ceph-CSI Plugin"
|
|
|
|
COPY --from=builder ${SRC_DIR}/_output/cephcsi /usr/local/bin/cephcsi
|
|
|
|
# verify that all dynamically linked libraries are available
|
|
RUN [ $(ldd /usr/local/bin/cephcsi | grep -c '=> not found') = '0' ]
|
|
|
|
ENTRYPOINT ["/usr/local/bin/cephcsi"]
|