INNER CODE UNIT · Python
build
cybersecsi/RAUDI · src/raudi/cli.py:52
def build(tool_name, config, args, tests):
# Args and Vars
push_image = args.push
remote_src = args.remote
force_build = args.force
dirname = str(DEFAULT_TOOL_DIR / tool_name)
image_exists = helper.check_if_docker_image_exists("{name}:{tag}".format(name=config['name'], tag=config['version']), remote_src)
if image_exists == False or force_build == True:
log("Building {docker_image}...".format(docker_image="{name}:{tag}".format(name=config['name'], tag=config['version'])))
helper.print_docker_build_command(config['name'], config['version'], config['buildargs'])
# Build image with version tag
enable_progress_env = helper.get_env('RAUDI_DOCKER_BUILD_PROGRESS', False)
enable_progress = False if (enable_progress_env == False) or (enable_progress_env == "False") else "auto"
try:
docker.buildx.build(dirname, load=True, progress=enable_progress, build_args=config['buildargs'], tags="{name}:{tag}".format(name=config['name'], tag=config['version']))
# Tag image as 'latest'
docker.tag("{name}:{tag}".format(name=config['name'], tag=config['version']), "{name}:{tag}".format(name=config['name'], tag='latest'))