ARG RELEASE |
ARG LAUNCHPAD_BUILD_ARCH |
LABEL org.opencontainers.image.ref.name=ubuntu |
LABEL org.opencontainers.image.version=22.04 |
ADD file:1b6c8c9518be42fa2afe5e241ca31677fce58d27cdfa88baa91a65a259be3637 in / |
CMD ["/bin/bash"] |
ENV JAVA_HOME=/opt/java/openjdk |
ENV PATH=/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin |
ENV LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_ALL=en_US.UTF-8 |
RUN /bin/sh -c set -eux; apt-get update; DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends curl wget gnupg fontconfig ca-certificates p11-kit tzdata locales ; echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen; locale-gen en_US.UTF-8; rm -rf /var/lib/apt/lists/* # buildkit |
ENV JAVA_VERSION=jdk-17.0.14+7 |
RUN /bin/sh -c set -eux; ARCH="$(dpkg --print-architecture)"; case "${ARCH}" in amd64) ESUM='a4b0015872758aac6a5d17139e952a3951ee536ae6d9a99828823a80a71add56'; BINARY_URL='https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.14%2B7/OpenJDK17U-jre_x64_linux_hotspot_17.0.14_7.tar.gz'; ;; arm64) ESUM='bab3f352fc7144ac1435924f056872d16f4b32c8bcda58b9a77b636eb1c664f4'; BINARY_URL='https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.14%2B7/OpenJDK17U-jre_aarch64_linux_hotspot_17.0.14_7.tar.gz'; ;; armhf) ESUM='7ac439bce4d5ecddb250b31401b1c1a6da2762f51652eafedd53584a0d9e3130'; BINARY_URL='https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.14%2B7/OpenJDK17U-jre_arm_linux_hotspot_17.0.14_7.tar.gz'; ;; ppc64el) ESUM='2a730e9d34cce4d588739b626a034ed68c065a2db61048ee7886be48ec9fe460'; BINARY_URL='https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.14%2B7/OpenJDK17U-jre_ppc64le_linux_hotspot_17.0.14_7.tar.gz'; ;; s390x) ESUM='3887f14f95a14e65a985cfcee6696e01aadee06d3347ab70eb7d6b16ce397238'; BINARY_URL='https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.14%2B7/OpenJDK17U-jre_s390x_linux_hotspot_17.0.14_7.tar.gz'; ;; *) echo "Unsupported arch: ${ARCH}"; exit 1; ;; esac; wget --progress=dot:giga -O /tmp/openjdk.tar.gz ${BINARY_URL}; wget --progress=dot:giga -O /tmp/openjdk.tar.gz.sig ${BINARY_URL}.sig; export GNUPGHOME="$(mktemp -d)"; gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 3B04D753C9050D9A5D343F39843C48A565F8F04B; gpg --batch --verify /tmp/openjdk.tar.gz.sig /tmp/openjdk.tar.gz; rm -rf "${GNUPGHOME}" /tmp/openjdk.tar.gz.sig; echo "${ESUM} */tmp/openjdk.tar.gz" | sha256sum -c -; mkdir -p "$JAVA_HOME"; tar --extract --file /tmp/openjdk.tar.gz --directory "$JAVA_HOME" --strip-components 1 --no-same-owner ; rm -f /tmp/openjdk.tar.gz; find "$JAVA_HOME/lib" -name '*.so' -exec dirname '{}' ';' | sort -u > /etc/ld.so.conf.d/docker-openjdk.conf; ldconfig; java -Xshare:dump; # buildkit |
RUN /bin/sh -c set -eux; echo "Verifying install ..."; echo "java --version"; java --version; echo "Complete." # buildkit |
COPY --chmod=755 entrypoint.sh /__cacert_entrypoint.sh # buildkit |
ENTRYPOINT ["/__cacert_entrypoint.sh"] |
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.17 |
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 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=5.0.3 |
ENV CASSANDRA_SHA512=9b2fa89f729a89473934a18d4056d200859bed6e4f9d288b9fca9e8f4056c2d1ccb128948996368395ccd8bb4d5c94b9d8c79c7603de2dcb5b15976ac8c6da8f |
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"] |