Wer kann mir helfen zu analysieren, warum die Rekonstruktion nicht möglich ist, wenn die Real IP von CF hinzugefügt wird

Laut deinem Log ist der Schritt /tmp/add-cloudflare-ips fehlgeschlagen, aber es kann nicht festgestellt werden, welcher Befehl in diesem Skript genau.

Pups::ExecError: /tmp/add-cloudflare-ips fehlgeschlagen mit Rückgabecode #<Process::Status: pid 4229 exit 8>
Ort des Fehlschlags: /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec fehlgeschlagen mit den Parametern "/tmp/add-cloudflare-ips"
bootstrap fehlgeschlagen mit Exit-Code 8

Entferne die Cloudflare-Zeile in deiner app.yml, baue neu, führe dann die Befehle aus templates/cloudflare.template.yml manuell Schritt für Schritt im Container aus und führe anschließend nginx -s reload aus. Meiner Erfahrung nach könnte es ein Netzwerkproblem sein, das zum Fehlschlag von wget führt.

run:
  - file:
      path: /tmp/add-cloudflare-ips
      chmod: +x
      contents: |
        #!/bin/bash -e
        # CloudFlare IPs herunterladen
        wget -q https://www.cloudflare.com/ips-v4/ -O - > /tmp/cloudflare-ips
        echo >> /tmp/cloudflare-ips
        wget -q https://www.cloudflare.com/ips-v6/ -O - >> /tmp/cloudflare-ips
        # In Nginx-Befehle umwandeln und für die Aufnahme in den sed append-Befehl escapen
        CONTENTS=$(</tmp/cloudflare-ips sed '/^$/d; s/^.*/set_real_ip_from &;/' | tr '\n' '\\' | sed 's/\\\\/\\\\n/g')

        echo CloudFlare IPs:
        echo $(echo | sed "/^/a $CONTENTS")
        # In discourse.conf einfügen
        sed -i "/sendfile on;/a $CONTENTS\\n" /etc/nginx/conf.d/discourse.conf
        #sed -i "/sendfile on;/a $CONTENTS\\nreal_ip_header CF-Connecting-IP;" /etc/nginx/conf.d/discourse.conf
        # Aufräumen
        rm /tmp/cloudflare-ips

  - exec: "/tmp/add-cloudflare-ips"
  - exec: "rm /tmp/add-cloudflare-ips"