Unter https://docs.docker.com/compose/compose-file/#networks werden Netzwerke wie
networks:
- some-network
- other-network
Bei Verwendung von docker-compose version 1.6.2, build 4d72027
und einer Datei der Version 2 wird folgende Fehlermeldung angezeigt:
ERROR: In file './docker-compose.yml', network must be a mapping, not an array.
Die richtige Syntax scheint zu sein:
networks:
some-network:
other-network:
Es ist verwirrend, aber es gibt zwei verschiedene networks
Schlüssel:
networks
auf der obersten Ebene der Compose-Datei. Dies muss immer eine Zuordnung sein.networks
innerhalb einer Service-Definition. Dies kann eine Zuordnung oder ein Array sein.Hier ist ein Beispiel:
version: "2"
services:
web:
build: .
networks:
- foo
networks:
foo:
Ja, sieht so aus, als hättest du recht. trotzdem danke.
Danke Hendrik-H, du hast mein Problem gelöst. Sie sollten das wirklich besser dokumentieren. Ich hatte mehrere Netzwerke mit einer IP-Adresse definiert und es gab mir immer wieder den Fehler.
Ursprüngliche Definition
Netzwerke:
- rcon01:
ipv4_address: 172.40.1.2
- rnet50
Gab:
FEHLER: Die Compose-Datei './docker-compose.yaml' ist ungültig, weil:
services.r3.networks enthält {"rcon01": {"ipv4_address": "172.40.1.2"}}. Dies ist ein ungültiger Typ. Es sollte eine Zeichenfolge sein
Neue Definition funktioniert:
Netzwerke:
rcon01:
ipv4_address: 172.40.1.2
rnet50:
Hilfreichster Kommentar
Es ist verwirrend, aber es gibt zwei verschiedene
networks
Schlüssel:networks
auf der obersten Ebene der Compose-Datei. Dies muss immer eine Zuordnung sein.networks
innerhalb einer Service-Definition. Dies kann eine Zuordnung oder ein Array sein.Hier ist ein Beispiel: