diff --git a/docker-mods.v3 b/docker-mods.v3 index a77d2e3..97e3399 100755 --- a/docker-mods.v3 +++ b/docker-mods.v3 @@ -255,6 +255,13 @@ run_mods() { write_mod_debug "Running in debug mode" write_mod_debug "Mod script version ${MOD_SCRIPT_VER}" mkdir -p /modcache + # Fetch internal fds + FD_MAX=0 + while IFS= read -r -d '' FD; do + if [[ $(cat "${FD}") -gt "${FD_MAX}" ]]; then + FD_MAX=$(cat "${FD}") + fi + done < <(find /etc/s6-overlay/s6-rc.d -type f -name 'notification-fd' -print0) for DOCKER_MOD in $(echo "${DOCKER_MODS}" | tr '|' '\n'); do # Support alternative endpoints case "${DOCKER_MOD}" in @@ -421,6 +428,11 @@ run_mods() { if [[ -d /tmp/mod/etc/services.d ]]; then rm -rf /tmp/mod/etc/services.d fi + # Rationalise fds + while IFS= read -r -d '' FD; do + (( FD_MAX++ )) + echo $FD_MAX > "${FD}" + done < <(find /tmp/mod/etc/s6-overlay/s6-rc.d -type f -name 'notification-fd' -print0) shopt -s dotglob cp -R /tmp/mod/* / shopt -u dotglob