import pulumi import pulumi_docker as docker import json import os # Charger le fichier JSON with open("config.json", "r") as f: containers_data = json.load(f) # Créer le réseau network = docker.Network("testNetwork") # Créer les volumes volumes = {} for container in containers_data["containers"]: for volume in container.get("volumes", []): if "volume_name" in volume and volume["volume_name"] not in volumes: volumes[volume["volume_name"]] = docker.Volume(volume["volume_name"]) # Créer les conteneurs for container in containers_data["containers"]: instances = container.get("instances", 1) for i in range(instances): container_name = f"{container['name']}-{i}" if instances > 1 else container["name"] # Configurer les volumes volumes_config = [ docker.ContainerVolumeArgs( container_path=volume["container_path"], volume_name=volumes[volume["volume_name"]].name ) if "volume_name" in volume else docker.ContainerVolumeArgs( container_path=volume["container_path"], host_path=os.path.abspath(volume["host_path"]) ) for volume in container.get("volumes", []) ] # Créer le conteneur docker.Container(container_name, image=container["image"], envs=[f"{key}={value}" for key, value in container.get("envs", {}).items()], ports=[ docker.ContainerPortArgs( internal=port["internal"], external=port["external"] + i ) for port in container.get("ports", []) ], volumes=volumes_config, network_mode=network.name, command=container.get("command", []))