Quelle istruzioni non relative a VS Code non hanno funzionato per me in questo momento su macOS. Consiglio agli utenti macOS che desiderano interagire con l’immagine Docker di Discourse al di fuori di VS Code di utilizzare invece lo script Docker legacy boot_dev.
Con docker ps ho trovato il nome del mio container (un nome casuale e bizzarro, come peaceful_lumiere). Ho eseguito docker inspect peaceful_lumiere | jq '.[0].NetworkSettings.Networks.bridge.IPAddress' e mi ha restituito un indirizzo IP. Sono andato su http://<ip>:4200 nel mio browser, ma è rimasto bloccato a girare all’infinito.
Penso che ciò sia dovuto al fatto che il server di sviluppo ember-cli non ascolta su tutte le interfacce; ascolta solo su http://127.0.0.1:4200 all’interno del container.
Alla fine sono riuscito a farlo funzionare aggiungendo una sezione runArgs a .devcontainer/devcontainer.json, come in questo esempio.
8025, // mailhog
9229 // chrome remote debug
],
+ "runArgs": [
+ "-p",
+ "127.0.0.1:4200:4200",
+ "-p",
+ "127.0.0.1:3000:3000",
+ "-p",
+ "127.0.0.1:9292:9292",
+ "-p",
+ "127.0.0.1:8025:8025",
+ "-p",
+ "127.0.0.1:9229:9229"
+ ],
"remoteUser": "discourse",
"remoteEnv": {
"RAILS_DEVELOPMENT_HOSTS": ".app.github.dev",
… ma se lo fai, non funzionerà in VS Code (perché sia VS Code che il devcontainer proveranno a inoltrare le porte). Ho creato un file devcontainer-cli.json separato e ho usato devcontainer --override-config .devcontainer/devcontainer-cli.json, e così ha funzionato.
Ma poi mi è venuto in mente: ho fatto tutti questi sforzi, ma non sono in una situazione migliore rispetto all’utilizzo dello script legacy esistente boot_dev. Seguire i passaggi documentati è più rapido e semplice che cercare di convincere devcontainer a fare la cosa giusta da CLI.
I Dev Container sono principalmente pensati per l’uso in VS Code, o in qualcosa che gestisca automaticamente l’inoltro delle porte per te; la CLI devcontainer non lo fa. Quindi, se non vuoi usare VS Code, forse è meglio non preoccuparsi dei Dev Container.