Developing Discourse using a Dev Container

Si vous utilisez OrbStack (non affilié) sur votre environnement macOS local et que vous souhaitez exécuter Discourse sur HTTPS avec un domaine personnalisé, mettez à jour votre devcontainer.json avec les ajouts suivants :

  1. Donnez un nom au conteneur.
  2. Ajoutez le domaine générique .orb.local à la variable d’environnement RAILS_DEVELOPMENT_HOSTS (les noms d’hôte doivent être séparés par une virgule).
--- a/.devcontainer/devcontainer.json
+++ b/.devcontainer/devcontainer.json
@@ -13,10 +13,11 @@
   ],
   "remoteUser": "discourse",
   "remoteEnv": {
-    "RAILS_DEVELOPMENT_HOSTS": ".app.github.dev",
+    "RAILS_DEVELOPMENT_HOSTS": ".app.github.dev,.orb.local", // Étape 2
     "PGUSER": "discourse",
     "SELENIUM_FORWARD_DEVTOOLS_TO_PORT": "9229",
   },
+  "runArgs": ["--name","discourse"], // Étape 1
   "mounts": [
     "source=${localWorkspaceFolderBasename}-node_modules,target=${containerWorkspaceFolder}/node_modules,type=volume",
     "source=${localWorkspaceFolderBasename}-pg,target=/shared/postgres_data,type=volume",

p.s. faites-moi savoir si vous savez comment définir dynamiquement le nom d’hôte *.orb.local et le nom du conteneur, comme c’est défini pour GitHub Codespaces. Définir la valeur comme .app.github.dev,.orb.local n’a pas fonctionné pour moi.

Mise à jour : D’une manière ou d’une autre, il me manquait une entrée dans mon fichier /etc/hosts. Après avoir ajouté cette ligne, j’ai pu utiliser le domaine générique .orb.local à l’étape 2.

Avec ces modifications dans le fichier devcontainer.json, je peux maintenant exécuter mon instance Discourse locale à l’adresse \u003chttps://discourse.orb.local/\u003e

/etc/hosts

Ajoutez cette ligne à votre fichier /etc/hosts si elle n’y figure pas déjà.

##
# Docker et OrbStack
##
127.0.0.1 host.docker.internal

Astuce bonus 1
Si, pour une raison quelconque, vos paramètres réseau, votre réseau VPN d’entreprise, etc. entrent en conflit avec les plages d’adresses IP des conteneurs d’OrbStack, mettez à jour votre OrbStack avec une plage différente.

Astuce bonus 2
Si vous omettez l’étape 1, OrbStack créera un conteneur au nom aléatoire, mais vous pourrez toujours utiliser HTTPS sans ajouter de numéro de port. L’inconvénient est le nom du conteneur, donc le nom de domaine sera actualisé à chaque reconstruction du conteneur.