def push_image_v2(registry: str, remote_image_name: str, local_image: str, tag: str) -> str: """Push a content to Docker Registry and return the URL to access""" insecure, registry_without_schema = _get_schema_and_security(registry) download_link, digest = upload_content_v2(registry, remote_image_name, local_image) d = DXF(registry_without_schema, remote_image_name, insecure=insecure) d.set_alias(tag, digest) return download_link
import sys sys.path.append(path.abspath(path.join(path.dirname(__file__), '..'))) os.chdir('/tmp') from dxf import DXF def auth(dxf, response): dxf.authenticate(os.environ['DOCKER_REG_USERNAME'], os.environ['DOCKER_REG_PASSWORD'], response=response) dxf = DXF(os.environ.get('DOCKER_REG_HOST', 'registry-1.docker.io'), os.environ['DOCKER_REG_REPO'], auth) with open('logger.dat', 'wb') as f: f.write(b'2015-05 11\n') dgst = dxf.push_blob('logger.dat') dxf.set_alias('may15-readings', dgst) assert dxf.get_alias('may15-readings') == [dgst] s = b'' for chunk in dxf.pull_blob(dgst): s += chunk assert s == b'2015-05 11\n' print(s)