ceph-mirror/Dockerfile.build
Sun Yuechi 3a6a5b0c38 Dockerfile.build: fetch sccache on riscv64
sccache ships a riscv64 release artifact since v0.13.0, published under the
riscv64gc target triple. Map uname -m "riscv64" to that asset name so the
download resolves on riscv64 instead of being skipped.

Signed-off-by: Sun Yuechi <sunyuechi@iscas.ac.cn>
2026-06-06 17:56:45 +08:00

46 lines
1.4 KiB
Docker

ARG DISTRO
FROM scratch as bootstrap
ARG CEPH_CTR_SRC=/usr/local/src/ceph
COPY \
src/script/lib-build.sh \
src/script/run-make.sh \
${CEPH_CTR_SRC}/src/script/
COPY debian ${CEPH_CTR_SRC}/debian
COPY \
ceph.spec.in \
do_cmake.sh \
install-deps.sh \
run-make-check.sh \
src/script/buildcontainer-setup.sh \
${CEPH_CTR_SRC}/
FROM $DISTRO
ARG DISTRO
ARG CEPH_CTR_SRC=/usr/local/src/ceph
ARG CLEAN_DNF=yes
ARG CEPH_BASE_BRANCH=main
ARG SCCACHE_VERSION=v0.15.0
ARG SCCACHE_REPO=https://github.com/mozilla/sccache
ARG WITH_CRIMSON=true
ARG FOR_MAKE_CHECK=1
COPY --from=bootstrap ${CEPH_CTR_SRC} ${CEPH_CTR_SRC}
# Note that we do not use ENV for the following. This is because we do not
# want them permamently stored in the container's layer.
RUN DISTRO=$DISTRO \
CEPH_BASE_BRANCH=$CEPH_BASE_BRANCH \
CLEAN_DNF=$CLEAN_DNF \
CEPH_CTR_SRC=${CEPH_CTR_SRC} \
WITH_CRIMSON=${WITH_CRIMSON} \
FOR_MAKE_CHECK=${FOR_MAKE_CHECK} \
bash -x ${CEPH_CTR_SRC}/buildcontainer-setup.sh
RUN \
if [ $(uname -m) != ppc64le ]; then \
SCCACHE_ARCH="$(uname -m)"; \
if [ "$SCCACHE_ARCH" = riscv64 ]; then SCCACHE_ARCH=riscv64gc; fi; \
SCCACHE_URL="${SCCACHE_REPO}/releases/download/${SCCACHE_VERSION}/sccache-${SCCACHE_VERSION}-${SCCACHE_ARCH}-unknown-linux-musl.tar.gz"; \
echo "${SCCACHE_URL}"; \
curl -sS -L $SCCACHE_URL | tar --no-anchored --strip-components=1 -C /usr/local/bin/ -xzf - sccache; \
fi