005-build-rspamd.sh 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #!/bin/bash
  2. . mailcow.conf
  3. NAME="rspamd-mailcow"
  4. build() {
  5. docker build --no-cache -t rspamd data/Dockerfiles/rspamd/.
  6. }
  7. PDNS_IP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' pdns-mailcow 2> /dev/null)
  8. if [[ ! ${PDNS_IP} =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
  9. echo "Cannot determine Powerdns Recursor ip address. Is the container running?"
  10. exit 1
  11. fi
  12. echo "Stopping and removing containers with name tag ${NAME}..."
  13. if [[ ! -z $(docker ps -af "name=${NAME}" -q) ]]; then
  14. docker stop $(docker ps -af "name=${NAME}" -q)
  15. docker rm $(docker ps -af "name=${NAME}" -q)
  16. fi
  17. if [[ ! -z "$(docker images -q rspamd)" ]]; then
  18. read -r -p "Found image locally. Delete local and rebuild without cache anyway? [y/N] " response
  19. response=${response,,}
  20. if [[ $response =~ ^(yes|y)$ ]]; then
  21. docker rmi rspamd
  22. build
  23. fi
  24. else
  25. build
  26. fi
  27. # Needs network-alias because of different dns
  28. docker run \
  29. -v ${PWD}/data/conf/rspamd/override.d/:/etc/rspamd/override.d:ro \
  30. -v ${PWD}/data/conf/rspamd/local.d/:/etc/rspamd/local.d:ro \
  31. -v ${PWD}/data/conf/rspamd/lua/:/etc/rspamd/lua/:ro \
  32. -v ${PWD}/data/dkim/txt/:/etc/rspamd/dkim/txt/:ro \
  33. -v ${PWD}/data/dkim/keys/:/etc/rspamd/dkim/keys/:ro \
  34. --dns=${PDNS_IP} \
  35. --dns-search=${DOCKER_NETWORK} \
  36. --network=${DOCKER_NETWORK} \
  37. --network-alias=rspamd \
  38. -h rspamd \
  39. --name ${NAME} \
  40. -d rspamd
  41. /bin/bash ./fix-permissions.sh