46 lines
2.4 KiB
Bash
46 lines
2.4 KiB
Bash
#!/bin/bash
|
|
|
|
# Reading container IDs
|
|
# Wrapping as array to ensure trimmed content when calling $NGINX etc.
|
|
NGINX=($(curl --silent --insecure https://dockerapi/containers/json | jq -r '.[] | {name: .Config.Labels["com.docker.compose.service"], id: .Id}' | jq -rc 'select( .name | tostring | contains("nginx-mailcow")) | .id' | tr "\n" " "))
|
|
DOVECOT=($(curl --silent --insecure https://dockerapi/containers/json | jq -r '.[] | {name: .Config.Labels["com.docker.compose.service"], id: .Id}' | jq -rc 'select( .name | tostring | contains("dovecot-mailcow")) | .id' | tr "\n" " "))
|
|
POSTFIX=($(curl --silent --insecure https://dockerapi/containers/json | jq -r '.[] | {name: .Config.Labels["com.docker.compose.service"], id: .Id}' | jq -rc 'select( .name | tostring | contains("postfix-mailcow")) | .id' | tr "\n" " "))
|
|
|
|
reload_nginx(){
|
|
echo "Reloading Nginx..."
|
|
NGINX_RELOAD_RET=$(curl -X POST --insecure https://dockerapi/containers/${NGINX}/exec -d '{"cmd":"reload", "task":"nginx"}' --silent -H 'Content-type: application/json' | jq -r .type)
|
|
[[ ${NGINX_RELOAD_RET} != 'success' ]] && { echo "Could not reload Nginx, restarting container..."; restart_container ${NGINX} ; }
|
|
}
|
|
|
|
reload_dovecot(){
|
|
echo "Reloading Dovecot..."
|
|
DOVECOT_RELOAD_RET=$(curl -X POST --insecure https://dockerapi/containers/${DOVECOT}/exec -d '{"cmd":"reload", "task":"dovecot"}' --silent -H 'Content-type: application/json' | jq -r .type)
|
|
[[ ${DOVECOT_RELOAD_RET} != 'success' ]] && { echo "Could not reload Dovecot, restarting container..."; restart_container ${DOVECOT} ; }
|
|
}
|
|
|
|
reload_postfix(){
|
|
echo "Reloading Postfix..."
|
|
POSTFIX_RELOAD_RET=$(curl -X POST --insecure https://dockerapi/containers/${POSTFIX}/exec -d '{"cmd":"reload", "task":"postfix"}' --silent -H 'Content-type: application/json' | jq -r .type)
|
|
[[ ${POSTFIX_RELOAD_RET} != 'success' ]] && { echo "Could not reload Postfix, restarting container..."; restart_container ${POSTFIX} ; }
|
|
}
|
|
|
|
restart_container(){
|
|
for container in $*; do
|
|
echo "Restarting ${container}..."
|
|
C_REST_OUT=$(curl -X POST --insecure https://dockerapi/containers/${container}/restart --silent | jq -r '.msg')
|
|
echo "${C_REST_OUT}"
|
|
done
|
|
}
|
|
|
|
if [[ "${CERT_AMOUNT_CHANGED}" == "1" ]]; then
|
|
restart_container ${NGINX}
|
|
restart_container ${DOVECOT}
|
|
restart_container ${POSTFIX}
|
|
else
|
|
reload_nginx
|
|
#reload_dovecot
|
|
restart_container ${DOVECOT}
|
|
#reload_postfix
|
|
restart_container ${POSTFIX}
|
|
fi
|