mirror of
https://github.com/Red5d/docker-autocompose
synced 2026-01-05 08:08:02 +00:00
Fix issue on index out of error (#54)
* Add gather info about all networks in the system. * Only generate host networks if all info is required. * Fix issue getting network information. Co-authored-by: Juan Biondi <juan@payslip.com>
This commit is contained in:
@@ -8,6 +8,8 @@ from collections import OrderedDict
|
|||||||
import docker
|
import docker
|
||||||
import pyaml
|
import pyaml
|
||||||
|
|
||||||
|
IGNORE_VALUES = [None, "", [], "null", {}, "default", 0, ",", "no"]
|
||||||
|
|
||||||
|
|
||||||
def list_container_names():
|
def list_container_names():
|
||||||
c = docker.from_env()
|
c = docker.from_env()
|
||||||
@@ -210,9 +212,11 @@ def generate(cname, createvolumes=False):
|
|||||||
networks = {}
|
networks = {}
|
||||||
if values["networks"] == set():
|
if values["networks"] == set():
|
||||||
del values["networks"]
|
del values["networks"]
|
||||||
assumed_default_network = list(cattrs.get("NetworkSettings", {}).get("Networks", {}).keys())[0]
|
|
||||||
values["network_mode"] = assumed_default_network
|
if len(cattrs.get("NetworkSettings", {}).get("Networks", {}).keys()) > 0:
|
||||||
networks = None
|
assumed_default_network = list(cattrs.get("NetworkSettings", {}).get("Networks", {}).keys())[0]
|
||||||
|
values["network_mode"] = assumed_default_network
|
||||||
|
networks = None
|
||||||
else:
|
else:
|
||||||
networklist = c.networks.list()
|
networklist = c.networks.list()
|
||||||
for network in networklist:
|
for network in networklist:
|
||||||
@@ -268,17 +272,7 @@ def generate(cname, createvolumes=False):
|
|||||||
]
|
]
|
||||||
|
|
||||||
# If bound ports found, don't use the 'expose' value.
|
# If bound ports found, don't use the 'expose' value.
|
||||||
if (
|
if ports_value not in IGNORE_VALUES:
|
||||||
(ports_value != None)
|
|
||||||
and (ports_value != "")
|
|
||||||
and (ports_value != [])
|
|
||||||
and (ports_value != "null")
|
|
||||||
and (ports_value != {})
|
|
||||||
and (ports_value != "default")
|
|
||||||
and (ports_value != 0)
|
|
||||||
and (ports_value != ",")
|
|
||||||
and (ports_value != "no")
|
|
||||||
):
|
|
||||||
for index, port in enumerate(ports_value):
|
for index, port in enumerate(ports_value):
|
||||||
if port[0] == ":":
|
if port[0] == ":":
|
||||||
ports_value[index] = port[1:]
|
ports_value[index] = port[1:]
|
||||||
@@ -294,17 +288,7 @@ def generate(cname, createvolumes=False):
|
|||||||
# Iterate through values to finish building yaml dict.
|
# Iterate through values to finish building yaml dict.
|
||||||
for key in values:
|
for key in values:
|
||||||
value = values[key]
|
value = values[key]
|
||||||
if (
|
if value not in IGNORE_VALUES:
|
||||||
(value != None)
|
|
||||||
and (value != "")
|
|
||||||
and (value != [])
|
|
||||||
and (value != "null")
|
|
||||||
and (value != {})
|
|
||||||
and (value != "default")
|
|
||||||
and (value != 0)
|
|
||||||
and (value != ",")
|
|
||||||
and (value != "no")
|
|
||||||
):
|
|
||||||
ct[key] = value
|
ct[key] = value
|
||||||
|
|
||||||
return cfile, networks, volumes
|
return cfile, networks, volumes
|
||||||
|
|||||||
Reference in New Issue
Block a user