Кто может помочь проанализировать, почему после добавления реального IP Cloudflare сборка не работает

Судя по вашему логу, проблема вызвана неудачным выполнением шага /tmp/add-cloudflare-ips, но в скрипте не удалось определить конкретную команду, которая привела к ошибке.

Pups::ExecError: /tmp/add-cloudflare-ips failed with return #<Process::Status: pid 4229 exit 8>
Location of failure: /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec failed with the params "/tmp/add-cloudflare-ips"
bootstrap failed with exit code 8

Удалите строку, связанную с Cloudflare, из файла app.yml, затем после пересборки войдите в контейнер и вручную выполните команды из templates/cloudflare.template.yml шаг за шагом. После этого выполните nginx -s reload. По моему опыту, ошибка может быть вызвана проблемами с сетью, из-за которых не удалось выполнить wget.

run:
  - file:
      path: /tmp/add-cloudflare-ips
      chmod: +x
      contents: |
        #!/bin/bash -e
        # Download list of CloudFlare ips
        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
        # Make into nginx commands and escape for inclusion into sed append command
        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")
        # Insert into discourse.conf
        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
        # Clean up
        rm /tmp/cloudflare-ips

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