70 lines
3.7 KiB
Markdown
70 lines
3.7 KiB
Markdown
> **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](https://github.com/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](https://groups.google.com/a/dockerproject.org/forum/#!forum/distribution)
|
|
* Submit your ideas, and upvote those you think matter the most on [Google Moderator](https://www.google.com/moderator/?authuser=1#16/e=2165c3)
|
|
|
|
### 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
|
|
- This includes a throrough review of [docker/docker#9784](https://github.com/docker/docker/pull/9784) by core maintainers
|
|
|
|
* 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](https://github.com/docker/docker/pull/9784), and in order to maintain focus on producing a top quality alternative.
|
|
|
|
### Relevant documents
|
|
|
|
* [Analysis of current state and goals](doc/opensprint/kickoff.md)
|