いくつか試した結果、自力で解決できました。
参考のために、私の app.yml を添付します:
...
templates:
- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/web.template.yml"
- "templates/web.ratelimited.template.yml"
## Lets Encrypt (https) を追加したい場合は、以下の 2 行のコメントを外してください
#- "templates/web.ssl.template.yml"
#- "templates/web.letsencrypt.ssl.template.yml"
#- "templates/web.socketed.template.yml"
## このコンテナが公開すべき TCP/IP ポートはどれですか?
## Discourse を Apache や nginx などの他の Web サーバーとポートを共有させたい場合は、
## 詳細は https://meta.discourse.org/t/17247 を参照してください
#expose:
# - "8060:80" # http
# - "8070:443" # https
...
docker_args:
- "--network=web"
#- "--expose=8060"
- "-l traefik.enable=true"
- "-l traefik.http.routers.forum.rule=Host(`forum.example.com`)"
- "-l traefik.http.routers.forum.entrypoints=websecure"
- "-l traefik.http.routers.forum.tls=true"
- "-l traefik.http.routers.forum.tls.certresolver=mytlschallenge"
- "-l traefik.http.services.forum.loadbalancer.server.port=80"
- "-l traefik.docker.network=web"