-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathvolumes.py
executable file
·36 lines (30 loc) · 1.39 KB
/
volumes.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import os
import yaml
from colorama import init as colorama_init
from colorama import Fore
from colorama import Style
from dotenv import load_dotenv
colorama_init()
load_dotenv()
VOLUME_PATH = os.getenv('VOLUME_PATH')
def create_volume_folders(compose_file_path, base_path):
base_path = os.path.expanduser(base_path)
# Load Docker Compose file
with open(compose_file_path, 'r') as file:
compose_data = yaml.safe_load(file)
if 'volumes' in compose_data:
for volume in compose_data['volumes']:
if 'driver_opts' in compose_data['volumes'][volume] and 'device' in compose_data['volumes'][volume]['driver_opts']:
volume_path = compose_data['volumes'][volume]['driver_opts']['device']
volume_path = volume_path.replace('$VOLUME_PATH', base_path)
if not os.path.exists(volume_path):
print(f"{Fore.BLUE}Creating folder for volume '{volume}': {volume_path} {Style.RESET_ALL}")
os.makedirs(volume_path)
else:
print(f"{Fore.GREEN}Volume '{volume}': {volume_path} already exists{Style.RESET_ALL}")
else:
print(f"{Fore.MAGENTA}No 'volumes' key found in the Docker Compose file.{Style.RESET_ALL}")
if __name__ == "__main__":
compose_file_path = "./docker-compose.yml"
base_path = VOLUME_PATH
create_volume_folders(compose_file_path, base_path)