{"id":13616929,"url":"https://github.com/google/containerregistry","last_synced_at":"2025-10-01T20:32:29.719Z","repository":{"id":54592899,"uuid":"84469560","full_name":"google/containerregistry","owner":"google","description":"A set of Python libraries and tools for interacting with a Docker Registry.","archived":true,"fork":false,"pushed_at":"2021-02-08T20:17:40.000Z","size":331,"stargazers_count":208,"open_issues_count":25,"forks_count":115,"subscribers_count":15,"default_branch":"master","last_synced_at":"2025-01-07T16:07:36.986Z","etag":null,"topics":["docker","docker-image","docker-images","docker-registry","gcloud","gcloud-sdk","google-containers"],"latest_commit_sha":null,"homepage":"https://gcr.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/google.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-03-09T17:22:40.000Z","updated_at":"2024-12-15T20:22:33.000Z","dependencies_parsed_at":"2022-08-13T20:40:41.389Z","dependency_job_id":null,"html_url":"https://github.com/google/containerregistry","commit_stats":null,"previous_names":[],"tags_count":39,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fcontainerregistry","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fcontainerregistry/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fcontainerregistry/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2Fcontainerregistry/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/google","download_url":"https://codeload.github.com/google/containerregistry/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234897368,"owners_count":18903646,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","docker-image","docker-images","docker-registry","gcloud","gcloud-sdk","google-containers"],"created_at":"2024-08-01T20:01:34.893Z","updated_at":"2025-10-01T20:32:24.659Z","avatar_url":"https://github.com/google.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"\u003ctable\u003e\u003ctr\u003e\n\u003ctd\u003e\n  \u003ca href=\"https://gcr.io\"\u003e\n    \u003cimg src=\"https://avatars2.githubusercontent.com/u/1342004?s=200\u0026v=4\"\n         height=\"120\"/\u003e\n  \u003c/a\u003e\n\u003c/td\u003e\n\u003ctd\u003e\n  \u003ca href=\"https://gcr.io\"\u003e\n    \u003cimg src=\"https://avatars2.githubusercontent.com/u/21046548?s=400\u0026v=4\"\n         height=\"120\"/\u003e\n  \u003c/a\u003e\n\u003c/td\u003e\n\u003ctd\u003e\n  \u003ca href=\"https://bazel.build\"\u003e\n    \u003cimg src=\"https://bazel.build/images/bazel-icon.svg\" height=\"120\"/\u003e\n  \u003c/a\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\u003c/table\u003e\n\n# `containerregistry`\n[![Build Status](https://travis-ci.org/google/containerregistry.svg?branch=master)](https://travis-ci.org/google/containerregistry)\n\nA set of Python libraries and tools for interacting with a Docker Registry.\n\nBazel users see \u003ca href=\"https://github.com/bazelbuild/rules_docker\"\u003e\n  rules_docker\u003c/a\u003e, which relies heavily on these tools.\n\n## puller.par\n\n```sh\n$ bazel run @containerregistry//:puller.par -- --help\n```\n\n```\nusage: puller.par [-h] --name NAME --directory DIRECTORY [--os OS]\n                   [--os-version OS_VERSION]\n                   [--os-features [OS_FEATURES [OS_FEATURES ...]]]\n                   [--architecture ARCHITECTURE] [--variant VARIANT]\n                   [--features [FEATURES [FEATURES ...]]]\n                   [--client-config-dir CLIENT_CONFIG_DIR]\n                   [--stderrthreshold STDERRTHRESHOLD]\n\nPull images from a Docker Registry, faaaaast.\n\noptional arguments:\n  -h, --help            show this help message and exit\n  --name NAME           The name of the docker image to pull and save.\n                        Supports fully-qualified tag or digest references.\n  --directory DIRECTORY\n                        Where to save the image's files.\n  --os OS               For multi-platform manifest lists, specifies the\n                        operating system.\n  --os-version OS_VERSION\n                        For multi-platform manifest lists, specifies the\n                        operating system version.\n  --os-features [OS_FEATURES [OS_FEATURES ...]]\n                        For multi-platform manifest lists, specifies operating\n                        system features.\n  --architecture ARCHITECTURE\n                        For multi-platform manifest lists, specifies the CPU\n                        architecture.\n  --variant VARIANT     For multi-platform manifest lists, specifies the CPU\n                        variant.\n  --features [FEATURES [FEATURES ...]]\n                        For multi-platform manifest lists, specifies CPU\n                        features.\n  --client-config-dir CLIENT_CONFIG_DIR\n                        The path to the directory where the client\n                        configuration files are located. Overiddes the value\n                        from DOCKER_CONFIG\n  --stderrthreshold STDERRTHRESHOLD\n                        Write log events at or above this level to stderr.\n```\n\n## pusher.par\n\n```sh\n$ bazel run @containerregistry//:pusher.par -- --help\n```\n\n```\nusage: pusher.par [-h] --name NAME [--tarball TARBALL] [--config CONFIG]\n                   [--manifest MANIFEST] [--digest DIGEST] [--layer LAYER]\n                   [--stamp-info-file STAMP_INFO_FILE] [--oci]\n                   [--client-config-dir CLIENT_CONFIG_DIR]\n                   [--stderrthreshold STDERRTHRESHOLD]\n\nPush images to a Docker Registry, faaaaaast.\n\noptional arguments:\n  -h, --help            show this help message and exit\n  --name NAME           The name of the docker image to push.\n  --tarball TARBALL     An optional legacy base image tarball.\n  --config CONFIG       The path to the file storing the image config.\n  --manifest MANIFEST   The path to the file storing the image manifest.\n  --digest DIGEST       The list of layer digest filenames in order.\n  --layer LAYER         The list of layer filenames in order.\n  --stamp-info-file STAMP_INFO_FILE\n                        A list of files from which to read substitutions to\n                        make in the provided --name, e.g. {BUILD_USER}\n  --oci                 Push the image with an OCI Manifest.\n  --client-config-dir CLIENT_CONFIG_DIR\n                        The path to the directory where the client\n                        configuration files are located. Overiddes the value\n                        from DOCKER_CONFIG\n  --stderrthreshold STDERRTHRESHOLD\n                        Write log events at or above this level to stderr.\n```\n\n## importer.par\n\n```\n$ bazel run @containerregistry//:importer.par -- --help\n```\n\n```\nusage: importer.par [-h] --tarball TARBALL [--format {tar,tar.gz}] --directory\n                    DIRECTORY [--stderrthreshold STDERRTHRESHOLD]\n\nImport images from a tarball into our faaaaaast format.\n\noptional arguments:\n  -h, --help            show this help message and exit\n  --tarball TARBALL     The tarball containing the docker image to rewrite\n                        into our fast on-disk format.\n  --format {tar,tar.gz}\n                        The form in which to save layers.\n  --directory DIRECTORY\n                        Where to save the image's files.\n  --stderrthreshold STDERRTHRESHOLD\n                        Write log events at or above this level to stderr.\n```\n\n## flatten.par\n\n```sh\n$ bazel run @containerregistry//:flatten.par -- --help\n```\n\n```\nusage: flatten.par [-h] [--tarball TARBALL] [--config CONFIG]\n                   [--digest DIGEST] [--layer LAYER]\n                   [--uncompressed_layer UNCOMPRESSED_LAYER]\n                   [--diff_id DIFF_ID] [--filesystem FILESYSTEM]\n                   [--metadata METADATA] [--stderrthreshold STDERRTHRESHOLD]\n\nFlatten container images.\n\noptional arguments:\n  -h, --help            show this help message and exit\n  --tarball TARBALL     An optional legacy base image tarball.\n  --config CONFIG       The path to the file storing the image config.\n  --digest DIGEST       The list of layer digest filenames in order.\n  --layer LAYER         The list of compressed layer filenames in order.\n  --uncompressed_layer UNCOMPRESSED_LAYER\n                        The list of uncompressed layer filenames in order.\n  --diff_id DIFF_ID     The list of diff_ids in order.\n  --filesystem FILESYSTEM\n                        The name of where to write the filesystem tarball.\n  --metadata METADATA   The name of where to write the container startup\n                        metadata.\n  --stderrthreshold STDERRTHRESHOLD\n                        Write log events at or above this level to stderr.\n```\n\n## appender.par\n\n```sh\n$ bazel run @containerregistry//:appender.par -- --help\n```\n\n```\nusage: appender.par [-h] --src-image SRC_IMAGE --tarball TARBALL --dst-image\n                    DST_IMAGE [--stderrthreshold STDERRTHRESHOLD]\n\nAppend tarballs to an image in a Docker Registry.\n\noptional arguments:\n  -h, --help            show this help message and exit\n  --src-image SRC_IMAGE\n                        The name of the docker image to append to.\n  --tarball TARBALL     The tarball to append.\n  --dst-image DST_IMAGE\n                        The name of the new image.\n  --stderrthreshold STDERRTHRESHOLD\n                        Write log events at or above this level to stderr.\n```\n\n## digester.par\n\n```sh\n$ bazel run @containerregistry//:digester.par -- --help\n```\n\n```\nusage: digester.par [-h] [--tarball TARBALL] --output-digest OUTPUT_DIGEST\n                    [--config CONFIG] [--manifest MANIFEST] [--digest DIGEST]\n                    [--layer LAYER] [--oci]\n                    [--stderrthreshold STDERRTHRESHOLD]\n\nCalculate digest for a container image.\n\noptional arguments:\n  -h, --help            show this help message and exit\n  --tarball TARBALL     An optional legacy base image tarball.\n  --output-digest OUTPUT_DIGEST\n                        Filename to store digest in.\n  --config CONFIG       The path to the file storing the image config.\n  --manifest MANIFEST   The path to the file storing the image manifest.\n  --digest DIGEST       The list of layer digest filenames in order.\n  --layer LAYER         The list of layer filenames in order.\n  --oci                 Image has an OCI Manifest.\n  --stderrthreshold STDERRTHRESHOLD\n                        Write log events at or above this level to stderr.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoogle%2Fcontainerregistry","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgoogle%2Fcontainerregistry","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoogle%2Fcontainerregistry/lists"}