You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ma...@apache.org on 2019/06/28 07:56:44 UTC
[james-project] 02/07: JAMES-2697 try to limit cassandra memory to
not depend on host memory
This is an automated email from the ASF dual-hosted git repository.
matthieu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
commit ce7eb5ad2657863f0c4957765ebcb4783124baca
Author: Matthieu Baechler <ma...@apache.org>
AuthorDate: Thu Mar 21 15:34:58 2019 +0100
JAMES-2697 try to limit cassandra memory to not depend on host memory
---
.../apache/james/backends/cassandra/DockerCassandra.java | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/DockerCassandra.java b/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/DockerCassandra.java
index f04a4a6..4ebe88d 100644
--- a/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/DockerCassandra.java
+++ b/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/DockerCassandra.java
@@ -25,6 +25,7 @@ import org.slf4j.LoggerFactory;
import org.testcontainers.DockerClientFactory;
import org.testcontainers.containers.GenericContainer;
import org.testcontainers.containers.output.OutputFrame;
+import org.testcontainers.images.builder.ImageFromDockerfile;
import com.github.dockerjava.api.DockerClient;
import com.google.common.collect.ImmutableMap;
@@ -34,6 +35,10 @@ public class DockerCassandra {
private static final Logger logger = LoggerFactory.getLogger(DockerCassandra.class);
private static final int CASSANDRA_PORT = 9042;
+ private static final int CASSANDRA_MEMORY = 650;
+
+ private static final String CASSANDRA_CONFIG_DIR = "$CASSANDRA_CONFIG";
+ private static final String JVM_OPTIONS = CASSANDRA_CONFIG_DIR + "/jvm.options";
private final GenericContainer<?> cassandraContainer;
private final DockerClient client;
@@ -41,7 +46,16 @@ public class DockerCassandra {
@SuppressWarnings("resource")
public DockerCassandra() {
client = DockerClientFactory.instance().client();
- cassandraContainer = new GenericContainer<>("cassandra:3.11.3")
+ boolean doNotDeleteImageAfterUsage = false;
+ cassandraContainer = new GenericContainer<>(
+ new ImageFromDockerfile("cassandra_3_11_3", doNotDeleteImageAfterUsage)
+ .withDockerfileFromBuilder(builder ->
+ builder
+ .from("cassandra:3.11.3")
+ .env("ENV CASSANDRA_CONFIG", "/etc/cassandra")
+ .run("echo \"-Xms" + CASSANDRA_MEMORY + "M\" >> " + JVM_OPTIONS)
+ .run("echo \"-Xmx" + CASSANDRA_MEMORY + "M\" >> " + JVM_OPTIONS)
+ .build()))
.withTmpFs(ImmutableMap.of("/var/lib/cassandra", "rw,noexec,nosuid,size=200m"))
.withExposedPorts(CASSANDRA_PORT)
.withLogConsumer(DockerCassandra::displayDockerLog);
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org