Container Docker in ascolto solo su IPv6

Sto cercando di configurare un’istanza di test di Discourse su una VM per lavorare all’importazione da un altro software. Sono nuovo di Docker, Discourse e Ruby, quindi non conosco ancora cosa succede in background. Finora, ho fatto il fork del repository discourse_docker e lo ho utilizzato seguendo le istruzioni qui (usando la mia VM Ubuntu locale invece di un’istanza cloud): discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub

Dopo la configurazione, secondo netstat, sembra che la mia VM locale abbia impostato il contenitore in modo che le porte 80 e 443 siano in ascolto solo sull’indirizzo IPv6. Non uso IPv6 localmente, quindi non riesco ad accedere all’istanza di Discourse. Come posso correggere questo problema? Ho controllato in app.yml ma non sembrano esserci impostazioni di binding lì. Ho cercato qualcuno che avesse un problema simile: c’era un risultato, credo del 2015, in cui la soluzione era modificare la configurazione DNS all’interno del contenitore stesso. Questo sembra una pessima idea ™, quindi spero in qualcosa di meno “hacky”.

Grazie!

Probabilmente non hai bisogno di fare un fork del repository.

È molto probabile che il problema sia legato al tuo virtual host. Non l’ho mai visto prima.

Ho fatto un fork del repository nel tentativo di seguire questa guida:

Tuttavia, non mi aspetto che questo causi problemi.
Sto eseguendo un’installazione fresca di Ubuntu Server (scaricata da ubuntu.com) su ESXi. Tutto questo è assolutamente standard.

Dove la configurazione determina come associare i servizi?

Di default si lega a tutti gli indirizzi IP.

Puoi aggiungere indirizzi IP alle righe che mappano le porte, ma è probabile che il problema sia nella VM. Si tratta di DigitalOcean?

Qui ci sono degli esempi per eseguire un’importazione in un container. Probabilmente sono migliori di quello a cui hai fatto riferimento (ma non l’ho controllato, quindi potrei sbagliarmi).

No, ho il mio host VMware su cui eseguo la VM. Non ho problemi a raggiungere la VM tramite IPv4, né direttamente né tramite il nome DNS. È solo che, per qualche motivo, i servizi Docker (non le funzionalità predefinite come il server SSH) si legano solo a :::80 e :::443 invece che a 0.0.0.0.

C’è un file di log pertinente da qualche parte che potrebbe fornire maggiori dettagli?

Qui ci sono esempi per eseguire un’importazione in un contenitore. Probabilmente sono migliori di quello a cui hai fatto riferimento (anche se non l’ho esaminato, quindi potrei sbagliarmi).

Beh, finora non sono ancora arrivato alla fase di importazione. :stuck_out_tongue:
In definitiva, vorrei lavorare sul miglioramento di questo script di importazione per il nostro sito. Finora ho avuto difficoltà con diverse guide per iniziare, ma ho pensato che per ora la soluzione migliore fosse un’installazione base e semplice.

È qualcosa legato a Docker o alla tua VM. Ti consiglio di consultare le guide su VM e Docker e iniziare con un container ‘hello world’. Non si tratta di un problema di Discourse.