Hier ein Beispiel für Traefik, als selbstständiger Service in einer einzelnen docker-compose Datei und einem Service in einer anderen Datei.
Das externe Netz web wurde vorher einmalig erstellt mit dem Befehl:
docker network create web
Das macht das anschließende Arbeiten etwas leichter, weil der Name einfacher zu merken ist :)
Am besten sollte man die Datei acme.json ebenfalls vorher einmal anlegen, weil Docker sonst gelegentlich durcheinander kommt (Ordner anlegt o.Ä.)
touch acme.json
Bei mir sieht die Ordnerstruktur so aus:
~/docker
|- docker-compose.traefik.yaml
|- traefik.toml
|- acme.json
'- projects/
|- snappass/
| '- docker-compose.snappass.yaml
'- gitea/
|- docker-compose.gitea.yaml
|- data/
'- mysql/