(Ho etichettato questo come unsupported-install ma apprezzerei comunque l’input dei guru
)
Ragazzi, sto cercando di eseguire un’immagine Discourse di base in una configurazione multi-container Docker semplice-semplice(?) tramite Docker Compose.
Ecco le basi:
- Il forum si trova in una sottocartella, chiamiamola
/board, quindi (https://blah.com/board) - nginx sta passando le chiamate a
/board:443alocalhost:4000. - Discourse rails era in esecuzione sulla porta 4000 (perché la 3000 è utilizzata da qualcos’altro)
- inclusa nelle ENVs di Rails c’è un’impostazione cruciale che la configura per funzionare:
DISCOURSE_RELATIVE_URL_ROOT: “/board”
Ora ho aggiornato la versione di Discourse (pre Ember-CLI) e le cose non funzionano piĂą.
Quindi, ovviamente, aggiungo un container per Ember-CLI che esegue:
discourse-ember:
command: bin/ember-cli --port 4000 --proxy "http://localhost:4200"
Quindi Ember sta gestendo le chiamate in arrivo sulla porta 4000 in prima istanza.
Sposto il container Discourse rails alla porta 4200 e avvio le cose.
Prima le buone notizie:
- fare un curl al sito di sviluppo funziona!
Ora le cattive notizie:
- Non funziona nel browser, perché?
perché apparentemente sta cercando di raggiungere Discourse ma richiedendo:
/bootstrap.json
dando l’errore:
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
invece di
/board/bootstrap.json (che restituisce dati).
Se invece uso questa configurazione:
discourse-ember:
command: bin/ember-cli --port 4000 --proxy "http://0.0.0.0:4200/forum"
ottengo un errore Rails:
Routing Error
No route matches [GET] "/forum"
Eppure non poche righe piĂą in lĂ , mi fornisce:
bootstrap_path GET /bootstrap(.:format)
bootstrap#index {:format=>/(json|html|\*\/ \*)/}
Che è esattamente il percorso che stavo cercando di raggiungere?
Come posso rendere Ember abbastanza intelligente da fare il proxy alla sottocartella quando sta cercando di ottenere le informazioni di bootstrap? Cioè:
http://0.0.0.0:4200/forum/bootstrap.json
Ricorda, in questo caso, Ember è in esecuzione nel suo container.