Merge branch 'feature/delta-mode'
This commit is contained in:
commit
da71ca22e4
|
@ -27,6 +27,8 @@ INTERNAL_NETWORK = {
|
|||
REGISTRY_PASSWORD = os.environ["REGISTRY_PASSWORD"]
|
||||
DELTA_MODE = os.environ.get("DELTA_MODE")
|
||||
DRY_RUN = os.environ.get("DRY_RUN")
|
||||
DOCKER_IO_USER = os.environ.get("DOCKER_IO_USER")
|
||||
DOCKER_IO_PASS = os.environ.get("DOCKER_IO_PASS")
|
||||
|
||||
SKOPEO_CMD = "docker run --rm quay.io/containers/skopeo:latest"
|
||||
# SKOPEO_CMD = "skopeo" # RUN without docker
|
||||
|
@ -50,7 +52,10 @@ def __dest_img(src_img):
|
|||
def skepo_full_sync(src_img):
|
||||
dest_img = __dest_img(src_img)
|
||||
dest_img = "/".join(dest_img.split("/")[:-1])
|
||||
cmd = SKOPEO_CMD + " sync --src docker --dest docker --dest-tls-verify=false --dest-creds root:%s -f oci %s %s" %(REGISTRY_PASSWORD,src_img,dest_img)
|
||||
src_auth = ""
|
||||
if 'docker.io' in src_img and DOCKER_IO_USER:
|
||||
src_auth = " --src-creds %s:%s " % (DOCKER_IO_USER,DOCKER_IO_PASS)
|
||||
cmd = SKOPEO_CMD + " sync --src docker --dest docker %s --dest-tls-verify=false --dest-creds root:%s -f oci %s %s" %(src_auth,REGISTRY_PASSWORD,src_img,dest_img)
|
||||
__run_cmd(cmd)
|
||||
|
||||
def __parse_tag(output):
|
||||
|
@ -62,11 +67,15 @@ def __parse_tag(output):
|
|||
|
||||
def skepo_delta_sync(src_img):
|
||||
dest_img = __dest_img(src_img)
|
||||
cmd = "skopeo list-tags docker://" + src_img
|
||||
src_auth =''
|
||||
if 'docker.io' in src_img and DOCKER_IO_USER:
|
||||
src_auth = " --creds %s:%s " % (DOCKER_IO_USER,DOCKER_IO_PASS)
|
||||
cmd = "skopeo list-tags %s docker://%s" % (src_auth,src_img)
|
||||
print(cmd)
|
||||
result = subprocess.run(cmd, shell=True,stdout=subprocess.PIPE)
|
||||
src_tags = __parse_tag(result.stdout)
|
||||
cmd = "skopeo list-tags --creds root:%s --tls-verify=false docker://%s" %(REGISTRY_PASSWORD,dest_img)
|
||||
# print(cmd)
|
||||
print(cmd)
|
||||
result = subprocess.run(cmd, shell=True,stdout=subprocess.PIPE)
|
||||
dest_tags = __parse_tag(result.stdout)
|
||||
need_to_sync = set(src_tags) - set(dest_tags)
|
||||
|
@ -76,7 +85,10 @@ def skepo_delta_sync(src_img):
|
|||
# print(need_to_sync)
|
||||
if len(need_to_sync) == 0:
|
||||
if 'latest' in src_tags:
|
||||
cmd = SKOPEO_CMD + " copy --dest-creds root:%s --dest-tls-verify=false -f oci docker://%s:latest docker://%s:latest" %(REGISTRY_PASSWORD,src_img,dest_img)
|
||||
src_auth =''
|
||||
if 'docker.io' in src_img and DOCKER_IO_USER:
|
||||
src_auth = " --src-creds %s:%s " % (DOCKER_IO_USER,DOCKER_IO_PASS)
|
||||
cmd = SKOPEO_CMD + " copy %s --dest-creds root:%s --dest-tls-verify=false -f oci docker://%s:latest docker://%s:latest" %(src_auth,REGISTRY_PASSWORD,src_img,dest_img)
|
||||
__run_cmd(cmd)
|
||||
else:
|
||||
skepo_full_sync(src_img)
|
||||
|
|
Loading…
Reference in New Issue