`` `versão docker-compose
docker-compose versão 1.11.2, compilação dfed245
versão docker-py: 2.1.0
Versão CPython: 2.7.5
Versão OpenSSL: OpenSSL 1.0.1e-fips 11 de fevereiro 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```
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
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.
services:
xxx:
image: xxx:latest
networks:
- ExtNet:
ipv4_address: 192.168.1.11
Parece que se um dos itens em "services.xxx.networks" for uma string (neste caso, "IntNet"), ele espera que todos os itens sejam uma string.
Seria possível alterar "services.xxx.networks" para esperar tupla?
Na verdade, essa segunda configuração também está incorreta. networks
é uma lista de strings ou um mapeamento (esse é o nome YAML para dict
do python). https://docs.docker.com/compose/compose-file/compose-file-v2/#networks
Por exemplo, este é um formato válido para a configuração desejada:
services:
xxx:
image: xxx:latest
networks:
ExtNet:
ipv4_address: 192.168.1.11
IntNet: {}
Legal que funciona. Muito obrigado :)
Comentários muito úteis
Na verdade, essa segunda configuração também está incorreta.
networks
é uma lista de strings ou um mapeamento (esse é o nome YAML paradict
do python). https://docs.docker.com/compose/compose-file/compose-file-v2/#networksPor exemplo, este é um formato válido para a configuração desejada: