distribution

package module
v2.0.0-alpha.2+incompa... Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 5, 2015 License: Apache-2.0 Imports: 0 Imported by: 0

README

Notice: This repository hosts experimental components that are currently under heavy and fast-paced development, not-ready for public consumption. If you are looking for the stable registry, please head over to docker/docker-registry instead.

Distribution

The Docker toolset to pack, ship, store, and deliver content.

Planned content for this repository:

  • Distribution related specifications
    • Image format
    • JSON registry API
  • Registry implementation: a Golang implementation of the JSON API
  • Client libraries to consume conforming implementations of the JSON API

Ongoing open sprint

What is an open sprint?

The open sprint is a focused effort of a small group of people to kick-off a new project, while commiting to becoming maintainers of the resulting work.

Having a dedicated team work on the subject doesn't mean that you, the community, cannot contribute! We need your input to make the best use of the sprint, and focus our work on what matters for you. For this particular topic:

  • Come discuss on IRC: #docker-distribution on FreeNode
  • Come read and participate in the Google Groups
  • Submit your ideas, and upvote those you think matter the most on Google Moderator
Goal of the distribution sprint

Design a professional grade and extensible content distribution system, that allow users to:

  • Enjoy an efficient, secured and reliable way to store, manage, package and exchange content
  • Hack/roll their own on top of healthy open-source components
  • Implement their own home made solution through good specs, and solid extensions mechanism.
Schedule and expected output

The Open Sprint will start on Monday December 29th, and end on Friday January 16th.

What we want to achieve as a result is:

  • Tactical fixes of today's frustrations in the existing Docker codebase

  • Laying the base of a new distribution subsystem, living independently, and with a well defined group of maintainers. This is the purpose of this repository, which aims at hosting:

    • A specification of the v2 image format
    • A specification of the JSON/HTTP protocol
    • Server-side Go implementation of the v2 registry
    • Client-side Go packages to consume this new API
    • Standalone binaries providing content distribution functionalities outside of Docker
  • Constraints for interface provided by Distribution to Core:

    • The distribution repository is a collection of tools for packaging and shipping content with Docker
    • All tools are usable primarily as standalone command-line tools. They may also expose bindings in one or more programming languages. Typically the first available language is Go, but that is not automatically true and more languages will be supported over time
    • The distribution repository is still under incubation, any code layout, interface and name may change before it gets included in a stable release of Docker
How will this integrate with Docker engine?

Building awesome, independent, and well maintained distribution tools should give Docker core maintainers enough incentive to switch to the newly develop subsystem. We make no assumptions on a given date or milestone as urgency should be fixed through docker/docker#9784, and in order to maintain focus on producing a top quality alternative.

Relevant documents

Documentation

Overview

Package distribution will define the interfaces for the components of docker distribution. The goal is to allow users to reliably package, ship and store content related to docker images.

This is currently a work in progress. More details are availalbe in the README.md.

Directories

Path Synopsis
Godeps
_workspace/src/code.google.com/p/go-uuid/uuid
The uuid package generates and inspects UUIDs.
The uuid package generates and inspects UUIDs.
_workspace/src/github.com/AdRoll/goamz/aws
goamz - Go packages to interact with the Amazon Web Services.
goamz - Go packages to interact with the Amazon Web Services.
_workspace/src/github.com/bugsnag/bugsnag-go
Package bugsnag captures errors in real-time and reports them to Bugsnag (http://bugsnag.com).
Package bugsnag captures errors in real-time and reports them to Bugsnag (http://bugsnag.com).
_workspace/src/github.com/bugsnag/bugsnag-go/errors
Package errors provides errors that have stack-traces.
Package errors provides errors that have stack-traces.
_workspace/src/github.com/bugsnag/bugsnag-go/revel
Package bugsnagrevel adds Bugsnag to revel.
Package bugsnagrevel adds Bugsnag to revel.
_workspace/src/github.com/bugsnag/osext
Extensions to the standard "os" package.
Extensions to the standard "os" package.
_workspace/src/github.com/bugsnag/panicwrap
The panicwrap package provides functions for capturing and handling panics in your application.
The panicwrap package provides functions for capturing and handling panics in your application.
_workspace/src/github.com/docker/libtrust
Package libtrust provides an interface for managing authentication and authorization using public key cryptography.
Package libtrust provides an interface for managing authentication and authorization using public key cryptography.
_workspace/src/github.com/gorilla/context
Package context stores values shared during a request lifetime.
Package context stores values shared during a request lifetime.
_workspace/src/github.com/gorilla/handlers
Package handlers is a collection of handlers for use with Go's net/http package.
Package handlers is a collection of handlers for use with Go's net/http package.
_workspace/src/github.com/gorilla/mux
Package gorilla/mux implements a request router and dispatcher.
Package gorilla/mux implements a request router and dispatcher.
_workspace/src/github.com/yvasiyarov/go-metrics
Go port of Coda Hale's Metrics library
Go port of Coda Hale's Metrics library
Metrics output to StatHat.
_workspace/src/github.com/yvasiyarov/gorelic
Package gorelic is an New Relic agent implementation for Go runtime.
Package gorelic is an New Relic agent implementation for Go runtime.
_workspace/src/github.com/yvasiyarov/newrelic_platform_go
Package newrelic_platform_go is New Relic Platform Agent SDK for Go language.
Package newrelic_platform_go is New Relic Platform Agent SDK for Go language.
_workspace/src/golang.org/x/net/context
Package context defines the Context type, which carries deadlines, cancelation signals, and other request-scoped values across API boundaries and between processes.
Package context defines the Context type, which carries deadlines, cancelation signals, and other request-scoped values across API boundaries and between processes.
_workspace/src/gopkg.in/check.v1
Package check is a rich testing extension for Go's testing package.
Package check is a rich testing extension for Go's testing package.
_workspace/src/gopkg.in/yaml.v2
Package yaml implements YAML support for the Go language.
Package yaml implements YAML support for the Go language.
api
v2
Package v2 describes routes, urls and the error codes used in the Docker Registry JSON HTTP API V2.
Package v2 describes routes, urls and the error codes used in the Docker Registry JSON HTTP API V2.
Package auth defines a standard interface for request access controllers.
Package auth defines a standard interface for request access controllers.
silly
Package silly provides a simple authentication scheme that checks for the existence of an Authorization header and issues access if is present and non-empty.
Package silly provides a simple authentication scheme that checks for the existence of an Authorization header and issues access if is present and non-empty.
cmd
registry-api-descriptor-template
registry-api-descriptor-template uses the APIDescriptor defined in the api/v2 package to execute templates passed to the command line.
registry-api-descriptor-template uses the APIDescriptor defined in the api/v2 package to execute templates passed to the command line.
Package digest provides a generalized type to opaquely represent message digests and their operations within the registry.
Package digest provides a generalized type to opaquely represent message digests and their operations within the registry.
Package storage contains storage services for use in the registry application.
Package storage contains storage services for use in the registry application.
base
Package base provides a base implementation of the storage driver that can be used to implement common checks.
Package base provides a base implementation of the storage driver that can be used to implement common checks.
s3
Package s3 provides a storagedriver.StorageDriver implementation to store blobs in Amazon S3 cloud storage.
Package s3 provides a storagedriver.StorageDriver implementation to store blobs in Amazon S3 cloud storage.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL