mirror of
				https://github.com/zokradonh/kopano-docker
				synced 2025-10-31 02:17:47 +00:00 
			
		
		
		
	Kopano spamd, Bugfixes (#17)
* Add container for kopano-spamd * Authenticate version requests if needed * Fix building of z-push for 'supported' base image * Install kopano-spamd package by default * Smaller fixes for kopano-spamd * Fix missing file header * simplify netrc usage
This commit is contained in:
		
							parent
							
								
									62e175b3ff
								
							
						
					
					
						commit
						3d7ff97aab
					
				| @ -47,7 +47,7 @@ RUN --mount=type=secret,id=repocred,target=/etc/apt/auth.conf.d/kopano.conf \ | |||||||
|     apt-get update && \ |     apt-get update && \ | ||||||
|     set -x && \ |     set -x && \ | ||||||
|     apt-get -o Debug::pkgProblemResolver=true install --no-install-recommends -y \ |     apt-get -o Debug::pkgProblemResolver=true install --no-install-recommends -y \ | ||||||
|         kopano-server-packages \ |         kopano-server-packages kopano-spamd \ | ||||||
|         ${ADDITIONAL_KOPANO_PACKAGES} \ |         ${ADDITIONAL_KOPANO_PACKAGES} \ | ||||||
|         && \ |         && \ | ||||||
|     coreversion=$(dpkg-query --showformat='${Version}' --show kopano-server) && \ |     coreversion=$(dpkg-query --showformat='${Version}' --show kopano-server) && \ | ||||||
|  | |||||||
							
								
								
									
										15
									
								
								core/defaultconfigs/spamd.py
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										15
									
								
								core/defaultconfigs/spamd.py
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,15 @@ | |||||||
|  | #!/usr/bin/env python3 | ||||||
|  | import os | ||||||
|  | import kcconf | ||||||
|  | 
 | ||||||
|  | # Component specific configurations | ||||||
|  | kcconf.configkopano({ | ||||||
|  |     r"/tmp/kopano/spamd.cfg": | ||||||
|  |     { | ||||||
|  |         # Certain configuration can be pre-defined at startup: | ||||||
|  |         #'log_level': "3" | ||||||
|  |     } | ||||||
|  | }) | ||||||
|  | 
 | ||||||
|  | # Override configs from environment variables | ||||||
|  | kcconf.configkopano(kcconf.parseenvironmentvariables(r"/tmp/kopano/")) | ||||||
							
								
								
									
										3
									
								
								core/goss/spamd/goss.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								core/goss/spamd/goss.yaml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,3 @@ | |||||||
|  | process: | ||||||
|  |   kopano-spamd: | ||||||
|  |     running: true | ||||||
							
								
								
									
										3
									
								
								core/goss/spamd/goss_wait.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								core/goss/spamd/goss_wait.yaml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,3 @@ | |||||||
|  | process: | ||||||
|  |   kopano-spamd: | ||||||
|  |     running: true | ||||||
| @ -104,6 +104,9 @@ search) | |||||||
| server) | server) | ||||||
| 	EXE="${EXE:-$(command -v kopano-server)}" | 	EXE="${EXE:-$(command -v kopano-server)}" | ||||||
| 	;; | 	;; | ||||||
|  | spamd) | ||||||
|  | 	EXE="${EXE:-$(command -v kopano-spamd)}" | ||||||
|  | 	;; | ||||||
| spooler) | spooler) | ||||||
| 	EXE="${EXE:-$(command -v kopano-spooler)}" | 	EXE="${EXE:-$(command -v kopano-spooler)}" | ||||||
| 	KOPANO_CON="$KCCONF_SPOOLER_SERVER_SOCKET" | 	KOPANO_CON="$KCCONF_SPOOLER_SERVER_SOCKET" | ||||||
| @ -246,6 +249,14 @@ search) | |||||||
| 		exec /usr/bin/python3 "$EXE" --config /tmp/kopano/search.cfg -F | 		exec /usr/bin/python3 "$EXE" --config /tmp/kopano/search.cfg -F | ||||||
| 	fi | 	fi | ||||||
| 	;; | 	;; | ||||||
|  | spamd) | ||||||
|  | 	dockerize \ | ||||||
|  | 		-wait "$KOPANO_CON" \ | ||||||
|  | 		-timeout 360s | ||||||
|  | 	# cleaning up env variables | ||||||
|  | 	unset "${!KCCONF_@}" | ||||||
|  | 	exec "$EXE" --config /tmp/kopano/spamd.cfg -F | ||||||
|  | 	;; | ||||||
| spooler) | spooler) | ||||||
| 	dockerize \ | 	dockerize \ | ||||||
| 		-wait "$KOPANO_CON" \ | 		-wait "$KOPANO_CON" \ | ||||||
|  | |||||||
| @ -524,6 +524,30 @@ services: | |||||||
|     tmpfs: |     tmpfs: | ||||||
|       - /tmp |       - /tmp | ||||||
| 
 | 
 | ||||||
