You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by br...@apache.org on 2022/11/03 13:28:48 UTC
[cassandra-builds] 02/02: Add j17 to images; upgrade buster to bullseye
This is an automated email from the ASF dual-hosted git repository.
brandonwilliams pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/cassandra-builds.git
commit f59c8bf8c2c504475d85b261a60b5d48c9c14983
Author: Brandon Williams <dr...@gmail.com>
AuthorDate: Tue Aug 30 11:40:11 2022 -0500
Add j17 to images; upgrade buster to bullseye
Patch by brandonwilliams; reviewed by edimitrova for CASSANDRA-17854
---
README.md | 10 ++--
build-scripts/cassandra-deb-packaging.sh | 8 ++--
docker/almalinux-image.docker | 1 +
docker/build-debs.sh | 2 +-
.../{buster-image.docker => bullseye-image.docker} | 13 ++++--
docker/centos7-image.docker | 6 +++
docker/centos8-image.docker | 54 ----------------------
docker/jessie-image.docker | 49 --------------------
8 files changed, 25 insertions(+), 118 deletions(-)
diff --git a/README.md b/README.md
index 2d79a87..c2f6758 100644
--- a/README.md
+++ b/README.md
@@ -28,16 +28,14 @@ Prior to release, make sure to edit:
```docker build -t cass-build-rpms -f docker/almalinux-image.docker docker/```
The image will contain a clone of the Apache git repository by default. Using a different repository is possible by adding the `--build-arg CASSANDRA_GIT_URL=https://github.com/myuser/cassandra.git` parameter. All successive builds will be executed based on the repository cloned during docker image creation.
2. Run build script through docker (specify branch, e.g. cassandra-3.0 and version, e.g. 3.0.11):
- * Debian Jessie:
- ```docker run --rm -v `pwd`/dist:/dist `docker images -f label=org.cassandra.buildenv=jessie -q` /home/build/build-debs.sh <branch/tag>```
- * Debian Buster
- ```docker run --rm -v `pwd`/dist:/dist `docker images -f label=org.cassandra.buildenv=buster -q` /home/build/build-debs.sh <branch/tag>```
+ * Debian Bullseye
+ ```docker run --rm -v `pwd`/dist:/dist `docker images -f label=org.cassandra.buildenv=bullseye -q` /home/build/build-debs.sh <branch/tag>```
* RPM:
```docker run --rm -v `pwd`/dist:/dist `docker images -f label=org.cassandra.buildenv=almalinux -q` /home/build/build-rpms.sh <branch/tag>```
-For the build by Debian Buster, you have the possibility to build Cassandra either by Java 8 (default) or by Java 11. You control the Java version like following. If you want to build with Java 8, just omit that last option.
+For the build by Debian Bullseye, you have the possibility to build Cassandra either by Java 8 (default) or by Java 11. You control the Java version like following. If you want to build with Java 8, just omit that last option.
-```docker run --rm -v `pwd`/dist:/dist `docker images -f label=org.cassandra.buildenv=buster -q` /home/build/build-debs.sh <branch/tag> 11```
+```docker run --rm -v `pwd`/dist:/dist `docker images -f label=org.cassandra.buildenv=bullseye -q` /home/build/build-debs.sh <branch/tag> 11```
You should find newly created Debian and RPM packages in the `dist` directory.
diff --git a/build-scripts/cassandra-deb-packaging.sh b/build-scripts/cassandra-deb-packaging.sh
index a1483f0..980e9a5 100755
--- a/build-scripts/cassandra-deb-packaging.sh
+++ b/build-scripts/cassandra-deb-packaging.sh
@@ -26,18 +26,18 @@ java_version=$2
command -v docker >/dev/null 2>&1 || { echo >&2 "docker needs to be installed"; exit 1; }
(docker info >/dev/null 2>&1) || { echo >&2 "docker needs to running"; exit 1; }
[ -d "${cassandra_builds_dir}" ] || { echo >&2 "cassandra-builds directory must exist"; exit 1; }
-[ -f "${cassandra_builds_dir}/docker/buster-image.docker" ] || { echo >&2 "docker/buster-image.docker must exist"; exit 1; }
+[ -f "${cassandra_builds_dir}/docker/bullseye-image.docker" ] || { echo >&2 "docker/bullseye-image.docker must exist"; exit 1; }
[ -f "${cassandra_builds_dir}/docker/build-debs.sh" ] || { echo >&2 "docker/build-debs.sh must exist"; exit 1; }
# remove any previous older built images
-docker image prune --all --force --filter label=org.cassandra.buildenv=buster --filter "until=4h" || true
+docker image prune --all --force --filter label=org.cassandra.buildenv=bullseye --filter "until=4h" || true
pushd $cassandra_builds_dir
# Create build images containing the build tool-chain, Java and an Apache Cassandra git working directory
-docker build --build-arg CASSANDRA_GIT_URL=$CASSANDRA_GIT_URL --build-arg UID_ARG=`id -u` --build-arg GID_ARG=`id -g` -t cassandra-artifacts-buster:${sha} -f docker/buster-image.docker docker/
+docker build --build-arg CASSANDRA_GIT_URL=$CASSANDRA_GIT_URL --build-arg UID_ARG=`id -u` --build-arg GID_ARG=`id -g` -t cassandra-artifacts-bullseye:${sha} -f docker/bullseye-image.docker docker/
# Run build script through docker (specify branch, tag, or sha)
-docker run --rm -v "${deb_dir}":/dist -v ~/.m2/repository/:/home/build/.m2/repository/ cassandra-artifacts-buster:${sha} /home/build/build-debs.sh ${sha} ${java_version}
+docker run --rm -v "${deb_dir}":/dist -v ~/.m2/repository/:/home/build/.m2/repository/ cassandra-artifacts-bullseye:${sha} /home/build/build-debs.sh ${sha} ${java_version}
popd
diff --git a/docker/almalinux-image.docker b/docker/almalinux-image.docker
index 3b7b17a..db38d87 100644
--- a/docker/almalinux-image.docker
+++ b/docker/almalinux-image.docker
@@ -24,6 +24,7 @@ RUN yum -y install \
git \
java-1.8.0-openjdk-devel \
java-11-openjdk-devel \
+ java-17-openjdk-devel \
make \
rpm-build \
sudo \
diff --git a/docker/build-debs.sh b/docker/build-debs.sh
index 52e323a..f9e5366 100755
--- a/docker/build-debs.sh
+++ b/docker/build-debs.sh
@@ -1,5 +1,5 @@
#!/bin/bash -x
-# Expected to be run from inside cassandra-builds/docker/buster-image.docker
+# Expected to be run from inside cassandra-builds/docker/bullseye-image.docker
set -e
if [ "$#" -lt 1 ]; then
diff --git a/docker/buster-image.docker b/docker/bullseye-image.docker
similarity index 79%
rename from docker/buster-image.docker
rename to docker/bullseye-image.docker
index c24167c..976e433 100644
--- a/docker/buster-image.docker
+++ b/docker/bullseye-image.docker
@@ -1,4 +1,4 @@
-FROM debian:buster
+FROM debian:bullseye
ENV DEB_DIST_DIR=/dist
ENV BUILD_HOME=/home/build
@@ -6,7 +6,7 @@ ENV CASSANDRA_DIR=$BUILD_HOME/cassandra
ARG UID_ARG=1000
ARG GID_ARG=1000
-LABEL org.cassandra.buildenv=buster
+LABEL org.cassandra.buildenv=bullseye
VOLUME ${DEB_DIST_DIR}
@@ -27,15 +27,20 @@ RUN apt-get update && apt-get -y install \
curl \
devscripts \
git \
+ python2 \
sudo
-RUN echo 'deb http://ftp.debian.org/debian stretch main' >> /etc/apt/sources.list \
+RUN echo 'deb http://ftp.debian.org/debian bullseye main' >> /etc/apt/sources.list \
+ && echo 'deb http://ftp.debian.org/debian stretch main' >> /etc/apt/sources.list \
&& apt-get update \
- && apt-get install -y --no-install-recommends openjdk-8-jdk openjdk-11-jdk \
+ && apt-get install -y --no-install-recommends openjdk-8-jdk openjdk-11-jdk openjdk-17-jdk \
&& sed -i '$d' /etc/apt/sources.list \
&& apt-get update \
&& update-java-alternatives --set java-1.8.0-openjdk-$(dpkg --print-architecture)
+# dh-python is incompatible with python-is-python2, so we'll link it ourselves
+RUN ln -s /usr/bin/python2 /usr/bin/python
+
# create and change to build user
RUN groupadd --gid ${GID_ARG} --non-unique build \
&& adduser --uid ${UID_ARG} --gid ${GID_ARG} --disabled-login --gecos build build \
diff --git a/docker/centos7-image.docker b/docker/centos7-image.docker
index 0044bdb..f20ce44 100644
--- a/docker/centos7-image.docker
+++ b/docker/centos7-image.docker
@@ -41,6 +41,12 @@ RUN ln -sfn /opt/apache-ant-${ANT_VERSION} /opt/ant
RUN sh -c 'echo ANT_HOME=/opt/ant >> /etc/environment'
RUN ln -sfn /opt/ant/bin/ant /usr/bin/ant
+RUN until curl -S -s --retry 9 --retry-delay 1 https://download.java.net/java/GA/jdk17.0.2/dfd4a8d0985749f896bed50d7138ee7f/8/GPL/openjdk-17.0.2_linux-x64_bin.tar.gz -o openjdk-17.0.2_linux-x64_bin.tar.gz ; do echo "curl failed… trying again… " ; done
+RUN tar xvf openjdk-17.0.2_linux-x64_bin.tar.gz
+RUN mv jdk-17.0.2 /opt/jdk-17
+
+
+
RUN pip3 install --upgrade pip
# create and change to build user
diff --git a/docker/centos8-image.docker b/docker/centos8-image.docker
deleted file mode 100644
index 226dcec..0000000
--- a/docker/centos8-image.docker
+++ /dev/null
@@ -1,54 +0,0 @@
-FROM centos:8.3.2011
-
-ENV BUILD_HOME=/home/build
-ENV RPM_BUILD_DIR=$BUILD_HOME/rpmbuild
-ENV RPM_DIST_DIR=/dist
-ENV CASSANDRA_DIR=$BUILD_HOME/cassandra
-ARG UID_ARG=1000
-ARG GID_ARG=1000
-
-LABEL org.cassandra.buildenv=centos
-
-VOLUME ${RPM_DIST_DIR}
-
-RUN echo "Building with arguments:" \
- && echo " - DEB_DIST_DIR=${DEB_DIST_DIR}" \
- && echo " - BUILD_HOME=${BUILD_HOME}" \
- && echo " - CASSANDRA_DIR=${CASSANDRA_DIR}" \
- && echo " - UID_ARG=${UID_ARG}" \
- && echo " - GID_ARG=${GID_ARG}"
-
-# install deps
-RUN yum -y install \
- ant \
- git \
- java-1.8.0-openjdk-devel \
- java-11-openjdk-devel \
- make \
- rpm-build \
- sudo \
- python3-pip
-
-RUN until curl -S -s --retry 9 --retry-connrefused --retry-delay 1 http://mirror.centos.org/centos/7/os/x86_64/Packages/ant-junit-1.9.4-2.el7.noarch.rpm -o ant-junit-1.9.4-2.el7.noarch.rpm ; do echo "curl failed… trying again… " ; done
-
-RUN rpm -i --nodeps ant-junit-1.9.4-2.el7.noarch.rpm
-
-RUN pip3 install --upgrade pip
-
-# create and change to build user
-RUN groupadd --gid ${GID_ARG} --non-unique build \
- && adduser --uid ${UID_ARG} --gid ${GID_ARG} build
-RUN echo "build ALL=(root) NOPASSWD:ALL" > /etc/sudoers.d/build && \
- chmod 0440 /etc/sudoers.d/build
-
-USER build
-
-RUN mkdir -p $RPM_BUILD_DIR/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
-
-# Clone Cassandra and cache maven artifacts
-ARG CASSANDRA_GIT_URL=https://github.com/apache/cassandra.git
-RUN git config --global http.postBuffer 524288000
-RUN git clone ${CASSANDRA_GIT_URL} ${CASSANDRA_DIR}
-WORKDIR $CASSANDRA_DIR
-
-COPY build-rpms.sh $BUILD_HOME/
diff --git a/docker/jessie-image.docker b/docker/jessie-image.docker
deleted file mode 100644
index b564a15..0000000
--- a/docker/jessie-image.docker
+++ /dev/null
@@ -1,49 +0,0 @@
-FROM debian:jessie-backports
-
-ENV DEB_DIST_DIR=/dist
-ENV BUILD_HOME=/home/build
-ENV CASSANDRA_DIR=$BUILD_HOME/cassandra
-
-LABEL org.cassandra.buildenv=jessie
-
-VOLUME ${DEB_DIST_DIR}
-
-# configure apt to retry downloads
-RUN echo 'APT::Acquire::Retries "9";' > /etc/apt/apt.conf.d/80-retries
-
-RUN rm /etc/apt/sources.list.d/backports.list
-RUN echo "deb [check-valid-until=no] http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list
-
-# install deps
-RUN apt-get update -o Acquire::Check-Valid-Until=false && apt-get -y install \
- ant \
- build-essential \
- curl \
- devscripts \
- git \
- sudo
-
-RUN apt-get -y -t jessie-backports --no-install-recommends install \
- openjdk-7-jdk \
- openjdk-8-jdk
-
-RUN apt-get -y -t jessie-backports install \
- python-sphinx \
- python-sphinx-rtd-theme
-
-RUN update-java-alternatives --set java-1.8.0-openjdk-$(dpkg --print-architecture)
-
-# create and change to build user
-RUN adduser --disabled-login --gecos build build && gpasswd -a build sudo
-RUN echo "build ALL=(root) NOPASSWD:ALL" > /etc/sudoers.d/build && \
- chmod 0440 /etc/sudoers.d/build
-
-USER build
-
-# clone Cassandra and cache maven artifacts
-ARG CASSANDRA_GIT_URL=https://github.com/apache/cassandra.git
-RUN git config --global http.postBuffer 524288000
-RUN git clone ${CASSANDRA_GIT_URL} ${CASSANDRA_DIR}
-WORKDIR ${CASSANDRA_DIR}
-
-COPY build-debs.sh $BUILD_HOME/
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org