Sur https://docs.docker.com/compose/compose-file/#networks, les réseaux sont spécifiés comme suit:
networks:
- some-network
- other-network
En utilisant docker-compose version 1.6.2, build 4d72027
et un fichier version 2, j'obtiens cette erreur:
ERROR: In file './docker-compose.yml', network must be a mapping, not an array.
La syntaxe correcte semble être:
networks:
some-network:
other-network:
C'est déroutant, mais il existe deux clés networks
:
networks
au niveau supérieur du fichier de composition. Cela doit toujours être un mappage.networks
dans une définition de service. Cela peut être un mappage ou un tableau.Voici un exemple:
version: "2"
services:
web:
build: .
networks:
- foo
networks:
foo:
ouais, on dirait que tu as raison. Merci quand même.
Merci Hendrik-H vous avez résolu mon problème. Ils devraient vraiment mieux documenter cela. J'avais plusieurs réseaux définis avec une adresse IP et cela me donnait toujours l'erreur.
Définition originale
réseaux:
- rcon01:
adresse_ipv4: 172.40.1.2
- rnet50
A donné:
ERREUR: le fichier de composition './docker-compose.yaml' n'est pas valide car:
services.r3.networks contient {"rcon01": {"ipv4_address": "172.40.1.2"}}, qui est un type non valide, il doit s'agir d'une chaîne
La nouvelle définition fonctionne:
réseaux:
rcon01:
adresse_ipv4: 172.40.1.2
rnet50:
Commentaire le plus utile
C'est déroutant, mais il existe deux clés
networks
:networks
au niveau supérieur du fichier de composition. Cela doit toujours être un mappage.networks
dans une définition de service. Cela peut être un mappage ou un tableau.Voici un exemple: