From 7981bbd807ab1bb98222f9a2fffc34a5b9138e67 Mon Sep 17 00:00:00 2001
From: Markus Birth <130302+mbirth@users.noreply.github.com>
Date: Wed, 16 Nov 2022 01:43:44 +0100
Subject: [PATCH] Updated build script. Added Docker-Compose files and Solr.
---
README.md | 6 +-
build.sh | 3 +-
docker-compose.yml | 11 ++
docker-compose_solr.yml | 27 +++
docker-compose_solr_traefik.yml | 44 +++++
docker-compose_traefik.yml | 28 +++
solr/docker-onlysolr.yml | 14 ++
solr/dovecot/conf/schema.xml | 48 +++++
solr/dovecot/conf/solrconfig.xml | 289 +++++++++++++++++++++++++++++++
solr/dovecot/schema.xml | 48 +++++
solr/dovecot/solrconfig.xml | 289 +++++++++++++++++++++++++++++++
11 files changed, 803 insertions(+), 4 deletions(-)
create mode 100644 docker-compose.yml
create mode 100644 docker-compose_solr.yml
create mode 100644 docker-compose_solr_traefik.yml
create mode 100644 docker-compose_traefik.yml
create mode 100644 solr/docker-onlysolr.yml
create mode 100644 solr/dovecot/conf/schema.xml
create mode 100644 solr/dovecot/conf/solrconfig.xml
create mode 100644 solr/dovecot/schema.xml
create mode 100644 solr/dovecot/solrconfig.xml
diff --git a/README.md b/README.md
index 2af474f..30f50b0 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,9 @@
docker-dovecot
==============
+[DockerHub](https://hub.docker.com/r/mbirth/dovecot)
+
Based on [dovecot/docker](https://github.com/dovecot/docker).
-Just with Alpine Linux so it comes out as a 32MB image.
-
+Just with Alpine Linux so it comes out as a 32MB image and can be built for any platform
+Alpine supports.
diff --git a/build.sh b/build.sh
index 1f62d31..92afc13 100755
--- a/build.sh
+++ b/build.sh
@@ -3,5 +3,4 @@ WHEREAMI=$(dirname $0)
TODAY=$(date +'%Y-%m-%d')
echo "Today: $TODAY"
echo "Location: $WHEREAMI"
-docker build -t "dovecot:$TODAY" -t "dovecot:latest" "$WHEREAMI/"
-
+docker build -t "mbirth/dovecot:$TODAY" -t "mbirth/dovecot:latest" "$WHEREAMI/"
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 0000000..8354043
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,11 @@
+version: "3.8"
+
+services:
+ dovecot:
+ image: mbirth/dovecot:latest
+ restart: unless-stopped
+ volumes:
+ - /opt/docker/dovecot/conf:/conf
+ - /opt/docker/dovecot/data:/data
+ ports:
+ - 10143:143
diff --git a/docker-compose_solr.yml b/docker-compose_solr.yml
new file mode 100644
index 0000000..ec86d2f
--- /dev/null
+++ b/docker-compose_solr.yml
@@ -0,0 +1,27 @@
+version: "3.8"
+
+services:
+ dovecot:
+ image: mbirth/dovecot:latest
+ restart: unless-stopped
+ volumes:
+ - /opt/docker/dovecot/conf:/conf
+ - /opt/docker/dovecot/data:/data
+ ports:
+ - 10143:143
+ links:
+ - solr
+ depends_on:
+ - solr
+
+ solr:
+ image: solr:latest
+ restart: unless-stopped
+ environment:
+ LANG: C.UTF-8
+ SOLR_SSL_ENABLED: "false"
+ volumes:
+ - /opt/docker/dovecot/solr/var-solr:/var/solr
+ - /opt/docker/dovecot/solr:/setupdata
+ ports:
+ - 8983:8983
diff --git a/docker-compose_solr_traefik.yml b/docker-compose_solr_traefik.yml
new file mode 100644
index 0000000..52b8c07
--- /dev/null
+++ b/docker-compose_solr_traefik.yml
@@ -0,0 +1,44 @@
+version: "3.8"
+
+services:
+ dovecot:
+ image: mbirth/dovecot:latest
+ restart: unless-stopped
+ volumes:
+ - /opt/docker/dovecot/conf:/conf
+ - /opt/docker/dovecot/data:/data
+ #ports:
+ # - 10143:143
+ links:
+ - solr
+ depends_on:
+ - solr
+ networks:
+ - traefik-public
+ labels:
+ # Create TCP endpoint in Traefik called "imaps" on port 993
+ # Traefik will do the TLS part and forward it plaintext to 143 here
+ traefik.enable: "true"
+ traefik.tcp.routers.dovecot.entrypoints: imaps
+ traefik.tcp.routers.dovecot.rule: HostSNI(`*`)
+ traefik.tcp.routers.dovecot.tls: true
+ traefik.tcp.routers.dovecot.tls.passthrough: false
+ traefik.tcp.routers.dovecot.tls.certresolver: le
+ traefik.tcp.routers.dovecot.tls.domains.main: "mailserver.domain.com"
+ traefik.tcp.services.dovecot.loadbalancer.server.port: "143"
+
+ solr:
+ image: solr:latest
+ restart: unless-stopped
+ environment:
+ LANG: C.UTF-8
+ SOLR_SSL_ENABLED: "false"
+ volumes:
+ - /opt/docker/dovecot/solr/var-solr:/var/solr
+ - /opt/docker/dovecot/solr:/setupdata
+ ports:
+ - 8983:8983
+
+networks:
+ traefik-public:
+ external: true
diff --git a/docker-compose_traefik.yml b/docker-compose_traefik.yml
new file mode 100644
index 0000000..5d32a68
--- /dev/null
+++ b/docker-compose_traefik.yml
@@ -0,0 +1,28 @@
+version: "3.8"
+
+services:
+ dovecot:
+ image: mbirth/dovecot:latest
+ restart: unless-stopped
+ volumes:
+ - /opt/docker/dovecot/conf:/conf
+ - /opt/docker/dovecot/data:/data
+ #ports:
+ # - 10143:143
+ networks:
+ - traefik-public
+ labels:
+ # Create TCP endpoint in Traefik called "imaps" on port 993
+ # Traefik will do the TLS part and forward it plaintext to 143 here
+ traefik.enable: "true"
+ traefik.tcp.routers.dovecot.entrypoints: imaps
+ traefik.tcp.routers.dovecot.rule: HostSNI(`*`)
+ traefik.tcp.routers.dovecot.tls: true
+ traefik.tcp.routers.dovecot.tls.passthrough: false
+ traefik.tcp.routers.dovecot.tls.certresolver: le
+ traefik.tcp.routers.dovecot.tls.domains.main: "mailserver.domain.com"
+ traefik.tcp.services.dovecot.loadbalancer.server.port: "143"
+
+networks:
+ traefik-public:
+ external: true
diff --git a/solr/docker-onlysolr.yml b/solr/docker-onlysolr.yml
new file mode 100644
index 0000000..e0e46cb
--- /dev/null
+++ b/solr/docker-onlysolr.yml
@@ -0,0 +1,14 @@
+version: "3.8"
+
+services:
+ solr:
+ image: solr:latest
+ restart: unless-stopped
+ environment:
+ LANG: C.UTF-8
+ SOLR_SSL_ENABLED: "false"
+ volumes:
+ - /opt/docker/solr/var-solr:/var/solr
+ - /opt/docker/solr:/setupdata
+ ports:
+ - 8983:8983/tcp
diff --git a/solr/dovecot/conf/schema.xml b/solr/dovecot/conf/schema.xml
new file mode 100644
index 0000000..601a290
--- /dev/null
+++ b/solr/dovecot/conf/schema.xml
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id
+
diff --git a/solr/dovecot/conf/solrconfig.xml b/solr/dovecot/conf/solrconfig.xml
new file mode 100644
index 0000000..3661874
--- /dev/null
+++ b/solr/dovecot/conf/solrconfig.xml
@@ -0,0 +1,289 @@
+
+
+
+
+
+
+ 7.7.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ${solr.data.dir:}
+
+
+
+
+
+
+ ${solr.ulog.dir:}
+ ${solr.ulog.numVersionBuckets:65536}
+
+
+
+
+ ${solr.autoCommit.maxTime:15000}
+ false
+
+
+
+
+ ${solr.autoSoftCommit.maxTime:-1}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ 20
+
+
+ 200
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ explicit
+ 10
+
+
+
+
+
+ _text_
+
+
+
+
+
+
diff --git a/solr/dovecot/schema.xml b/solr/dovecot/schema.xml
new file mode 100644
index 0000000..601a290
--- /dev/null
+++ b/solr/dovecot/schema.xml
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id
+
diff --git a/solr/dovecot/solrconfig.xml b/solr/dovecot/solrconfig.xml
new file mode 100644
index 0000000..3661874
--- /dev/null
+++ b/solr/dovecot/solrconfig.xml
@@ -0,0 +1,289 @@
+
+
+
+
+
+
+ 7.7.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ${solr.data.dir:}
+
+
+
+
+
+
+ ${solr.ulog.dir:}
+ ${solr.ulog.numVersionBuckets:65536}
+
+
+
+
+ ${solr.autoCommit.maxTime:15000}
+ false
+
+
+
+
+ ${solr.autoSoftCommit.maxTime:-1}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ 20
+
+
+ 200
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ explicit
+ 10
+
+
+
+
+
+ _text_
+
+
+
+
+
+