|  |   kopano_spamd: | ||||||
|  |     image: ${docker_repo:-zokradonh}/kopano_core:${CORE_VERSION:-latest} | ||||||
|  |     read_only: true | ||||||
|  |     restart: unless-stopped | ||||||
|  |     container_name: ${COMPOSE_PROJECT_NAME}_spamd | ||||||
|  |     depends_on: | ||||||
|  |       - kopano_server | ||||||
|  |     volumes: | ||||||
|  |       - /etc/machine-id:/etc/machine-id | ||||||
|  |       - /var/lib/dbus/machine-id:/var/lib/dbus/machine-id | ||||||
|  |       - kopanosocket/:/run/kopano | ||||||
|  |       - kopanossl/:/kopano/ssl | ||||||
|  |       - kopanospamd/:/var/lib/kopano/spamd | ||||||
|  |     environment: | ||||||
|  |       - SERVICE_TO_START=spamd | ||||||
|  |       - TZ=${TZ} | ||||||
|  |     env_file: | ||||||
|  |       - kopano_spamd.env | ||||||
|  |     networks: | ||||||
|  |       - kopano-net | ||||||
|  |     tmpfs: | ||||||
|  |       - /tmp | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| volumes: | volumes: | ||||||
|   kdavstates: |   kdavstates: | ||||||
|   kopanodata: |   kopanodata: | ||||||
| @ -534,6 +558,7 @@ volumes: | |||||||
|   kopanowebapp: |   kopanowebapp: | ||||||
|   web: |   web: | ||||||
|   zpushstates: |   zpushstates: | ||||||
|  |   kopanospamd: | ||||||
| 
 | 
 | ||||||
| networks: | networks: | ||||||
|   kopano-net: |   kopano-net: | ||||||
|  | |||||||
							
								
								
									
										2
									
								
								setup.sh
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								setup.sh
									
									
									
									
									
								
							| @ -41,7 +41,7 @@ if [ ! -e /etc/machine-id ]; then | |||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
