Better support regular container restarts (#3929)
Co-authored-by: Brennan Kinney <5098581+polarathene@users.noreply.github.com> Co-authored-by: Georg Lauterbach <44545919+georglauterbach@users.noreply.github.com>
This commit is contained in:
parent
910667d586
commit
066773e79f
|
@ -74,6 +74,9 @@ The most noteworthy change of this release is the update of the container's base
|
|||
- `LOGROTATE_COUNT` defines the number of files kept by logrotate ([#3907](https://github.com/docker-mailserver/docker-mailserver/pull/3907))
|
||||
- The fail2ban log file is now also taken into account by `LOGROTATE_COUNT` and `LOGROTATE_INTERVAL` ([#3915](https://github.com/docker-mailserver/docker-mailserver/pull/3915), [#3919](https://github.com/docker-mailserver/docker-mailserver/pull/3919))
|
||||
|
||||
- **Internal:**
|
||||
- Regular container restarts are now better supported. Setup scripts that ran previously will now be skipped ([#3929](https://github.com/docker-mailserver/docker-mailserver/pull/3929))
|
||||
|
||||
### Updates
|
||||
|
||||
- **Environment Variables:**
|
||||
|
|
|
@ -33,7 +33,6 @@ function _register_functions() {
|
|||
|
||||
# ? >> Checks
|
||||
|
||||
_register_check_function '_check_improper_restart'
|
||||
_register_check_function '_check_hostname'
|
||||
_register_check_function '_check_log_level'
|
||||
_register_check_function '_check_spam_prefix'
|
||||
|
@ -170,6 +169,9 @@ function _register_functions() {
|
|||
# ? >> Executing all stacks / actual start of DMS
|
||||
# ------------------------------------------------------------
|
||||
|
||||
# Ensure DMS only adjusts config files for a new container.
|
||||
# Container restarts should skip as they retain the modified config.
|
||||
if [[ ! -f /CONTAINER_START ]]; then
|
||||
_early_supervisor_setup
|
||||
_early_variables_setup
|
||||
|
||||
|
@ -178,16 +180,24 @@ _log 'info' "Welcome to docker-mailserver ${DMS_RELEASE}"
|
|||
_register_functions
|
||||
_check
|
||||
_setup
|
||||
[[ ${LOG_LEVEL} =~ (debug|trace) ]] && print-environment
|
||||
_run_user_patches
|
||||
_start_daemons
|
||||
else
|
||||
# container was restarted
|
||||
_early_variables_setup
|
||||
|
||||
_log 'info' 'Container was restarted. Skipping setup routines.'
|
||||
_log 'info' "Welcome to docker-mailserver ${DMS_RELEASE}"
|
||||
|
||||
_register_functions
|
||||
fi
|
||||
|
||||
# marker to check if container was restarted
|
||||
date >/CONTAINER_START
|
||||
|
||||
[[ ${LOG_LEVEL} =~ (debug|trace) ]] && print-environment
|
||||
_start_daemons
|
||||
|
||||
_log 'info' "${HOSTNAME} is up and running"
|
||||
|
||||
touch /var/log/mail/mail.log
|
||||
tail -Fn 0 /var/log/mail/mail.log
|
||||
|
||||
exit 0
|
||||
exec tail -Fn 0 /var/log/mail/mail.log
|
||||
|
|
|
@ -14,15 +14,6 @@ function _check() {
|
|||
done
|
||||
}
|
||||
|
||||
function _check_improper_restart() {
|
||||
_log 'debug' 'Checking for improper restart'
|
||||
|
||||
if [[ -f /CONTAINER_START ]]; then
|
||||
_log 'warn' 'This container was (likely) improperly restarted which can result in undefined behavior'
|
||||
_log 'warn' "Please use 'docker compose up --force-recreate' or equivalent (view our troubleshooting docs)"
|
||||
fi
|
||||
}
|
||||
|
||||
function _check_hostname() {
|
||||
_log 'debug' 'Checking that hostname/domainname is provided or overridden'
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@ function _early_supervisor_setup() {
|
|||
if ! grep -q "loglevel = ${SUPERVISOR_LOGLEVEL}" /etc/supervisor/supervisord.conf; then
|
||||
case "${SUPERVISOR_LOGLEVEL}" in
|
||||
( 'critical' | 'error' | 'info' | 'debug' )
|
||||
sed -i -E \
|
||||
sedfile -i -E \
|
||||
"s|(loglevel).*|\1 = ${SUPERVISOR_LOGLEVEL}|g" \
|
||||
/etc/supervisor/supervisord.conf
|
||||
|
||||
|
|
Loading…
Reference in New Issue