(Ich habe dies mit unsupported-install markiert, würde aber trotzdem Guru-Input schätzen
)
Leute, ich versuche, ein einfaches Discourse-Image in einem einfachen(?) Multi-Docker-Container-Setup über Docker Compose auszuführen.
Hier sind die Grundlagen:
- Das Forum befindet sich in einem Unterordner, nennen wir ihn
/board, also (https://blah.com/board) - nginx leitet Aufrufe an
/board:443anlocalhost:4000weiter. - Discourse rails lief auf Port 4000 (da 3000 von etwas anderem verwendet wird)
- In den Rails ENVs ist eine entscheidende Einstellung enthalten, die dies zum Funktionieren bringt:
DISCOURSE_RELATIVE_URL_ROOT: „/board“
Jetzt habe ich die Version von Discourse aktualisiert (vor Ember-CLI) und die Dinge funktionieren nicht mehr.
Also füge ich natürlich einen Container für Ember-CLI hinzu, der Folgendes ausführt:
discourse-ember:
command: bin/ember-cli --port 4000 --proxy "http://localhost:4200"
Also behandelt Ember die eingehenden Anrufe auf Port 4000 im ersten Moment.
Ich verschiebe den Discourse Rails Container auf Port 4200 und starte alles.
Zuerst die gute Nachricht:
- Das Aufrufen der Entwicklungsseite funktioniert!
Jetzt die schlechte Nachricht:
- Funktioniert nicht im Browser, warum?:
weil es anscheinend versucht, auf Discourse zuzugreifen, aber anfordert:
/bootstrap.json
mit dem Fehler:
Discourse Ember CLI Proxy Error
Error: Could not get http://0.0.0.0:4200/bootstrap.json
FetchError: invalid json response body at http://0.0.0.0:4200/bootstrap.json?for_url=%2Fboard reason: Unexpected token N in JSON at position 0
anstatt
/board/bootstrap.json (was Daten zurückgibt).
Wenn ich stattdessen diese Konfiguration verwende:
discourse-ember:
command: bin/ember-cli --port 4000 --proxy "http://0.0.0.0:4200/forum"
erhalte ich einen Rails-Fehler:
Routing Error
No route matches [GET] "/forum"
Doch nicht ein paar Zeilen weiter liefert es mir:
bootstrap_path GET /bootstrap(.:format)
bootstrap#index {:format=>/(json|html|\*\/ \*)/}
Was genau der Pfad ist, den ich erreichen wollte?
Wie mache ich Ember schlau genug, um zum Unterordner zu proxen, wenn es versucht, die Bootstrap-Informationen abzurufen?
http://0.0.0.0:4200/forum/bootstrap.json
Denken Sie daran, dass Ember in diesem Fall in seinem eigenen Container läuft.