delta mode

This commit is contained in:
yankay 2021-09-12 15:18:59 +08:00
parent 45d0fadbb2
commit 1d5e2f45cf
2 changed files with 9 additions and 9 deletions

View File

@ -50,7 +50,7 @@ TODO
## 安装运行
安装skepo
安装skepo.
```
yum install skopeo --nobest
```

View File

@ -28,8 +28,8 @@ REGISTRY_PASSWORD = os.environ["REGISTRY_PASSWORD"]
DELTA_MODE = os.environ.get("DELTA_MODE")
DRY_RUN = os.environ.get("DRY_RUN")
# SKEPO_CMD = "docker run --rm quay.io/containers/skopeo:latest"
SKEPO_CMD = "skopeo" # RUN without docker
SKOPEO_CMD = "docker run --rm quay.io/containers/skopeo:latest"
# SKOPEO_CMD = "skopeo" # RUN without docker
def __run_cmd(cmd):
print(cmd)
@ -50,7 +50,7 @@ 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 = SKEPO_CMD + " sync --src docker --dest docker --dest-tls-verify=false --dest-creds root:%s -f oci %s %s" %(REGISTRY_PASSWORD,src_img,dest_img)
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)
__run_cmd(cmd)
def __parse_tag(output):
@ -66,17 +66,17 @@ def skepo_delta_sync(src_img):
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)
print(src_img)
print("src %s, dest %s " % (len(src_tags),len(dest_tags)))
print(need_to_sync)
# print(src_img)
print("sync %s, src tag %s, dest tag %s " % (src_img,len(src_tags),len(dest_tags)))
# print(need_to_sync)
if len(need_to_sync) == 0:
if 'latest' in src_tags:
cmd = "skopeo copy --dest-creds root:%s --dest-tls-verify=false -f oci docker://%s:latest docker://%s:latest" %(REGISTRY_PASSWORD,src_img,dest_img)
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)
__run_cmd(cmd)
else:
skepo_full_sync(src_img)