У меня есть набор файлов docker-compose, которые создают сервисы и пользовательские сети. Некоторые файлы compose относятся к сетям в других.
Например:
version: '2.2'
services:
(...)
volumes:
(...)
networks:
management:
driver: macvlan
driver_opts:
parent: enp1s0.10
ipam:
config:
- subnet: 192.168.10.0/24
home:
driver: macvlan
driver_opts:
parent: enp1s0
ipam:
config:
- subnet: 192.168.3.0/24
gateway: 192.168.3.1
Этот файл compose создает пару служб и две сети.
Теперь у меня естьдругой файл создания, который также использует одну из этих сетей и создает другую собственную:
version: '3'
services:
(...)
networks:
home:
external:
name: my_other_service_home
iot:
driver: macvlan
driver_opts:
parent: enp1s0.12
ipam:
config:
- subnet: 192.168.12.0/24
Для ясности я бы предпочел создать все сети в отдельном файле. А затем просто называйте их по имени как внешние сети в других файлах компоновки.
Но это не сработало:
version: '2'
networks:
iot:
driver: macvlan
driver_opts:
parent: enp1s0.12
ipam:
config:
- subnet: 192.168.12.0/24
management:
driver: macvlan
driver_opts:
parent: enp1s0.10
ipam:
config:
- subnet: 192.168.10.0/24
home:
driver: macvlan
driver_opts:
parent: enp1s0
ipam:
config:
- subnet: 192.168.3.0/24
gateway: 192.168.3.1
Файл был принят без ошибок, но я только что получилсообщение о том, что сети не использовались и, следовательно, не созданы.
Есть ли лучший подход?