| echo "Creating individual env files for containers (if they do not exist already)" | echo "Creating individual env files for containers (if they do not exist already)" | ||||||
| for dockerenv in ldap password-self-service mail db kopano_ssl kopano_server kopano_webapp kopano_zpush kopano_grapi kopano_kapi kopano_dagent kopano_spooler kopano_gateway kopano_ical kopano_monitor kopano_scheduler kopano_search kopano_konnect kopano_kwmbridge kopano_kwmserver kopano_meet kopano_kapps; do | for dockerenv in ldap password-self-service mail db kopano_ssl kopano_server kopano_webapp kopano_zpush kopano_grapi kopano_kapi kopano_dagent kopano_spooler kopano_gateway kopano_ical kopano_monitor kopano_scheduler kopano_search kopano_konnect kopano_kwmbridge kopano_kwmserver kopano_meet kopano_kapps kopano_spamd; do | ||||||
| 	touch ./"$dockerenv".env | 	touch ./"$dockerenv".env | ||||||
| done | done | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -41,7 +41,7 @@ case $component in | |||||||
| core) | core) | ||||||
| 	KOPANO_CORE_REPOSITORY_URL=${KOPANO_CORE_REPOSITORY_URL:-""} | 	KOPANO_CORE_REPOSITORY_URL=${KOPANO_CORE_REPOSITORY_URL:-""} | ||||||
| 	if [[ $KOPANO_CORE_REPOSITORY_URL == http* ]]; then | 	if [[ $KOPANO_CORE_REPOSITORY_URL == http* ]]; then | ||||||
| 		version=$(curl -m 1 -s -S -L "$KOPANO_CORE_REPOSITORY_URL"/Packages | grep -A2 "Package: kopano-server-packages") | 		version=$(curl --netrc-file ./apt_auth.conf --netrc-optional -m 1 -s -S -L "$KOPANO_CORE_REPOSITORY_URL"/Packages | grep -A2 "Package: kopano-server-packages") | ||||||
| 		echo "${version##* }" | 		echo "${version##* }" | ||||||
| 		exit | 		exit | ||||||
| 	fi | 	fi | ||||||
| @ -49,7 +49,7 @@ core) | |||||||
| webapp) | webapp) | ||||||
| 	KOPANO_WEBAPP_REPOSITORY_URL=${KOPANO_WEBAPP_REPOSITORY_URL:-""} | 	KOPANO_WEBAPP_REPOSITORY_URL=${KOPANO_WEBAPP_REPOSITORY_URL:-""} | ||||||
| 	if [[ $KOPANO_WEBAPP_REPOSITORY_URL == http* ]]; then | 	if [[ $KOPANO_WEBAPP_REPOSITORY_URL == http* ]]; then | ||||||
| 		version=$(curl -m 1 -s -S -L "$KOPANO_WEBAPP_REPOSITORY_URL"/Packages | grep -m1 -A1 "Package: kopano-webapp") | 		version=$(curl --netrc-file ./apt_auth.conf --netrc-optional -m 1 -s -S -L "$KOPANO_WEBAPP_REPOSITORY_URL"/Packages | grep -m1 -A1 "Package: kopano-webapp") | ||||||
| 		echo "${version##* }" | 		echo "${version##* }" | ||||||
| 		exit | 		exit | ||||||
| 	fi | 	fi | ||||||
| @ -65,7 +65,7 @@ zpush) | |||||||
| meet) | meet) | ||||||
| 	KOPANO_MEET_REPOSITORY_URL=${KOPANO_MEET_REPOSITORY_URL:-""} | 	KOPANO_MEET_REPOSITORY_URL=${KOPANO_MEET_REPOSITORY_URL:-""} | ||||||
| 	if [[ $KOPANO_MEET_REPOSITORY_URL == http* ]]; then | 	if [[ $KOPANO_MEET_REPOSITORY_URL == http* ]]; then | ||||||
| 		version=$(curl -m 1 -s -S -L "$KOPANO_MEET_REPOSITORY_URL"/Packages | grep -A2 "Package: kopano-meet-packages") | 		version=$(curl --netrc-file ./apt_auth.conf --netrc-optional -m 1 -s -S -L "$KOPANO_MEET_REPOSITORY_URL"/Packages | grep -A2 "Package: kopano-meet-packages") | ||||||
| 		echo "${version##* }" | 		echo "${version##* }" | ||||||
| 		exit | 		exit | ||||||
| 	fi | 	fi | ||||||
| @ -87,4 +87,4 @@ if [ ${#versiontemp} -lt 2 ]; then | |||||||
| 	exit 1 | 	exit 1 | ||||||
| fi	 | fi	 | ||||||
| 
 | 
 | ||||||
| echo "$currentVersion" | echo "$currentVersion" | ||||||
|  | |||||||
| @ -34,7 +34,9 @@ VOLUME /var/lib/z-push/ | |||||||
| SHELL ["/bin/bash", "-o", "pipefail", "-c"] | SHELL ["/bin/bash", "-o", "pipefail", "-c"] | ||||||
| 
 | 
 | ||||||
| # install Z-Push | # install Z-Push | ||||||
| RUN \ | # hadolint currently does not understand the extended buildkit syntax https://github.com/hadolint/hadolint/issues/347 | ||||||
|  | # hadolint ignore=SC2215,DL3015 | ||||||
|  | RUN --mount=type=secret,id=repocred,target=/etc/apt/auth.conf.d/kopano.conf \ | ||||||
|     # prepare z-push installation |     # prepare z-push installation | ||||||
|     echo "deb ${KOPANO_ZPUSH_REPOSITORY_URL} /" > /etc/apt/sources.list.d/zpush.list && \ |     echo "deb ${KOPANO_ZPUSH_REPOSITORY_URL} /" > /etc/apt/sources.list.d/zpush.list && \ | ||||||
|     # this is the same key as for the rest of the Kopano stack, making a separate download anyways as this may not be the case in the future  |     # this is the same key as for the rest of the Kopano stack, making a separate download anyways as this may not be the case in the future  | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user