import os import sys import subprocess import datetime if len(sys.argv) != 3: print("Invalid number of arguments\n") exit(1) path = os.path.abspath(sys.argv[1]) spec_file = os.path.abspath(sys.argv[2]) with open(spec_file,"r") as f: lines = f.readlines() print(">>>>>>>>>> docker_update.py @", datetime.datetime.now()," <<<<<<<<<<") for line in lines: s = line.strip() if s.startswith("#"): continue fullpath = os.path.join(path, s) if os.path.isdir(fullpath) and ("docker-compose.yml" in os.listdir(fullpath)): fullpath = os.path.join(fullpath, "docker-compose.yml") print("========= Processing " + fullpath + " =========") print(subprocess.check_output("docker-compose -f " + fullpath + " pull", shell=True, stderr=subprocess.STDOUT).decode()) print(subprocess.check_output("docker-compose -f " + fullpath + " up -d", shell=True, stderr=subprocess.STDOUT).decode()) else: print("========= Skipping " + fullpath + ": invalid dir or docker-compos.yml =========") print("========== CLEANING UP ==========") print(subprocess.check_output("docker system prune -af", shell=True, stderr=subprocess.STDOUT).decode()) print("Docker update complete!\n")