على https://docs.docker.com/compose/compose-file/#networks يتم تحديد الشبكات على النحو التالي:
networks:
- some-network
- other-network
باستخدام docker-compose version 1.6.2, build 4d72027
وملف الإصدار 2 ، أحصل على هذا الخطأ:
ERROR: In file './docker-compose.yml', network must be a mapping, not an array.
يبدو أن الصيغة الصحيحة هي:
networks:
some-network:
other-network:
إنه أمر محير ، ولكن هناك مفتاحان مختلفان networks
:
networks
في المستوى الأعلى من ملف الإنشاء. يجب أن يكون هذا دائمًا تعيينًا.networks
داخل تعريف خدمة. يمكن أن يكون هذا تعيينًا أو مصفوفة.هذا مثال:
version: "2"
services:
web:
build: .
networks:
- foo
networks:
foo:
نعم ، يبدو أنك على حق. شكرا على كل حال.
شكرًا Hendrik-H ، لقد حللت مشكلتي. هم حقا يجب أن يوثقوا ذلك بشكل أفضل. كان لدي العديد من الشبكات المحددة بعنوان IP واستمر في إعطائي الخطأ.
التعريف الأصلي
الشبكات:
- rcon01:
ipv4_address: 172.40.1.2
- rnet50
أعطى:
خطأ: ملف الإنشاء "./docker-compose.yaml" غير صالح للأسباب التالية:
تحتوي services.r3.networks على {"rcon01": {"ipv4_address": "172.40.1.2"}} ، وهو نوع غير صالح ، يجب أن يكون سلسلة
تعريف جديد يعمل:
الشبكات:
rcon01:
ipv4_address: 172.40.1.2
rnet50:
التعليق الأكثر فائدة
إنه أمر محير ، ولكن هناك مفتاحان مختلفان
networks
:networks
في المستوى الأعلى من ملف الإنشاء. يجب أن يكون هذا دائمًا تعيينًا.networks
داخل تعريف خدمة. يمكن أن يكون هذا تعيينًا أو مصفوفة.هذا مثال: