diff --git a/roles/restart-docker/files/restart-docker.py b/roles/restart-docker/files/restart-docker.py index 0c16632c..6e0c429e 100644 --- a/roles/restart-docker/files/restart-docker.py +++ b/roles/restart-docker/files/restart-docker.py @@ -13,6 +13,19 @@ def restart_docker_services(dir_path): except subprocess.CalledProcessError as e: print(f"Error restarting services in {dir_path}: {e}") +def hard_restart_docker_services(dir_path): + """ + Perform a hard restart of docker-compose services in the given directory + using docker-compose down and docker-compose up -d. + """ + try: + print(f"Performing hard restart for docker-compose services in: {dir_path}") + subprocess.run(["docker-compose", "down"], cwd=dir_path, check=True) + subprocess.run(["docker-compose", "up", "-d"], cwd=dir_path, check=True) + print(f"Hard restart completed successfully in: {dir_path}") + except subprocess.CalledProcessError as e: + print(f"Error during hard restart in {dir_path}: {e}") + if __name__ == "__main__": if len(sys.argv) < 2: print("Please provide the path to the parent directory as a parameter.") @@ -23,12 +36,18 @@ if __name__ == "__main__": for dir_entry in os.scandir(parent_directory): if dir_entry.is_dir(): dir_path = dir_entry.path + dir_name = os.path.basename(dir_path) print(f"Checking directory: {dir_path}") docker_compose_file = os.path.join(dir_path, "docker-compose.yml") if os.path.isfile(docker_compose_file): - print(f"Found docker-compose.yml in {dir_path}. Restarting services...") - restart_docker_services(dir_path) + print(f"Found docker-compose.yml in {dir_path}.") + if dir_name == "mailu": + print(f"Directory {dir_name} detected. Performing hard restart...") + hard_restart_docker_services(dir_path) + else: + print(f"Restarting services in {dir_path}...") + restart_docker_services(dir_path) else: - print(f"No docker-compose.yml found in {dir_path}. Skipping.") \ No newline at end of file + print(f"No docker-compose.yml found in {dir_path}. Skipping.")