build-dovecot.sh 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #!/bin/bash
  2. . mailcow.conf
  3. ./build-network.sh
  4. NAME="dovecot-mailcow"
  5. build() {
  6. docker build --no-cache -t dovecot data/Dockerfiles/dovecot/.
  7. }
  8. if [[ ${1} == "--reconf" ]]; then
  9. reconf
  10. exit 0
  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 dovecot)" ]]; 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 dovecot
  22. build
  23. fi
  24. else
  25. build
  26. fi
  27. sed -i "/^connect/c\connect = \"host=mysql dbname=${DBNAME} user=${DBUSER} password=${DBPASS}\"" data/conf/dovecot/sql/*
  28. docker run \
  29. -p ${IMAP_PORT}:143 \
  30. -p ${IMAPS_PORT}:993 \
  31. -p ${POP_PORT}:110 \
  32. -p ${POPS_PORT}:995 \
  33. -p ${SIEVE_PORT}:4190\
  34. -v ${PWD}/data/conf/dovecot:/etc/dovecot:ro \
  35. -v ${PWD}/data/vmail:/var/vmail \
  36. -v ${PWD}/data/assets/ssl:/etc/ssl/mail/:ro \
  37. --name ${NAME} \
  38. --network=${DOCKER_NETWORK} \
  39. --network-alias dovecot \
  40. -h ${MAILCOW_HOSTNAME} \
  41. -d dovecot
  42. echo "Fixing permissions..."
  43. chown -R 5000:5000 data/vmail