Compose: services.xxx.networks enthält {"ExtNet": {"ipv4_address": "192.168.1.11"}}. Dies ist ein ungültiger Typ. Es sollte eine Zeichenfolge sein

Erstellt am 13. März 2017  ·  4Kommentare  ·  Quelle: docker/compose

Umwelt:

`` `Docker-Compose-Version
Docker-Compose Version 1.11.2, Build dfed245
Docker-Py-Version: 2.1.0
CPython-Version: 2.7.5
OpenSSL-Version: OpenSSL 1.0.1e-fips 11. Februar 2013

```uname -srvmpio
Linux 3.10.0-514.6.1.el7.x86_64 #1 SMP Wed Jan 18 13:06:36 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux```

Szenario:

version: '2.1'

services:
  xxx:
    image: xxx:latest
    networks:
      - ExtNet:
          ipv4_address: 192.168.1.11
      - IntNet

networks:
  ExtNet:
    driver: macvlan
    driver_opts:
      parent: enp3s0
    ipam:
      config:
        - gateway: 192.168.1.1
          ip_range: 192.168.1.10/28
          subnet: 192.168.1.0/24
  IntNet:
    internal: True
    driver: bridge
    ipam:
      config:
        - ip_range: 10.0.0.0/16
          subnet: 10.0.0.0/16

Error:

services.xxx.networks contains {"ExtNet": {"ipv4_address": "192.168.1.11"}}, which is an invalid type, it should be a string

# Tried docker compose yaml version 2.0, 2.1 and 3.0.

Erwartet:

  • Die Möglichkeit, im obigen Beispiel eine statische IP von ExtNet dem Docker-Container xxx zuzuweisen.
kinquestion

Hilfreichster Kommentar

Tatsächlich ist auch diese zweite Konfiguration falsch. networks ist entweder eine Liste von Zeichenfolgen oder eine Zuordnung (das ist YAMLs Name für Pythons dict ). https://docs.docker.com/compose/compose-file/compose-file-v2/#networks

Hier ist beispielsweise ein gültiges Format für Ihre gewünschte Konfiguration:

services:
  xxx:
    image: xxx:latest
    networks:
      ExtNet:
        ipv4_address: 192.168.1.11
      IntNet: {}

Alle 4 Kommentare

Aktualisieren

  • Das Hinzufügen von ExtNet selbst zum Container scheint in Ordnung zu sein:
services:
  xxx:
    image: xxx:latest
    networks:
      - ExtNet:
          ipv4_address: 192.168.1.11

Wenn eines der Elemente in "services.xxx.networks" eine Zeichenfolge ist (in diesem Fall "IntNet"), wird erwartet, dass alle Elemente eine Zeichenfolge sind.
Wäre es möglich, "services.xxx.networks" so zu ändern, dass ein Tupel erwartet wird?

Tatsächlich ist auch diese zweite Konfiguration falsch. networks ist entweder eine Liste von Zeichenfolgen oder eine Zuordnung (das ist YAMLs Name für Pythons dict ). https://docs.docker.com/compose/compose-file/compose-file-v2/#networks

Hier ist beispielsweise ein gültiges Format für Ihre gewünschte Konfiguration:

services:
  xxx:
    image: xxx:latest
    networks:
      ExtNet:
        ipv4_address: 192.168.1.11
      IntNet: {}

Cool das funktioniert. Ich danke dir sehr :)

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen