Compare commits

..

2 Commits

Author SHA1 Message Date
689d377683 Add docker-compose defaults 2024-11-04 00:39:21 +01:00
30ac033863 Disable automatic systemd dependencies 2024-11-04 00:34:59 +01:00

23
main.py
View File

@ -66,10 +66,13 @@ def write_build_unit(args, yaml_dict: dict, service_name: str):
def write_network_units(args, yaml_dict): def write_network_units(args, yaml_dict):
for network_name in yaml_dict.get("networks", []): networks = yaml_dict.get("networks", {})
if "default" not in networks:
networks["default"] = None
for network_name in networks:
out_file = args.output_dir / f"{network_name}.network" out_file = args.output_dir / f"{network_name}.network"
print(f'Generating network "{network_name}" ({out_file})') print(f'Generating network "{network_name}" ({out_file})')
network = yaml_dict["networks"].get(network_name) network = networks.get(network_name)
if network is None: if network is None:
network = {} network = {}
@ -101,11 +104,12 @@ def write_service_units(args, yaml_dict):
unit_file = IniFile() unit_file = IniFile()
unit_file["Unit"] = {} unit_file["Unit"] = {}
unit_file["Unit"]["Description"] = f"{service_name.capitalize()} container" unit_file["Unit"]["Description"] = f"{service_name.capitalize()} container"
if "depends_on" in service: # currently decreases reliability instead of increasing it
enforce_list("depends_on", service) # if "depends_on" in service:
for dependency in service["depends_on"]: # enforce_list("depends_on", service)
unit_file["Unit"].setdefault("Requires", []).append(f"{dependency}.service") # for dependency in service["depends_on"]:
unit_file["Unit"].setdefault("After", []).append(f"{dependency}.service") # unit_file["Unit"].setdefault("Requires", []).append(f"{dependency}.service")
# unit_file["Unit"].setdefault("After", []).append(f"{dependency}.service")
unit_file["Container"] = {} unit_file["Container"] = {}
if "container_name" in service: if "container_name" in service:
@ -147,6 +151,11 @@ def write_service_units(args, yaml_dict):
if "volumes" in service: if "volumes" in service:
enforce_list("volumes", service) enforce_list("volumes", service)
unit_file["Container"]["Volume"] = service["volumes"] unit_file["Container"]["Volume"] = service["volumes"]
if "networks" in service:
enforce_list("networks", service)
unit_file["Container"]["Network"] = service["networks"]
else:
unit_file["Container"]["Network"] = ["default"]
if "devices" in service: if "devices" in service:
unit_file["Container"]["AddDevice"] = service["devices"] unit_file["Container"]["AddDevice"] = service["devices"]
if "userns_mode" in service: if "userns_mode" in service: