Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow cassandra-trunk docker image to be built from any repo/branch #303

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion cassandra-trunk/Dockerfile.ubi8
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@ RUN if test ! -e tini-amd64; then curl -L -O "https://github.com/krallin/tini/re

# Build and extract Cassandra
FROM --platform=$BUILDPLATFORM azul/zulu-openjdk-debian:11 as cass-builder
ARG REPO=https://github.com/apache/cassandra.git
ARG BRANCH=trunk
ARG COMMITSHA="HEAD"
ENV CASSANDRA_PATH /opt/cassandra
WORKDIR /build
Expand All @@ -42,7 +44,7 @@ RUN set -x \
&& rm -rf /var/lib/apt/lists/* \
&& apt-get update \
&& apt-get install -y --no-install-recommends git ant ant-optional make maven \
&& git clone -b trunk --single-branch https://github.com/apache/cassandra.git \
&& git clone -b ${BRANCH} --single-branch ${REPO} \
Copy link
Contributor

@emerkle826 emerkle826 Jun 16, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So this will work as long as the branch you pick is based on a 5.0 version of Cassandra, and not a Release branch (i.e. the build artifact will be 5.0-SNAPSHOT). If not, then you will need to handle:

  1. https://github.com/yukim/management-api-for-apache-cassandra/blob/feature/cassandra-repo-arg/cassandra-trunk/Dockerfile.ubi8#L53

As the build artifact is assumed to be 5.0-SNAPSHOT

  1. https://github.com/yukim/management-api-for-apache-cassandra/blob/feature/cassandra-repo-arg/cassandra-trunk/Dockerfile.ubi8#L90-L97

You also have to adjust which artifacts of Management API are removed, kept and sym-linked in the section above. There are different artifacts built for different versions of Cassandra and things won't work if you include the wrong one.

  1. https://github.com/yukim/management-api-for-apache-cassandra/blob/feature/cassandra-repo-arg/cassandra-trunk/Dockerfile.ubi8#L103

The CDC_AGENT_EDITION variable also needs to changed, depending on which version of Cassandra.

Having said all this, your changes should work as long as the branch is a 5.0-SNAPSHOT version. Seeing as how this Dockerfile is in the cassandra-trunk folder, I think that is a safe assumption for now.

I can approve this PR as-is, with all of the above caveats noted. However, it would be nice if you could figure out a way to deduce the Cassandra version so it's not hardcoded to 5.0-SNAPSHOT here: https://github.com/yukim/management-api-for-apache-cassandra/blob/feature/cassandra-repo-arg/cassandra-trunk/Dockerfile.ubi8#L53

Let me know if you are willing to try this and I can wait to approve this PR then. If not, I think I can approve it now and this can be addressed later.

&& cd cassandra \
&& git checkout $(git rev-parse --short ${COMMITSHA}) \
#&& ant -q -S echo-base-version > /build/cassandra.version \
Expand Down