From 54e332d259436b0b5cb5e8f38753a83797924135 Mon Sep 17 00:00:00 2001 From: Bitfoo Date: Sun, 20 Sep 2026 06:10:52 +0200 Subject: [PATCH] Fix: only pass --conf to flower when flowerconfig.py exists (#14182) * Fix: only pass --conf to flower when flowerconfig.py exists The service passes --conf=${PAPERLESS_SRC_DIR}/paperless/flowerconfig.py unconditionally, but the image does not ship that file. flower 2.0.1 tolerated this because it ignored a missing config whose basename matched its own default name; 2.1.0 dropped that basename() call (mher/flower#1391) and now raises FileNotFoundError, so flower crash-loops and never binds 5555. Pass the flag only when the file is present. --- .../rootfs/etc/s6-overlay/s6-rc.d/svc-flower/run | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/svc-flower/run b/docker/rootfs/etc/s6-overlay/s6-rc.d/svc-flower/run index a3e4b6a3e6..202adbf684 100755 --- a/docker/rootfs/etc/s6-overlay/s6-rc.d/svc-flower/run +++ b/docker/rootfs/etc/s6-overlay/s6-rc.d/svc-flower/run @@ -2,6 +2,7 @@ # shellcheck shell=bash declare -r log_prefix="[svc-flower]" +declare -r flower_config="${PAPERLESS_SRC_DIR}/paperless/flowerconfig.py" echo "${log_prefix} Checking if we should start flower..." @@ -9,12 +10,20 @@ if [[ -n "${PAPERLESS_ENABLE_FLOWER}" ]]; then # Small delay to allow celery to be up first echo "${log_prefix} Starting flower in 5s" sleep 5 - cd ${PAPERLESS_SRC_DIR} + cd "${PAPERLESS_SRC_DIR}" || exit 1 + + # Only pass --conf if the file is actually there. The image does not ship one, and + # flower >= 2.1.0 exits with FileNotFoundError when an explicitly given --conf path + # does not exist (mher/flower#1391). Earlier versions silently ignored it. + declare -a conf_args=() + if [[ -f "${flower_config}" ]]; then + conf_args=(--conf="${flower_config}") + fi if [[ -n "${USER_IS_NON_ROOT}" ]]; then - exec /usr/local/bin/celery --app paperless flower --conf=${PAPERLESS_SRC_DIR}/paperless/flowerconfig.py + exec /usr/local/bin/celery --app paperless flower "${conf_args[@]}" else - exec s6-setuidgid paperless /usr/local/bin/celery --app paperless flower --conf=${PAPERLESS_SRC_DIR}/paperless/flowerconfig.py + exec s6-setuidgid paperless /usr/local/bin/celery --app paperless flower "${conf_args[@]}" fi else