Closed absurdfarce closed 1 year ago
Curious if we should be doing it like docker pull datastax/dse-server:6.8.33-ubi7-1
? 🤔
This isn't my area of expertise but my understanding is that the UBI images are still tied to a specific platform just like any other Docker image. Dockerhub reports all of the currently published images target amd64 anyway. My guess would be that the larger issue is that we don't have DSE images for ARM64 and I'm unaware of any plan to add them.
I had some luck fiddling with DSE images and startup options, but not enough to propose a fix unfortunately.
In CassandraTestResource
:
boolean dse = image.contains("dse");
boolean macSilicon =
System.getProperty("os.name").toLowerCase().contains("mac")
&& System.getProperty("os.arch").toLowerCase().contains("aarch64");
if (dse && macSilicon) {
// DSE has no image for Mac amd64, so we need to use the linux/amd64 image
LOGGER.warn(
"Using linux/amd64 image for DSE on Mac Silicon, make sure you have installed Rosetta");
cassandraContainer.withCreateContainerCmdModifier(cmd -> cmd.withPlatform("linux/amd64"));
}
Then in DseTestBase
:
@QuarkusTestResource(
value = CassandraTestResource.class,
initArgs = {
@ResourceArg(
name = "quarkus.cassandra.test.container.image",
value = "datastax/dse-server:6.8.25"),
// activate DSE Graph with the -g switch; the resulting command will be: dse cassandra -f -g
@ResourceArg(name = "quarkus.cassandra.test.container.cmd", value = "-g"),
@ResourceArg(name = "quarkus.cassandra.test.container.startup-timeout", value = "PT5M"),
@ResourceArg(
name = "quarkus.cassandra.test.container.jvm-opts",
value =
"-Dcassandra.skip_wait_for_gossip_to_settle=0 "
+ "-Dcassandra.num_tokens=1 "
+ "-Dcassandra.initial_token=0 "
+ "-Dinsights.default_mode=disabled "
+ "-Ddse.io.aio.enable=false")
})
public abstract class DseTestBase {}
However if I was able to get the container to start, 95% of the time it would stop mid-course with a JVM crash.
I believe the only safe option is to disable these tests on Apple Silicon, until arm64 images are available (if they are one day).
Test is unable to run the underlying Docker image:
Problem here appears to be the lack of AMD64 support for the DSE image:
Available tags for dse-server image can be found here.
┆Issue is synchronized with this Jira Task by Unito