build-postfix.sh 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #!/bin/bash
  2. . mailcow.conf
  3. ./build-network.sh
  4. NAME="postfix-mailcow"
  5. build() {
  6. docker build --no-cache -t postfix data/Dockerfiles/postfix/.
  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 postfix)" ]]; 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 postfix
  22. build
  23. fi
  24. else
  25. build
  26. fi
  27. sed -i "/myhostname/c\myhostname=${MAILCOW_HOSTNAME}" data/conf/postfix/main.cf
  28. sed -i "/^user/c\user = ${DBUSER}" data/conf/postfix/sql/*
  29. sed -i "/^password/c\password = ${DBPASS}" data/conf/postfix/sql/*
  30. sed -i "/^dbname/c\dbname = ${DBNAME}" data/conf/postfix/sql/*
  31. if [[ -z $(cat data/conf/postfix/main.cf | grep ${DOCKER_SUBNET}) ]]; then
  32. sed -i -e "s_^mynetworks.*_& ${DOCKER_SUBNET}_" data/conf/postfix/main.cf
  33. fi
  34. docker run \
  35. -p ${SMTP_PORT}:25 \
  36. -p ${SMTPS_PORT}:465 \
  37. -p ${SUBMISSION_PORT}:587 \
  38. -v ${PWD}/data/conf/postfix:/opt/postfix/conf:ro \
  39. -v ${PWD}/data/assets/ssl:/etc/ssl/mail/:ro \
  40. --name ${NAME} \
  41. --network=${DOCKER_NETWORK} \
  42. --network-alias postfix \
  43. -h ${MAILCOW_HOSTNAME} \
  44. -d postfix