mirror of
https://gitlab.com/stilobique/blender-docker.git
synced 2026-05-27 20:27:47 +02:00
46 lines
1.2 KiB
Python
46 lines
1.2 KiB
Python
import os
|
|
import pathlib
|
|
import json
|
|
import docker
|
|
|
|
|
|
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}"')
|
|
|
|
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="./", buildargs=args, tag=tag_name)
|
|
b3d_image.push()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
print('1 -> Setup the package')
|
|
version = get_data_from_json()
|
|
print('2 -> Build from image file')
|
|
build_docker(version)
|
|
print('3 -> Push the new images')
|