Diskussion fortsetzen von Recent updates seemed to stop rake task themes:update to use a proxy server:
Ich konnte aufgrund dieses Timeout-Fehlers keine Theme-Komponente abrufen oder aktualisieren, schließlich habe ich es herausgefunden. Entfernen der folgenden Zeilen, die mit - beginnen, in der Datei \u003cDiscourse\u003e/lib/theme_store/git_importer.rb:
def clone_http!
uri = redirected_uri
raise_import_error! if %w[http https].exclude?(@uri.scheme)
- addresses = FinalDestination::SSRFDetector.lookup_and_filter_ips(uri.host)
- raise_import_error! if addresses.empty?
env = { "GIT_TERMINAL_PROMPT" => "0" }
args =
clone_args(
uri.to_s,
- "http.followRedirects" => "false",
- "http.curloptResolve" => "#{uri.host}:#{uri.port}:#{addresses.join(",")}",
)
begin
Discourse::Utils.execute_command(env, *args, timeout: COMMAND_TIMEOUT_SECONDS)
rescue RuntimeError
raise_import_error!
end
end
Dieser Code verarbeitet eine DNS-Vorauslösung und zwingt git, die IP-Adressen zu verwenden, die aus der Vorauslösung stammen. Ich weiß nicht, warum es auf meinem Server immer fehlschlug, also habe ich die Logik entfernt.
Tatsächlich habe ich eine Frage zu seiner Existenz: git selbst führt eine DNS-Lösung durch, warum brauchen wir diese Logik? Das ist nicht eindeutig.