cassandra (4.1)
Published 2026-02-25 03:43:56 +00:00 by Bryan Mellott
Installation
docker pull gitea.bryanmellott.com/ign-images/cassandra:4.1sha256:17dc669f7c9a1260816e8f908711d6c17deaed17742ae171416d1e3fb221b3fc
Image Layers
| # debian.sh --arch 'amd64' out/ 'bookworm' '@1771804800' |
| RUN /bin/sh -c set -eux; groupadd -r cassandra --gid=999; useradd -r -g cassandra --uid=999 cassandra # buildkit |
| RUN /bin/sh -c set -eux; apt-get update; apt-get install -y --no-install-recommends libjemalloc2 procps python3 iproute2 numactl ; rm -rf /var/lib/apt/lists/*; libjemalloc="$(readlink -e /usr/lib/*/libjemalloc.so.2)"; ln -sT "$libjemalloc" /usr/local/lib/libjemalloc.so; ldconfig # buildkit |
| ENV GOSU_VERSION=1.19 |
| RUN /bin/sh -c set -eux; savedAptMark="$(apt-mark showmanual)"; apt-get update; apt-get install -y --no-install-recommends ca-certificates gnupg wget; rm -rf /var/lib/apt/lists/*; dpkgArch="$(dpkg --print-architecture | awk -F- '{ print $NF }')"; wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch"; wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch.asc"; export GNUPGHOME="$(mktemp -d)"; gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4; gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu; gpgconf --kill all; rm -rf "$GNUPGHOME" /usr/local/bin/gosu.asc; apt-mark auto '.*' > /dev/null; [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark > /dev/null; apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; chmod +x /usr/local/bin/gosu; gosu --version; gosu nobody true # buildkit |
| ENV JAVA_HOME=/opt/java/openjdk |
| COPY /opt/java/openjdk /opt/java/openjdk # buildkit |
| ENV PATH=/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin |
| RUN /bin/sh -c java --version # buildkit |
| ENV CASSANDRA_HOME=/opt/cassandra |
| ENV CASSANDRA_CONF=/etc/cassandra |
| ENV PATH=/opt/cassandra/bin:/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin |
| ENV GPG_KEYS=CEC86BB4A0BA9D0F90397CAEF8358FA2F2833C93 C4965EE9E3015D192CCCF2B6F758CE318D77295D 5AED1BF378E9A19DADE1BCB34BD736A82B5C1B00 514A2AD631A57A16DD0047EC749D6EEC0353B12C A26E528B271F19B9E5D8E19EA278B781FE4B2BDA A4C465FEA0C552561A392A61E91335D77E3E87CB 9E66CEC6106D578D0B1EB9BFF1000962B7F6840C C4009872C59B49561310D966D0062876AF30F054 B7842CDAF36E6A3214FAE35D5E85B9AE0B84C041 3E9C876907A560ACA00964F363E9BAD215BBF5F0 F8B7FD00E05C932991A2CD6150EE103D162C5A55 7464AAD9068241C50BA6A26232F35CB2F546D93E CEC5C50B9C629EF0F5AB2706650B72EB14CCD622 |
| ENV CASSANDRA_VERSION=4.1.10 |
| ENV CASSANDRA_SHA512=42b941e230287adc6a3763db5d2d5d3b57e80f1d151f9582b6ac17a86971d601a5a1979b341ac1e00c1ca0eb7d0690c7e615dbad1d81fa76df195de0376d78a8 |
| RUN /bin/sh -c set -eux; savedAptMark="$(apt-mark showmanual)"; apt-get update; apt-get install -y --no-install-recommends ca-certificates gnupg wget; rm -rf /var/lib/apt/lists/*; ddist() { local f="$1"; shift; local distFile="$1"; shift; local success=; local distUrl=; for distUrl in https://dlcdn.apache.org/ https://archive.apache.org/dist/ ; do if wget --progress=dot:giga -O "$f" "$distUrl$distFile" && [ -s "$f" ]; then success=1; break; fi; done; [ -n "$success" ]; }; ddist 'cassandra-bin.tgz' "cassandra/$CASSANDRA_VERSION/apache-cassandra-$CASSANDRA_VERSION-bin.tar.gz"; echo "$CASSANDRA_SHA512 *cassandra-bin.tgz" | sha512sum --check --strict -; ddist 'cassandra-bin.tgz.asc' "cassandra/$CASSANDRA_VERSION/apache-cassandra-$CASSANDRA_VERSION-bin.tar.gz.asc"; export GNUPGHOME="$(mktemp -d)"; for key in $GPG_KEYS; do gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key"; done; gpg --batch --verify cassandra-bin.tgz.asc cassandra-bin.tgz; rm -rf "$GNUPGHOME"; apt-mark auto '.*' > /dev/null; [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark > /dev/null; apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; mkdir -p "$CASSANDRA_HOME"; tar --extract --file cassandra-bin.tgz --directory "$CASSANDRA_HOME" --strip-components 1; rm cassandra-bin.tgz*; [ ! -e "$CASSANDRA_CONF" ]; mv "$CASSANDRA_HOME/conf" "$CASSANDRA_CONF"; ln -sT "$CASSANDRA_CONF" "$CASSANDRA_HOME/conf"; dpkgArch="$(dpkg --print-architecture)"; case "$dpkgArch" in ppc64el) grep -- '^-Xss256k$' "$CASSANDRA_CONF/jvm-server.options"; sed -ri 's/^-Xss256k$/-Xss512k/' "$CASSANDRA_CONF/jvm-server.options"; grep -- '^-Xss512k$' "$CASSANDRA_CONF/jvm-server.options"; ;; esac; mkdir -p "$CASSANDRA_CONF" /var/lib/cassandra /var/log/cassandra; chown -R cassandra:cassandra "$CASSANDRA_CONF" /var/lib/cassandra /var/log/cassandra; chmod 1777 "$CASSANDRA_CONF" /var/lib/cassandra /var/log/cassandra; chmod -R a+rwX "$CASSANDRA_CONF"; ln -sT /var/lib/cassandra "$CASSANDRA_HOME/data"; ln -sT /var/log/cassandra "$CASSANDRA_HOME/logs"; cassandra -v # buildkit |
| VOLUME [/var/lib/cassandra] |
| COPY docker-entrypoint.sh /usr/local/bin/ # buildkit |
| ENTRYPOINT ["docker-entrypoint.sh"] |
| EXPOSE map[7000/tcp:{} 7001/tcp:{} 7199/tcp:{} 9042/tcp:{} 9160/tcp:{}] |
| CMD ["cassandra" "-f"] |