import os import pathlib import json import docker import logging def get_data_from_json() -> (str, str): file = pathlib.Path(os.getcwd(), 'build.json') data: dict = {} with open(file, 'r') as f: data = json.load(f) f.close() version_values = data['tags'][0] major, minor = version_values['b3d_vs_major'], version_values['b3d_vs_minor'] print(f'Compile blender version "{major}.{minor}"') logging.info(f'Compile blender version "{major}.{minor}"') return major, minor def build_docker(b3d_version: (str, str)): client = docker.from_env() if os.environ.get('docker_hub_password'): user = os.environ['docker_hub_user'] password = os.environ['docker_hub_password'] client.login(username=user, password=password) # Init all data to build the docker image args = { 'b3d_vs_major': str(b3d_version[0]), 'b3d_vs_minor': str(b3d_version[1]), } tag_name = f'stilobique/blender:{args["b3d_vs_major"]}.{args["b3d_vs_minor"]}' b3d_image = client.images.build(path=os.getcwd(), buildargs=args, tag=tag_name) b3d_image.push() if __name__ == "__main__": print('1 -> Setup the package') logging.info('1 -> Setup the package') version = get_data_from_json() print('2 -> Build from image file') build_docker(version) print('3 -> Push the new images')