The Wayback Machine - https://web.archive.org/web/20160305015758/https://docs.docker.com/opensource/FAQ/
Get Started
Quickstart containers Understand the architecture
Migrate to Engine 1.10 Breaking changes Deprecated Engine Features FAQ
Release Notes
Learn about Dockerfiles and Docker Cloud Back up data volumes Create a proxy or load balancer Install the Deploy to Docker Cloud button Integrate with Slack Push images to Docker Cloud SSHing into a Docker Cloud-managed node Upgrade Docker Engine on a node Use the Docker Cloud Agent Using the Docker Cloud CLI
API reference
Quickstart contribution FAQ for contributors Where to chat or get help Style guide for Docker documentation

FAQ for contributors

This section contains some frequently asked questions and tips for troubleshooting problems in your code contribution.

How do I set my signature

  1. Change to the root of your docker-fork repository.

    $ cd docker-fork
    
  2. Set your user.name for the repository.

    $ git config --local user.name "FirstName LastName"
    
  3. Set your user.email for the repository.

    $ git config --local user.email "[email protected]"
    

How do I track changes from the docker repo upstream

Set your local repo to track changes upstream, on the docker repository.

  1. Change to the root of your Docker repository.

    $ cd docker-fork
    
  2. Add a remote called upstream that points to docker/docker

    $ git remote add upstream https://github.com/docker/docker.git
    

How do I format my Go code

Run gofmt -s -w filename.go on each changed file before committing your changes. Most editors have plug-ins that do the formatting automatically.

What is the pre-pull request checklist

  • Sync and cleanly rebase on top of Docker’s master; do not mix multiple branches in the pull request.

  • Squash your commits into logical units of work using git rebase -i and git push -f.

  • If your code requires a change to tests or documentation, include code,test, and documentation changes in the same commit as your code; this ensures a revert would remove all traces of the feature or fix.

  • Reference each issue in your pull request description (#XXXX).

How should I comment my code?

The Go blog wrote about code comments, it is a single page explanation. A summary follows:

  • Comments begin with two forward // slashes.
  • To document a type, variable, constant, function, or even a package, write a regular comment directly preceding the elements declaration, with no intervening blank line.
  • Comments on package declarations should provide general package documentation.
  • For packages that need large amounts of introductory documentation: the package comment is placed in its own file.
  • Subsequent lines of text are considered part of the same paragraph; you must leave a blank line to separate paragraphs.
  • Indent pre-formatted text relative to the surrounding comment text (see gob’s doc.go for an example).
  • URLs are converted to HTML links; no special markup is necessary.

How do I rebase my feature branch?

Always rebase and squash your commits before making a pull request.

  1. Fetch any of the last minute changes from docker/docker.

    $ git fetch upstream master
    
  2. Start an interactive rebase.

    $ git rebase -i upstream/master
    
  3. Rebase opens an editor with a list of commits.

        pick 1a79f55 Tweak some of images
        pick 3ce07bb Add a new line
    

    If you run into trouble, git --rebase abort removes any changes and gets you back to where you started.

  4. Squash the pick keyword with squash on all but the first commit.

    pick 1a79f55 Tweak some of images
    squash 3ce07bb Add a new line
    

    After closing the file, git opens your editor again to edit the commit message.

  5. Edit and save your commit message.

    $ git commit -s
    

    Make sure your message includes your signature.

  6. Push any changes to your fork on GitHub, using the -f option to force the previous change to be overwritten.

    $ git push -f origin my-keen-feature
    
Mar 5, 2016 at 1:15am (PST) { "docker/apidocs": { "ref": "master", "repos": [ "[email protected]:docker/dhe-deploy.git" ], "sha": "70ac255c88cde0ea6ecf3fcb812783dea7e09da6" }, "docker/cloud-api-docs": { "ref": "master", "repos": [ "[email protected]:docker/cloud-docs.git" ], "sha": "c0539949c40be9abb193271e46d2ea88196f122d" }, "docker/cloud-api-docs-layout": { "ref": "master", "repos": [ "[email protected]:docker/cloud-docs.git" ], "sha": "c0539949c40be9abb193271e46d2ea88196f122d" }, "docker/compose": { "ref": "docs", "repos": [ "[email protected]:docker/compose.git" ], "sha": "9da9555f10abe628e7742476af3f10bd89f68b75" }, "docker/docker": { "ref": "docs", "repos": [ "[email protected]:docker/docker.git" ], "sha": "0e63b073ac8f33335a4d4df3f2aa22120e0b7f43" }, "docker/docker-cloud": { "ref": "master", "repos": [ "[email protected]:docker/cloud-docs.git" ], "sha": "c0539949c40be9abb193271e46d2ea88196f122d" }, "docker/docker-hub": { "ref": "master", "repos": [ "[email protected]:docker/hub2-demo.git" ], "sha": "73ccb2d678ab0cd83067f0c7ef6f3923d750c7bd" }, "docker/docker-trusted-registry": { "ref": "master", "repos": [ "[email protected]:docker/dhe-deploy.git" ], "sha": "70ac255c88cde0ea6ecf3fcb812783dea7e09da6" }, "docker/docs-base": { "ref": "master", "repos": [ "[email protected]:docker/docs-base.git" ], "sha": "5a4cfac3c4d156eda45080c7dcdd2a4c41e08067" }, "docker/kitematic": { "ref": "docs", "repos": [ "[email protected]:docker/kitematic.git" ], "sha": "856a989d834f7fcbcb9bba687539fb159228f6b8" }, "docker/machine": { "ref": "docs", "repos": [ "[email protected]:docker/machine.git" ], "sha": "21edf30337dc5996b5d785ce54d68b4020242f57" }, "docker/notary": { "ref": "docs", "repos": [ "[email protected]:docker/notary.git" ], "sha": "dfeb51f54f2b0cdf20cb55427b7cc8ea2d1cdd0a" }, "docker/opensource": { "ref": "master", "repos": [ "[email protected]:docker/opensource.git" ], "sha": "b994cdd1f74b0aeb0b51fda1249a0c4c8efbf0d0" }, "docker/registry": { "ref": "docs", "repos": [ "[email protected]:docker/distribution.git" ], "sha": "a5bd3e61441873ba6cb40480bda58176733fedb9" }, "docker/swarm": { "ref": "docs", "repos": [ "[email protected]:docker/swarm.git" ], "sha": "b43a2c21c4017726cd9cb17ef9b16f2eef6d1159" }, "docker/toolbox": { "ref": "master", "repos": [ "[email protected]:docker/toolbox.git" ], "sha": "de267d701f94035549ea03e68047d85534286f85" }, "docker/tutorials": { "ref": "master", "repos": [ "[email protected]:docker/tutorials.git" ], "sha": "7af2622fe68a30684d971e4bf3ca7988902e5e26" }, "docker/ucp": { "ref": "docs", "repos": [ "[email protected]:docker/orca.git" ], "sha": "8cd10936a1e063b9be0d5c04de7311a1b2cb25cf" }, "docs.docker.com": { "ref": "refs/heads/v1.10-03-04-2016-165411", "repos": [ "[email protected]:moxiegirl/docs.docker.com.git", "[email protected]:docker/docs.docker.com.git" ], "sha": "5d156add0cb35c1b8f7d2dc1e08f04bd5725792b" } }