Compose: services.xxx.networks contiene {"ExtNet": {"ipv4_address": "192.168.1.11"}}, que es un tipo no válido, debe ser una cadena

Creado en 13 mar. 2017  ·  4Comentarios  ·  Fuente: docker/compose

Envionment:

`` versión docker-compose
docker-compose versión 1.11.2, compilación dfed245
versión de docker-py: 2.1.0
Versión de CPython: 2.7.5
Versión de OpenSSL: OpenSSL 1.0.1e-fips 11 de febrero de 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```

Guión:

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.

Esperado:

  • La capacidad de asignar IP estática desde ExtNet al contenedor de la ventana acoplable xxx en el ejemplo anterior.
kinquestion

Comentario más útil

En realidad, esa segunda configuración también es incorrecta. networks es una lista de cadenas o una asignación (ese es el nombre de YAML para dict de python). https://docs.docker.com/compose/compose-file/compose-file-v2/#networks

Por ejemplo, aquí hay un formato válido para la configuración deseada:

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

Todos 4 comentarios

Actualizar

  • Agregar ExtNet por sí solo al contenedor parece estar bien:
services:
  xxx:
    image: xxx:latest
    networks:
      - ExtNet:
          ipv4_address: 192.168.1.11

Parece que si uno de los elementos de "services.xxx.networks" es una cadena (en este caso, "IntNet"), espera que todos los elementos sean una cadena.
¿Sería posible cambiar "services.xxx.networks" para esperar tupla?

En realidad, esa segunda configuración también es incorrecta. networks es una lista de cadenas o una asignación (ese es el nombre de YAML para dict de python). https://docs.docker.com/compose/compose-file/compose-file-v2/#networks

Por ejemplo, aquí hay un formato válido para la configuración deseada:

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

Genial que funciona. Muchas gracias :)

¿Fue útil esta página
0 / 5 - 0 calificaciones