Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ private static String buildSpecificImageDiscriminator() {

@SuppressWarnings("resource")
public DockerCassandra() {
this("cassandra_3_11_10-" + buildSpecificImageDiscriminator(), AdditionalDockerFileStep.IDENTITY);
this("cassandra_3_11_15-" + buildSpecificImageDiscriminator(), AdditionalDockerFileStep.IDENTITY);
}

private DockerCassandra(String imageName, AdditionalDockerFileStep additionalSteps) {
Expand Down Expand Up @@ -168,7 +168,7 @@ public void close() {
new ImageFromDockerfile(imageName,doNotDeleteImageAfterUsage)
.withDockerfileFromBuilder(builder ->
additionalSteps.applyStep(builder
.from("cassandra:3.11.10")
.from("cassandra:3.11.15")
.env("CASSANDRA_CONFIG", "/etc/cassandra")
.run("echo \"-Xms" + CASSANDRA_MEMORY + "M\" >> " + JVM_OPTIONS
+ "&& echo \"-Xmx" + CASSANDRA_MEMORY + "M\" >> " + JVM_OPTIONS
Expand All @@ -183,6 +183,7 @@ public void close() {
.build()))
.withTmpFs(ImmutableMap.of("/var/lib/cassandra", "rw,noexec,nosuid,size=200m"))
.withExposedPorts(CASSANDRA_PORT)
.withCreateContainerCmdModifier(createContainerCmd -> createContainerCmd.withName("james-cassandra-test-" + UUID.randomUUID()))
.withLogConsumer(DockerCassandra::displayDockerLog);
cassandraContainer
.waitingFor(new CassandraWaitStrategy(cassandraContainer));
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM nginx:1.22
FROM nginx:1.25

COPY conf/nginx-conf/ /etc/nginx/conf.d/
COPY conf/default.crt /etc/ssl/certs/default.crt
Expand Down
5 changes: 3 additions & 2 deletions examples/custom-imap/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,10 @@ services:
image: apache/james:memory-latest
container_name: james
hostname: james.local
command:
- --generate-keystore
volumes:
- ./target/custom-imap-3.8.0-SNAPSHOT-jar-with-dependencies.jar:/root/extensions-jars/custom-imap-3.8.0-SNAPSHOT-jar-with-dependencies.jar
- ./sample-configuration/keystore:/root/conf/keystore
- ./target/custom-imap-jar-with-dependencies.jar:/root/extensions-jars/custom-imap.jar
- ./sample-configuration/imapserver.xml:/root/conf/imapserver.xml
ports:
- "143:143"
Expand Down
1 change: 1 addition & 0 deletions examples/custom-imap/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,7 @@
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<finalName>custom-imap</finalName>
</configuration>
<executions>
<execution>
Expand Down
Binary file removed examples/custom-imap/sample-configuration/keystore
Binary file not shown.
2 changes: 1 addition & 1 deletion examples/custom-james-assembly/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@
<version>2.7.1</version>
<configuration>
<from>
<image>eclipse-temurin:11-jre-focal</image>
<image>eclipse-temurin:11-jre-jammy</image>
</from>
<to>
<image>apache/james</image>
Expand Down
4 changes: 2 additions & 2 deletions examples/imap-autoconf/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ services:
image: apache/james:memory-latest
container_name: james
hostname: james.local
volumes:
- ./keystore:/root/conf/keystore
command:
- --generate-keystore
ports:
- "465:465"
- "993:993"
Expand Down
Binary file removed examples/imap-autoconf/keystore
Binary file not shown.
5 changes: 3 additions & 2 deletions examples/metrics-graphite/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,10 @@ services:
image: apache/james:memory-latest
container_name: james
hostname: james.local
command:
- --generate-keystore
volumes:
- ./james/keystore:/root/conf/keystore
- ./target/metrics-graphite-3.8.0-SNAPSHOT-jar-with-dependencies.jar:/root/extensions-jars/metrics-graphite-3.8.0-SNAPSHOT-jar-with-dependencies.jar
- ./target/metrics-graphite-jar-with-dependencies.jar:/root/extensions-jars/metrics-graphite.jar
- ./james/extensions.properties:/root/conf/extensions.properties

graphite:
Expand Down
Binary file removed examples/metrics-graphite/james/keystore
Binary file not shown.
1 change: 1 addition & 0 deletions examples/metrics-graphite/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<finalName>metrics-graphite</finalName>
</configuration>
<executions>
<execution>
Expand Down
5 changes: 3 additions & 2 deletions examples/proxy-smtp/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ services:
volumes:
- ./haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro
ports:
- 25:25
- "25:25"
- 143:143
- 993:993
- 465:465
Expand All @@ -17,10 +17,11 @@ services:
image: apache/james:memory-latest
container_name: james
hostname: james.local
command:
- --generate-keystore
volumes:
- ./smtpserver.xml:/root/conf/smtpserver.xml:ro
- ./imapserver.xml:/root/conf/imapserver.xml:ro
- ./keystore:/root/conf/keystore

helo:
image: alpine:latest
Expand Down
Binary file removed examples/proxy-smtp/keystore
Binary file not shown.
4 changes: 2 additions & 2 deletions server/apps/cassandra-app/README.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,12 @@ Firstly, create your own user network on Docker for the James environment:

Third party compulsory dependencies:

* Cassandra 3.11.10
* Cassandra 3.11.15
* OpenSearch 2.1.0

[source]
----
$ docker run -d --network james -p 9042:9042 --name=cassandra cassandra:3.11.10
$ docker run -d --network james -p 9042:9042 --name=cassandra cassandra:3.11.15
$ docker run -d --network james -p 9200:9200 --name=opensearch --env 'discovery.type=single-node' opensearchproject/opensearch:2.1.0
----

Expand Down
32 changes: 27 additions & 5 deletions server/apps/cassandra-app/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,19 @@ services:

james:
depends_on:
- opensearch
- cassandra
- tika
cassandra:
condition: service_healthy
opensearch:
condition: service_started
tika:
condition: service_started
image: apache/james:cassandra-latest
container_name: james
hostname: james.local
networks:
- james
volumes:
- ${KEYSTORE_PATH}:/root/conf/keystore
ports:
- "80:80"
- "25:25"
Expand All @@ -21,17 +28,32 @@ services:
- "8000:8000"

opensearch:
networks:
james:
aliases:
- elasticsearch
image: opensearchproject/opensearch:2.1.0
environment:
- discovery.type=single-node
- DISABLE_INSTALL_DEMO_CONFIG=true
- DISABLE_SECURITY_PLUGIN=true

cassandra:
image: cassandra:3.11.10
image: cassandra:3.11.15
ports:
- "9042:9042"
healthcheck:
test: [ "CMD-SHELL", "[ $$(nodetool statusgossip) = running ]" ]
interval: 3s
timeout: 20s
retries: 5
networks:
- james

tika:
image: apache/tika:1.28.2
image: apache/tika:2.8.0.0
networks:
- james

networks:
james:
2 changes: 1 addition & 1 deletion server/apps/cassandra-app/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -335,7 +335,7 @@
<artifactId>jib-maven-plugin</artifactId>
<configuration>
<from>
<image>eclipse-temurin:11-jre-focal</image>
<image>eclipse-temurin:11-jre-jammy</image>
</from>
<to>
<image>apache/james</image>
Expand Down
8 changes: 4 additions & 4 deletions server/apps/distributed-app/README.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,17 @@ Firstly, create your own user network on Docker for the James environment:

Third party compulsory dependencies:

* Cassandra 3.11.10
* Cassandra 3.11.15
* OpenSearch 2.1.0
* RabbitMQ-Management 3.8.18
* Zenko Cloudserver or AWS S3

[source]
----
$ docker run -d --network james -p 9042:9042 --name=cassandra cassandra:3.11.10
$ docker run -d --network james -p 9042:9042 --name=cassandra cassandra:3.11.15
$ docker run -d --network james -p 9200:9200 --name=opensearch --env 'discovery.type=single-node' opensearchproject/opensearch:2.1.0
$ docker run -d --network james -p 5672:5672 -p 15672:15672 --name=rabbitmq rabbitmq:3.9.18-management
$ docker run -d --network james --env 'REMOTE_MANAGEMENT_DISABLE=1' --env 'SCALITY_ACCESS_KEY_ID=accessKey1' --env 'SCALITY_SECRET_ACCESS_KEY=secretKey1' --name=s3 zenko/cloudserver:8.2.6
$ docker run -d --network james -p 5672:5672 -p 15672:15672 --name=rabbitmq rabbitmq:3.12.1-management
$ docker run -d --network james --env 'REMOTE_MANAGEMENT_DISABLE=1' --env 'SCALITY_ACCESS_KEY_ID=accessKey1' --env 'SCALITY_SECRET_ACCESS_KEY=secretKey1' --name=s3 registry.scality.com/cloudserver/cloudserver:8.7.25
----

== Running
Expand Down
44 changes: 36 additions & 8 deletions server/apps/distributed-app/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,23 @@ services:

james:
depends_on:
- opensearch
- cassandra
- tika
- rabbitmq
- s3
cassandra:
condition: service_healthy
opensearch:
condition: service_started
tika:
condition: service_started
rabbitmq:
condition: service_started
s3:
condition: service_started
image: apache/james:distributed-latest
container_name: james
hostname: james.local
command:
- --generate-keystore
networks:
- james
ports:
- "80:80"
- "25:25"
Expand All @@ -28,28 +37,47 @@ services:
- discovery.type=single-node
- DISABLE_INSTALL_DEMO_CONFIG=true
- DISABLE_SECURITY_PLUGIN=true
networks:
james:
aliases:
- elasticsearch

cassandra:
image: cassandra:3.11.10
ports:
- "9042:9042"
healthcheck:
test: [ "CMD-SHELL", "[ $$(nodetool statusgossip) = running ]" ]
interval: 3s
timeout: 20s
retries: 5
networks:
- james

tika:
image: apache/tika:1.28.2
image: apache/tika:2.8.0.0
networks:
- james

rabbitmq:
image: rabbitmq:3.9.18-management
image: rabbitmq:3.12.1-management
ports:
- "5672:5672"
- "15672:15672"
networks:
- james

s3:
image: zenko/cloudserver:8.2.6
image: registry.scality.com/cloudserver/cloudserver:8.7.25
container_name: s3.docker.test
environment:
- SCALITY_ACCESS_KEY_ID=accessKey1
- SCALITY_SECRET_ACCESS_KEY=secretKey1
- S3BACKEND=mem
- LOG_LEVEL=trace
- REMOTE_MANAGEMENT_DISABLE=1
networks:
- james

networks:
james:
Original file line number Diff line number Diff line change
Expand Up @@ -200,18 +200,18 @@ services:
- discovery.type=single-node

cassandra:
image: cassandra:3.11.10
image: cassandra:3.11.15
ports:
- "9042:9042"

rabbitmq:
image: rabbitmq:3.9.18-management
image: rabbitmq:3.12.1-management
ports:
- "5672:5672"
- "15672:15672"

s3:
image: zenko/cloudserver:8.2.6
image: registry.scality.com/cloudserver/cloudserver:8.7.25
container_name: s3.docker.test
environment:
- SCALITY_ACCESS_KEY_ID=accessKey1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,23 +53,23 @@ Firstly, create your own user network on Docker for the James environment:

You need a running *cassandra* in docker which connects to *james* network. To achieve this run:

$ docker run -d --network james --name=cassandra cassandra:3.11.10
$ docker run -d --network james --name=cassandra cassandra:3.11.15

You need a running *rabbitmq* in docker which connects to *james* network. To achieve this run:

$ docker run -d --network james --name=rabbitmq rabbitmq:3.9.18-management
$ docker run -d --network james --name=rabbitmq rabbitmq:3.12.1-management

You need a running *Zenko Cloudserver* objectstorage in docker which connects to *james* network. To achieve this run:

$ docker run -d --network james --env 'REMOTE_MANAGEMENT_DISABLE=1' --env 'SCALITY_ACCESS_KEY_ID=accessKey1' --env 'SCALITY_SECRET_ACCESS_KEY=secretKey1' --name=s3 zenko/cloudserver:8.2.6
$ docker run -d --network james --env 'REMOTE_MANAGEMENT_DISABLE=1' --env 'SCALITY_ACCESS_KEY_ID=accessKey1' --env 'SCALITY_SECRET_ACCESS_KEY=secretKey1' --name=s3 registry.scality.com/cloudserver/cloudserver:8.7.25

You need a running *OpenSearch* in docker which connects to *james* network. To achieve this run:

$ docker run -d --network james -p 9200:9200 --name=opensearch --env 'discovery.type=single-node' opensearchproject/opensearch:2.1.0

If you want to use all the JMAP search capabilities, you may also need to start Tika container which connects to *james* network:

$ docker run -d --network james --name=tika apache/tika:1.28.2
$ docker run -d --network james --name=tika apache/tika:2.8.0.0

You can find more explanation on the need of Tika in this xref:configure/tika.adoc[page].

Expand Down Expand Up @@ -122,7 +122,7 @@ You can handle attachment text extraction before indexing in OpenSearch. This ma

Run tika connect to *james* network:

$ docker run -d --network james --name tika apache/tika:1.28.2
$ docker run -d --network james --name tika apache/tika:2.8.0.0

Run James:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

* Java 11 SDK
* Docker ∕ OpenSearch 2.1.0, RabbitMQ Management 3.8.18, S3 compatible
ObjectStorage and Cassandra 3.11.10
ObjectStorage and Cassandra 3.11.15
* Maven 3

=== Building the artifacts
Expand All @@ -29,7 +29,7 @@ mvn clean install

=== Requirements

* Cassandra 3.11.10
* Cassandra 3.11.15
* OpenSearch 2.1.0
* RabbitMQ-Management 3.8.17
* Swift ObjectStorage 2.15.1 or Zenko Cloudserver or AWS S3
Expand All @@ -50,10 +50,10 @@ running. You can either install the servers or launch them via docker:

[source,bash]
----
$ docker run -d -p 9042:9042 --name=cassandra cassandra:3.11.10
$ docker run -d -p 9042:9042 --name=cassandra cassandra:3.11.15
$ docker run -d --network james -p 9200:9200 --name=opensearch --env 'discovery.type=single-node' opensearchproject/opensearch:2.1.0
$ docker run -d -p 5672:5672 -p 15672:15672 --name=rabbitmq rabbitmq:3.9.18-management
$ docker run -d --env 'REMOTE_MANAGEMENT_DISABLE=1' --env 'SCALITY_ACCESS_KEY_ID=accessKey1' --env 'SCALITY_SECRET_ACCESS_KEY=secretKey1' --name=s3 zenko/cloudserver:8.2.6
$ docker run -d -p 5672:5672 -p 15672:15672 --name=rabbitmq rabbitmq:3.12.1-management
$ docker run -d --env 'REMOTE_MANAGEMENT_DISABLE=1' --env 'SCALITY_ACCESS_KEY_ID=accessKey1' --env 'SCALITY_SECRET_ACCESS_KEY=secretKey1' --name=s3 registry.scality.com/cloudserver/cloudserver:8.7.25
----

Once everything is set up, you just have to run the jar with:
Expand Down
Loading