NAME

Docker::Registry - A client for talking to Docker Registries

SYNOPSIS

  # Use AWSs Elastic Container Registry
  use Docker::Registry::ECR;
  my $reg = Docker::Registry::ECR->new(
    region => 'us-west-2',
    account_id => '0123456789',
  );
  my $repo_list = $reg->repositories;

  # Use Google Container Registry (GCR)
  use Docker::Registry::GCE;
  my $reg = Docker::Registry::GCE->new;
  my $repo_list $reg->repositories;

DESCRIPTION

This module helps you talk to different Docker Registries from different cloud providers.

Docker Registry APIs are standard, but authentication methods differ from vendor to vendor. This set of modules helps manage that for you.

WARNING

Consider this code Alpha quality. It works, but only some read-only methods have been implemented, and the API may still change. Be careful if you start depending on this module.

ATTRIBUTES

url

The URL of the registry. Most of the time this URL is automatically derived by provider classes like (Docker::Registry::ECR.

auth

An instance of an object that has the Docker::Registry::Auth Role. See AUTHENTICATION for a list of authentication types. Subclasses (like Docker::Registry::GCE) will set a default authentication object appropiate for the specific provider. This is left injectable in the constructor so the programmer can force a specific auth provider.

METHODS

repositories

Returns a Docker::Registry::Result::Repositories object with the list of repositories

repository_tags(name => $repo_name)

Returns a Docker::Registry::Result::RepositoryTags object with the list of tags

PROVIDERS

Different cloud providers of Docker registries have subtle differences between them, so there are specialized classes for each supported provider:

Docker::Registry::Azure

Docker::Registry::ECR

Docker::Registry::GCE

Docker::Registry::Gitlab

AUTHENTICATION

Each registry class has it's authentication providers:

Docker::Registry::Auth::Basic

Docker::Registry::Auth::ECR

Docker::Registry::Auth::GCEServiceAccount

Docker::Registry::Auth::Gitlab

The most of the time the specialized provider tries to select the appropiate authentication module, but it can be overrided with the auth attribute

SEE ALSO

https://docs.docker.com/registry/spec/api/

AUTHOR

    Jose Luis Martinez
    CAPSiDE
    jlmartinez@capside.com

Contributors

Wesley Schwengle (waterkip) has implemented the GitLab provider, as well as refactored code

BUGS and SOURCE

The source code is located here: https://github.com/pplu/docker-registry

Please report bugs to: https://github.com/pplu/docker-registry/issues

COPYRIGHT and LICENSE

Copyright (c) 2018 by CAPSiDE This code is distributed under the Apache 2 License. The full text of the license can be found in the LICENSE file included with this module.