description= 'Check if docker image based on the same layers as the parent image') parser.add_argument('-r', dest='repo', type=str, help="Provide specific repository for docker images.") parser.add_argument("-f", "--force", dest="force", action="store_true", help="Force re-build", default=False) args = parser.parse_args() repos = [] if args.repo: repos.append(args.repo) else: dir = os.path.dirname(dirname(os.path.abspath(__file__))) for file in glob.glob(dir + '/**/*.yaml*'): repos.append(os.path.basename(dirname(file))) for reponame in repos: for img in get_docker_images(reponame): buildimg = args.force if not buildimg: inher = img.get('IMAGE_NAME') parent = img.get('BASE_IMAGE_NAME') buildimg = has_parent_changed(parent, inher, reponame) if buildimg: create_file(img)
dest='dryRun', help="List tags which are ready to be removed.", action="store_true", default=False) parser.add_argument('-u', '--user', dest='dockerUser', help="Provide Docker Hub username for docker images.", type=str, default='cmssw') args = parser.parse_args() for repo in find_repos(): got_tags = False tags = [] for image in get_docker_images(repo): if (not 'DELETE_PATTERN' in image) or (not 'EXPIRES_DAYS' in image): continue if not got_tags: got_tags = True ok, tags = get_tags(args.dockerUser + '/' + repo) if not ok: tags = [] print('Docker Hub user "%s" does not contain image "%s"' % (args.dockerUser, repo)) break print("Wroking on %s/%s" % (repo, image['IMAGE_TAG'])) ntags = [] for tag in tags: ntags.append(tag) if image['IMAGE_TAG'] not in tag: continue