docker-library / cassandra

Docker Official Image packaging for Cassandra
Apache License 2.0
262 stars 281 forks source link

Update to Bionic (and use upstream bin.tar.gz instead of apt packages) #199

Closed tianon closed 4 years ago

tianon commented 4 years ago

Also:

yosifkit commented 4 years ago

Apparently they don't support java newer than 8 on the current releases:

https://issues.apache.org/jira/browse/CASSANDRA-9608 https://issues.apache.org/jira/browse/CASSANDRA-13107

tianon commented 4 years ago

That's a full refactor, although I still need to look into the jemalloc bits because it's warning that it can't load jemalloc (on all versions) even though the package is installed.

tianon commented 4 years ago

In 5ae37e6, I'm now using adoptopenjdk instead which gives us libjemalloc1 again (fixing the jemalloc issues I was seeing) and gives us back support for multiple architectures.

$ diff -u <(bashbrew cat cassandra) <(bashbrew cat <(./generate-stackbrew-library.sh))
--- /dev/fd/63  2020-02-21 14:46:32.468138337 -0800
+++ /dev/fd/62  2020-02-21 14:46:32.472138226 -0800
@@ -2,21 +2,21 @@
 GitRepo: https://github.com/docker-library/cassandra.git

 Tags: 2.1.21, 2.1
-Architectures: amd64, arm64v8, i386
-GitCommit: f98d3fc5282a99cdfe1ec8aa808d6313080137c0
+Architectures: amd64, arm64v8, ppc64le
+GitCommit: de006e2143c7685102fcc790aec32ebdf1cf7789
 Directory: 2.1

-Tags: 2.2.15, 2.2, 2
-Architectures: amd64, i386
-GitCommit: 2852d6ace9623301bd831e38a6993a73f0a640a1
+Tags: 2.2.16, 2.2, 2
+Architectures: amd64, arm32v7, ppc64le
+GitCommit: de006e2143c7685102fcc790aec32ebdf1cf7789
 Directory: 2.2

-Tags: 3.0.19, 3.0
-Architectures: amd64, arm64v8, i386, ppc64le
-GitCommit: 006818b41131828443e1e192a7ad94a84fe668b9
+Tags: 3.0.20, 3.0
+Architectures: amd64, arm32v7, arm64v8, ppc64le
+GitCommit: de006e2143c7685102fcc790aec32ebdf1cf7789
 Directory: 3.0

-Tags: 3.11.5, 3.11, 3, latest
-Architectures: amd64, arm64v8, i386, ppc64le
-GitCommit: e5b7ed497ff74587560682dd4c6a2e9b01f818d9
+Tags: 3.11.6, 3.11, 3, latest
+Architectures: amd64, arm32v7, arm64v8, ppc64le
+GitCommit: de006e2143c7685102fcc790aec32ebdf1cf7789
 Directory: 3.11

(We probably need to do some architecture support validation work on these again to make sure they really are supported, but that work's definitely easier to do if the images are already built, so I don't see any harm in including them for now -- I already excluded the one I personally verified and I've some some other successful testing on both arm64 and ppc64le.)

tianon commented 4 years ago

(Updated to exclude s390x, which is still verified to be unsupported.)

tianon commented 4 years ago

Updated with testing from arm32v7 where 2.1 was the only version not to work! :smile:

zg commented 4 years ago

Why was CASSANDRA_CONFIG environment variable renamed to CASSANDRA_CONF?

tianon commented 4 years ago

@zg I think https://github.com/apache/cassandra/search?q=CASSANDRA_CONFIG vs https://github.com/apache/cassandra/search?q=CASSANDRA_CONF can answer that question more definitively than I can :sweat_smile:

What we were calling CASSANDRA_CONFIG has the same purpose as the real variable that Cassandra itself uses, which is CASSANDRA_CONF, so in switching to use the Cassandra binary packages, we aso switched to using their official environment variable (because otherwise we'd have to specify both).