diff --git a/contrib/brew/brew/brew.py b/contrib/brew/brew/brew.py index 91f7b01b94..73d59877fb 100644 --- a/contrib/brew/brew/brew.py +++ b/contrib/brew/brew/brew.py @@ -17,7 +17,7 @@ processed = {} def build_library(repository=None, branch=None, namespace=None, push=False, - debug=False, prefill=True): + debug=False, prefill=True, registry=None): dst_folder = None summary = Summary() if repository is None: @@ -75,7 +75,8 @@ def build_library(repository=None, branch=None, namespace=None, push=False, logger.debug('Pulling {0} from official repository (cache ' 'fill)'.format(buildfile)) client.pull(buildfile) - img = build_repo(url, ref, buildfile, tag, namespace, push) + img = build_repo(url, ref, buildfile, tag, namespace, push, + registry) summary.add_success(buildfile, (linecnt, line), img) processed['{0}@{1}'.format(url, ref)] = img except Exception as e: @@ -88,7 +89,7 @@ def build_library(repository=None, branch=None, namespace=None, push=False, summary.print_summary(logger) -def build_repo(repository, ref, docker_repo, docker_tag, namespace, push): +def build_repo(repository, ref, docker_repo, docker_tag, namespace, push, registry): docker_repo = '{0}/{1}'.format(namespace or 'library', docker_repo) img_id = None if '{0}@{1}'.format(repository, ref) not in processed.keys(): @@ -105,7 +106,12 @@ def build_repo(repository, ref, docker_repo, docker_tag, namespace, push): docker_tag or 'latest')) client.tag(img_id, docker_repo, docker_tag) if push: - logger.info('Pushing result to the main registry') + logger.info('Pushing result to registry {0}'.format( + registry or "default")) + if registry is not None: + docker_repo = '{0}/{1}'.format(registry, docker_repo) + logger.info('Also tagging {0}'.format(docker_repo)) + client.tag(img_id, docker_repo, docker_tag) client.push(docker_repo) return img_id diff --git a/contrib/brew/docker-brew b/contrib/brew/docker-brew index 29052771c6..ead6b65075 100755 --- a/contrib/brew/docker-brew +++ b/contrib/brew/docker-brew @@ -8,20 +8,22 @@ import brew if __name__ == '__main__': parser = argparse.ArgumentParser('Build the docker standard library') parser.add_argument('--push', action='store_true', default=False, - help='push generated repositories to the official registry') + help='Push generated repositories') parser.add_argument('--debug', default=False, action='store_true', help='Enable debugging output') parser.add_argument('--noprefill', default=True, action='store_false', dest='prefill', help='Disable cache prefill') parser.add_argument('-n', metavar='NAMESPACE', default='library', - help='namespace used for generated repositories.' + help='Namespace used for generated repositories.' ' Default is library') parser.add_argument('-b', metavar='BRANCH', default=brew.DEFAULT_BRANCH, - help='branch in the repository where the library definition' + help='Branch in the repository where the library definition' ' files will be fetched. Default is ' + brew.DEFAULT_BRANCH) parser.add_argument('repository', default=brew.DEFAULT_REPOSITORY, nargs='?', help='git repository containing the library definition' ' files. Default is ' + brew.DEFAULT_REPOSITORY) + parser.add_argument('--reg', default=None, help='Registry address to' + ' push build results to. Also sets push to true.') args = parser.parse_args() - brew.build_library(args.repository, args.b, args.n, args.push, args.debug, - args.prefill) + brew.build_library(args.repository, args.b, args.n, + args.push or args.reg is not None, args.debug, args.prefill, args.reg) diff --git a/contrib/brew/requirements.txt b/contrib/brew/requirements.txt index 8006177ce6..78a574953d 100644 --- a/contrib/brew/requirements.txt +++ b/contrib/brew/requirements.txt @@ -1,2 +1,2 @@ dulwich==0.9.0 -docker-py==0.1.2 \ No newline at end of file +docker-py==0.1.3 \ No newline at end of file