FROM cassandra:5.0.5

# Create directories for mounting database and commitlogs
WORKDIR /logs/commitlog
RUN chown -R cassandra:cassandra /logs
WORKDIR /data/data
WORKDIR /data/hints
WORKDIR /data/saved_caches
RUN chown -R cassandra:cassandra /data
WORKDIR /

# Copy TWC custom configurations to container image. Remove unsupported characters.
COPY cassandra.twc.yaml /etc/cassandra/cassandra.yaml
RUN sed -i 's/\r//g' /etc/cassandra/cassandra.yaml
COPY jvm-server.twc.options /etc/cassandra/jvm-server.options
RUN sed -i 's/\r//g' /etc/cassandra/jvm-server.options
COPY jvm17-server.twc.options /etc/cassandra/jvm17-server.options
RUN sed -i 's/\r//g' /etc/cassandra/jvm17-server.options
COPY logback.twc.xml /etc/cassandra/logback.xml
RUN sed -i 's/\r//g' /etc/cassandra/logback.xml
RUN chown cassandra:cassandra /etc/cassandra/*

# Update JVM server options to reflect processors available
RUN sed -i "s/#-XX:ParallelGCThreads=16/-XX:ParallelGCThreads=$(nproc)/g" /etc/cassandra/jvm17-server.options
RUN sed -i "s/#-XX:ConcGCThreads=16/-XX:ConcGCThreads=$(nproc)/g" /etc/cassandra/jvm17-server.options
