- Traefik grabs the first port it sees, which on the dev image is 1080- we want port 9292. Use
- You need to set a dev host using en env var in the container:
-e DISCOURSE_DEV_HOSTS=your_dev_hostname \
With the dev version of Discourse working, I wanted to let its connectivity be managed by the traefik proxy. But whichever way I sliced it, I would get a
Bad Gateway error. The usual suspect for this is not setting a port, or having the service on a different network from traefik itself. However, this issue persisted for me.
I had to add the following to
(discourse_source_root)/bin/docker/boot_dev, in the
docker run ... section:
--network=traefik_default \ --label=traefik.port=80 \ --label=traefik.docker.network=traefik_default \ --label=traefik.http.routers.discourse-dev.rule=Host\(\`$DEVHOST\`\) \ --label=traefik.http.services.discourse-dev.loadBalancer.server.port=9292 \
DEVHOST=<my dev host> earlier in the file, or you can use the host there directly. The last line points traefik at the correct port (9292) in the discourse-dev container.
Accessing by host then produces a page with a blocked host error:
Blocked host: discourse_dev_host
To allow requests to discourse_dev_host, add the following to your environment configuration:
config.hosts << “discourse_dev_host”
DISCOURSE_DEV_HOSTS permits access on those hosts. We need to do this in the container, so add the following to the same section in the same file:
-e DISCOURSE_DEV_HOSTS=$DEVHOST \
Which permits access via that (or those) hostname(s).