From f0eaf3a894c37ba49b05f9c92ff6a9cc4cd2ba05 Mon Sep 17 00:00:00 2001 From: Michael Burman Date: Fri, 20 Sep 2024 14:14:25 +0300 Subject: [PATCH] Add sstable-tools to Cassandra 4.1 images --- cassandra/Dockerfile-4.1.ubi8 | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/cassandra/Dockerfile-4.1.ubi8 b/cassandra/Dockerfile-4.1.ubi8 index 696b4f33..f50ed6da 100644 --- a/cassandra/Dockerfile-4.1.ubi8 +++ b/cassandra/Dockerfile-4.1.ubi8 @@ -55,7 +55,7 @@ RUN if test ! -e apache-cassandra-${CASSANDRA_VERSION}-bin.tar.gz; then curl -L ############################################################# # Build the Management API -FROM --platform=$BUILDPLATFORM maven:3.8.6-openjdk-11-slim AS mgmtapi-setup +FROM --platform=$BUILDPLATFORM maven:3.9-eclipse-temurin-11 AS mgmtapi-setup WORKDIR / @@ -99,6 +99,18 @@ RUN mkdir -m 775 ${MAAC_PATH} \ ############################################################ +# Build tools we need +FROM --platform=$BUILDPLATFORM maven:3.9-eclipse-temurin-11 AS tools-builder + +ARG CASSANDRA_VERSION +ENV CASSANDRA_VERSION=${CASSANDRA_VERSION} + +WORKDIR / +RUN git clone https://github.com/instaclustr/cassandra-sstable-tools.git +WORKDIR /cassandra-sstable-tools +RUN git checkout cassandra-${CASSANDRA_VERSION} && mvn clean package + +# Build final image FROM registry.access.redhat.com/ubi${UBI_MAJOR}/ubi-minimal:${UBI_BASETAG} AS cassandra ARG TARGETARCH ARG CASSANDRA_VERSION @@ -160,6 +172,10 @@ RUN if ! grep -qxF "JVM_OPTS=\"\$JVM_OPTS -javaagent:${MGMT_AGENT_JAR}\"" < ${CA echo "JVM_OPTS=\"\$JVM_OPTS -javaagent:${MGMT_AGENT_JAR}\"" >> ${CASSANDRA_CONF}/cassandra-env.sh ; \ fi +# Copy sstable-tools +COPY --from=tools-builder --chown=cassandra:root /cassandra-sstable-tools/target/ic-sstable-tools.jar $CASSANDRA_HOME/lib +COPY --from=tools-builder --chown=cassandra:root --chmod=755 /cassandra-sstable-tools/bin/ic-sstable-tools /usr/local/bin + # backwards compat with upstream ENTRYPOINT COPY cassandra/scripts/docker-entrypoint.sh /usr/local/bin/ RUN chmod +x /usr/local/bin/docker-entrypoint.sh && \