Compare commits

..

1954 Commits

Author SHA1 Message Date
Michael Crosby 5bc2ff8a36 Bump to version 1.4.1
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2014-12-15 15:57:00 -08:00
Brian Goff a83dadbeaf Fix volumes-from/bind-mounts passed in on start
Fixes #9628
Slightly reverts #8683, HostConfig on start is _not_ deprecated.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2014-12-15 15:54:06 -08:00
Michael Crosby eac27ad46d Add test to enforce volume build content
This tests ensures that the content from a dir within a build is carried
over even if VOLUME for that dir is specified in the Dockerfile.  This
test ensures this long standing functionality.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2014-12-15 15:53:55 -08:00
Jessie Frazelle 0e4e200071 Merge pull request #9345 from jfrazelle/bump_v1.4.0
Bump version to 1.4.0
2014-12-11 16:31:29 -08:00
Jessica Frazelle 4595d4fb03 Bump version to v1.4.0
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-12-11 15:00:44 -08:00
Jessica Frazelle debf60b466 Merge branch master into bump_v1.4.0
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-12-11 15:00:03 -08:00
Jessie Frazelle ce1393cb55 Merge pull request #9616 from cyphar/9608-builder-fix-incomplete-chown-walk-addcontext
builder: internals: fix incomplete chown walk when fixing permissions
2014-12-11 13:54:08 -08:00
Michael Crosby 4d318db749 Merge pull request #9620 from tiborvass/merge_release_v1.3.3
Merge release v1.3.3
2014-12-11 13:53:32 -08:00
Tibor Vass 9f48be69e5 Change version to 1.3.3-dev
Signed-off-by: Tibor Vass <teabee89@gmail.com>
2014-12-11 16:35:22 -05:00
unclejack 5b851982da Bump version to v1.3.3
Conflicts:
	VERSION

Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com>
Signed-off-by: Tibor Vass <teabee89@gmail.com>
2014-12-11 16:33:20 -05:00
Tibor Vass fdabd6b14e docs: Add release notes
Signed-off-by: Tibor Vass <teabee89@gmail.com>
2014-12-11 16:29:28 -05:00
unclejack bff1d9dbce validate image ID properly & before load
Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com>

Conflicts:
	graph/load.go
2014-12-11 16:29:27 -05:00
Arnaud Porterie af2021955c Add integration test for xz path issue
Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>

Conflicts:
	integration-cli/docker_cli_build_test.go
2014-12-11 16:29:15 -05:00
Michael Crosby 001ac15b54 Decompress archive before streaming the unpack in a chroot
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>

Conflicts:
	pkg/archive/archive.go
	pkg/chrootarchive/archive.go

Conflicts:
	pkg/archive/archive.go
2014-12-11 16:29:13 -05:00
Michael Crosby 7862f831fe Update chroot apply layer to handle decompression outside chroot
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>

Conflicts:
	pkg/archive/diff.go
	pkg/chrootarchive/archive.go

Conflicts:
	pkg/archive/diff.go
	pkg/chrootarchive/diff.go
2014-12-11 16:28:24 -05:00
Cristian Staretu e4ba82d50e Add build tests covering extraction in chroot
Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com>
2014-12-11 16:26:52 -05:00
unclejack a57eee2229 integ-cli: add test for links in volumes
Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com>
2014-12-11 16:26:52 -05:00
unclejack 7496cbbccc integ-cli: add build test for absolute symlink
Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com>
2014-12-11 16:26:52 -05:00
Tibor Vass 0e71a48d4e Add another symlink breakout test
Signed-off-by: Tibor Vass <teabee89@gmail.com>

Conflicts:
	integration-cli/docker_cli_build_test.go
2014-12-11 16:26:51 -05:00
Tibor Vass 5f0f0c228d symlink: add more tests
Signed-off-by: Tibor Vass <teabee89@gmail.com>
2014-12-11 16:26:01 -05:00
Tibor Vass ff4d05ed73 symlink: cleanup names and break big test into multiple smaller ones
Signed-off-by: Tibor Vass <teabee89@gmail.com>
2014-12-11 16:26:01 -05:00
Tibor Vass b7f352b0fb Refactor of symlink tests to remove testdata dir
Signed-off-by: Tibor Vass <teabee89@gmail.com>
2014-12-11 16:26:01 -05:00
Tianon Gravi fa3ec89515 Simplify FollowSymlinkInScope based on Go 1.3.3's EvalSymlinks
Signed-off-by: Andrew Page <admwiggin@gmail.com>
2014-12-11 16:26:01 -05:00
Tibor Vass be8f9a2313 Merge pull request #9617 from tiborvass/bump_v1.3.3
Bump v1.3.3
2014-12-11 15:31:43 -05:00
Aleksa Sarai 916cba9c58 builder: internals: fix incomplete chown walk when fixing permissions
This patch fixes the permission fixing code used by addContext, which
would not be responsible for Lchown-ing top-level directories added to a
destination that didn't exist prior to untar-ing the context.

Signed-off-by: Aleksa Sarai <cyphar@cyphar.com> (github: cyphar)
2014-12-12 06:07:16 +11:00
Vincent Batts 74bbb93571 Merge pull request #9258 from rhvgoyal/transaction-id-improvements
devmapper fix usage of pool transaction id
2014-12-11 12:58:18 -05:00
unclejack d344625847 Bump version to v1.3.3 2014-12-11 17:37:17 +02:00
Hans Rødtang 496c2748cf Updated cover tool import path.
Signed-off-by: Hans Rødtang <hansrodtang@gmail.com>
2014-12-11 17:37:17 +02:00
Vincent Batts 6700580bbc Merge pull request #9604 from crosbymichael/registry-fruit-loops
Prevent infinite loop with var overshadowing
2014-12-11 10:36:47 -05:00
Michael Crosby 9a7a1e5be0 Refactor put image function's redirect loop
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2014-12-10 18:11:27 -08:00
Michael Crosby 3b4de1070f Prevent loop with var overshadowing
Incase of a 3xx redirect the var was being overshowed and ever changed
causing an infinite loop.

Fixes #9480

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2014-12-10 17:43:21 -08:00
Tibor Vass ee8504bc5a docs: Add release notes
Signed-off-by: Tibor Vass <teabee89@gmail.com>
2014-12-10 18:19:10 -05:00
James Turnbull eba451b659 Merge pull request #9566 from jfrazelle/btrfs-overlayfs
add note to docs about overlay + btrfs unsupported
2014-12-11 09:32:10 +11:00
Jessica Frazelle 340ea25ac1 add note to docs about overlay + btrfs
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-12-10 14:29:41 -08:00
Alexander Morozov 5ca4ba9ed0 Merge pull request #9597 from icecrime/9467-chown_regression
Fix permissions on ADD/COPY
2014-12-10 11:47:33 -08:00
Arnaud Porterie cfc24769a2 Fix permissions on ADD/COPY
Fix a regression introduced in PR#9467 when a single file was added or
copied.

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2014-12-10 11:09:03 -08:00
Michael Crosby b905f88ee5 Merge pull request #9582 from Mic92/tls_interactive_exec
Fix interactive TLS postContainersAttach
2014-12-10 10:37:50 -08:00
Michael Crosby 428c263a6c Merge pull request #9099 from vbatts/vbatts-tarsum_spec
pkg/tarsum: specification on TarSum checksum algorithm
2014-12-10 10:24:48 -08:00
Jörg Thalheim a25168d28d Fix interactive TLS postContainersAttach
related to 266a1044de

Signed-off-by: Jörg Thalheim <joerg@higgsboson.tk>
2014-12-10 08:57:38 +01:00
Jessie Frazelle 3076115e2c Merge pull request #9588 from LK4D4/remove_stderr_from_build
Use Set for stderr "logs" job in builder
2014-12-09 19:48:29 -08:00
Alexandr Morozov a62cbdeb47 Use Set for stderr "logs" job in builder
Because engine implicitly adds his stder to job stderr

Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-12-09 19:08:24 -08:00
Michael Crosby fb810d18bd Merge pull request #9318 from shishir-a412ed/doc-cpu-share
Enhanced description for 'docker run' command, -c/--cpu-shares flag
2014-12-09 17:21:09 -08:00
Alexander Morozov fa7e01794f Merge pull request #9537 from icecrime/9476-tty_stdin_redirect
Forbid client piping to tty enabled container
2014-12-09 15:17:44 -08:00
Arnaud Porterie 67e3ddb75f Forbid client piping to tty enabled container
Forbid `docker run -t` with a redirected stdin (such as `echo test |
docker run -ti busybox cat`). Forbid `docker exec -t` with a redirected
stdin. Forbid `docker attach` with a redirect stdin toward a tty enabled
container.

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2014-12-09 14:30:49 -08:00
Brian Goff 243a640d3e Add test for exec tty stdin close
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2014-12-09 14:30:49 -08:00
Alexander Morozov 2687287289 Merge pull request #9575 from brahmaroutu/lxcconf_9501
User should get error message on wrong config
2014-12-09 14:10:38 -08:00
Srini Brahmaroutu 8dcbd6ab63 User should get error message on wrong config
closes #9501

Signed-off-by: Srini Brahmaroutu <srbrahma@us.ibm.com>
2014-12-09 21:52:07 +00:00
Alexandr Morozov 994e4a1c69 Change path breakout detection logic in archive package
Fixes #9375

Signed-off-by: Alexandr Morozov <lk4d4@docker.com>

Conflicts:
	integration-cli/docker_cli_cp_test.go
		removed extra test
2014-12-09 23:16:03 +02:00
Arnaud Porterie 0de96a8163 Fix client-side HTTP hijacking over TLS
Properly CloseWrite() the client socket once done with stdin when using
TLS connection (this used to rely on an erroneous type assertion).

Fixes #8658.
Fixes #8642.

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
Signed-off-by: Michael Crosby <crosby.michael@gmail.com>
2014-12-09 14:56:17 -05:00
Michael Crosby c8fc8768b6 Flush stdin from within chroot archive
This makes sure that we don't buffer in memory and that we also flush
stdin from diff as well as untar.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>

Conflicts:
	pkg/chrootarchive/diff.go
2014-12-09 14:56:17 -05:00
Lewis Marshall f2008c5359 Fix chroot untar for zero padded archive from slow reader
Signed-off-by: Lewis Marshall <lewis@lmars.net>
2014-12-09 14:56:16 -05:00
unclejack acf1720b3f validate image ID properly & before load
Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com>
2014-12-09 14:56:16 -05:00
Arnaud Porterie 0e9a7bc3ce Add integration test for xz path issue
Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>

Conflicts:
	integration-cli/docker_cli_build_test.go
2014-12-09 14:56:16 -05:00
Michael Crosby 313a1b7620 Decompress archive before streaming the unpack in a chroot
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>

Conflicts:
	pkg/archive/archive.go
	pkg/chrootarchive/archive.go
2014-12-09 14:56:16 -05:00
Michael Crosby 62d83404b5 Update chroot apply layer to handle decompression outside chroot
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>

Conflicts:
	pkg/archive/diff.go
	pkg/chrootarchive/archive.go
2014-12-09 14:56:16 -05:00
Cristian Staretu aef842e7df Add build tests covering extraction in chroot
Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com>
2014-12-09 14:56:16 -05:00
unclejack e629e255d8 integ-cli: add test for links in volumes
Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com>
2014-12-09 14:56:16 -05:00
unclejack 134f8e6b47 integ-cli: add build test for absolute symlink
Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com>
2014-12-09 14:56:16 -05:00
Tibor Vass 1cd89729d5 Add another symlink breakout test
Signed-off-by: Tibor Vass <teabee89@gmail.com>
2014-12-09 14:56:16 -05:00
Tibor Vass 566146bc13 symlink: add more tests
Signed-off-by: Tibor Vass <teabee89@gmail.com>
2014-12-09 14:56:16 -05:00
Tibor Vass 1ebafeb635 symlink: cleanup names and break big test into multiple smaller ones
Signed-off-by: Tibor Vass <teabee89@gmail.com>
2014-12-09 14:56:16 -05:00
Tibor Vass 18193ae0a3 Refactor of symlink tests to remove testdata dir
Signed-off-by: Tibor Vass <teabee89@gmail.com>
2014-12-09 14:56:16 -05:00
Tianon Gravi cd745d5c6e Simplify FollowSymlinkInScope based on Go 1.3.3's EvalSymlinks
Signed-off-by: Andrew Page <admwiggin@gmail.com>
2014-12-09 14:56:16 -05:00
Michael Crosby bb24f99d74 Merge pull request #9356 from cc272309126/fix-exec-paused-container
Fix the issue that when docker exec a paused container, it will always
2014-12-09 11:01:44 -08:00
Michael Crosby 64ebffe7b6 Merge pull request #9467 from icecrime/9401-restrict_add_chown_scope
Reduce permissions changes scope after ADD/COPY
2014-12-09 10:40:23 -08:00
Michael Crosby 86efd1a102 Merge pull request #9447 from ashahab-altiscale/7687-lxc-cap-add-cap-drop
LXC CAP ADD CAP DROP IN TEMPLATE
2014-12-09 10:35:52 -08:00
Tianon Gravi ca2ebaeafe Merge pull request #9581 from vbatts/vbatts-fix_gh9138
contrib: fix the docker-device-tool
2014-12-09 09:30:37 -08:00
shishir-a412ed 2597bffe9a Added description for 'docker run' command, -c/--cpu-shares flag
Signed-off-by: Shishir Mahajan <shishir.mahajan@redhat.com>
2014-12-09 09:55:56 -05:00
James Turnbull c587a3faf6 Merge pull request #9558 from philips/fixup-typo-in-systemd-article
docs: docker.service not services
2014-12-09 23:10:17 +11:00
James Turnbull 74b29e8b45 Merge pull request #9559 from philips/use-dropins-in-systemd-article
docs: use systemd drop-ins instead of copying
2014-12-09 23:09:52 +11:00
unclejack f568b282fe Merge pull request #9573 from crosbymichael/flush-stdin
Flush stdin from within chroot archive
2014-12-09 01:54:01 +02:00
Fred Lifton 03d1622ab8 Merge pull request #9522 from SvenDowideit/add-some-cap-add-examples
Add some cap add examples
2014-12-08 15:50:25 -08:00
Michael Crosby d1535131d2 Flush stdin from within chroot archive
This makes sure that we don't buffer in memory and that we also flush
stdin from diff as well as untar.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2014-12-08 15:41:07 -08:00
Tibor Vass c9285a08b1 Merge pull request #9539 from flynn/chroot-untar-empty-archive-slow
Fix chroot untar for zero padded archive from slow reader
2014-12-08 17:59:21 -05:00
Alexander Morozov 0d94196999 Merge pull request #9567 from jfrazelle/8333-net-link-error
Throw error when container links to --net host container
2014-12-08 14:36:44 -08:00
Jessica Frazelle 6743be44ca Running a container that links to a container with --net host
should throw an error.

Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-12-08 11:33:18 -08:00
Jessie Frazelle 58ce0146e1 Merge pull request #9512 from duglin/Issue9404
Make 'docker build' send non-err output to stdout
2014-12-08 11:08:13 -08:00
Arnaud Porterie 12252e39a0 Merge pull request #9489 from crosbymichael/info-root
Return docker's root dir in docker -D info
2014-12-08 09:05:00 -08:00
Brandon Philips 2d51d71561 docs: use systemd drop-ins instead of copying
Copying the entire docker service file isn't necessary to add an
environment variable, instead use a drop-in configuration file. The nice
side-effect is that the user gets any vendor updates to the
docker.service file.

Signed-off-by: Brandon Philips <brandon.philips@coreos.com>
2014-12-07 18:45:50 -08:00
Brandon Philips e0792e7ece docs: remove a trailing whitespace
Signed-off-by: Brandon Philips <brandon.philips@coreos.com>
2014-12-07 18:45:43 -08:00
Brandon Philips 1ae7be716e docs: docker.service not services
Minor but important typo in the new systemd guide introduced in #9347.

Signed-off-by: Brandon Philips <brandon.philips@coreos.com>
2014-12-07 18:35:37 -08:00
Jessie Frazelle 53d5299a40 Merge pull request #9497 from icecrime/86580-tls_interactive_exec
Fix interactive exec over TLS
2014-12-06 13:12:06 -08:00
Arnaud Porterie f91a79e071 Merge pull request #9543 from ErikDubbelboer/racefix
Removed race condition
2014-12-06 09:08:36 -08:00
Erik Dubbelboer 46b1194d99 Removed race condition
If two interrupts were fired really quickly interruptCount could have been incremented twice before the LoadUint32 making cleanup not being called at all.

Signed-off-by: Erik Dubbelboer <erik@dubbelboer.com>
2014-12-06 22:52:19 +08:00
Lewis Marshall c128c134d7 Fix chroot untar for zero padded archive from slow reader
Signed-off-by: Lewis Marshall <lewis@lmars.net>
2014-12-06 02:44:31 +00:00
Abin Shahab fdf7457683 LXC CAP ADD CAP DROP IN TEMPLATE
Added cap-drop and cap-add in lxc template
Docker-DCO-1.1-Signed-off-by: Abin Shahab <ashahab@altiscale.com> (github: ashahab-altiscale)
2014-12-05 23:08:22 +00:00
Alexander Morozov 984b072a37 Merge pull request #9479 from jlhawn/tarsum_test_fix
Correct TarSum benchmarks: 9kTar and 9kTarGzip
2014-12-05 14:47:54 -08:00
Michael Crosby 654da4e151 Return docker's root dir in docker -D info
This adds the docker daemon's root directory to docker info when running
in debug mode.  This allows the user to view the root directory where
docker is writing and storing state.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2014-12-05 12:13:25 -08:00
Jessie Frazelle 52a52909a8 Merge pull request #9488 from crosbymichael/update-libcontainer-dec3
Update libcontainer to 53eca435e63db58b06cf796d3a9
2014-12-05 12:05:06 -08:00
Michael Crosby 2525a04594 Merge pull request #9493 from SvenDowideit/note-lxc-conf-pitfall
Note that using -lxc-conf to change things Docker manages has pitfalls
2014-12-05 11:16:19 -08:00
Michael Crosby 8bfe4d906e Merge pull request #9528 from SvenDowideit/add-license-to-docs
Add Apache license and link to the docs
2014-12-05 11:15:47 -08:00
Sven Dowideit 522e631096 I was talking to someone whom i listen to, and she noted that our docs don't mention the license
Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>
2014-12-05 21:06:11 +10:00
Sven Dowideit 5f2000944b Add a fuse example, combining both SYS_ADMIN and --device
inspired by #9448 and #9487

Docker-DCO-1.1-Signed-off-by: Sven Dowideit <SvenDowideit@docker.com> (github: SvenDowideit)

Signed-off-by: Sven Dowideit <SvenDowideit@docker.com>
2014-12-05 16:42:48 +10:00
Sven Dowideit 48a596a804 add --cap-add=NET_ADMIN to make a new network device
inspired by #9452

Docker-DCO-1.1-Signed-off-by: Sven Dowideit <SvenDowideit@docker.com> (github: SvenDowideit)

Signed-off-by: Sven Dowideit <SvenDowideit@docker.com>
2014-12-05 16:30:54 +10:00
Sven Dowideit 8dfcbf62ed Merge pull request #9272 from SvenDowideit/pr_out_try_out_a_different_phrase_for_icc
Try out a different phrase for --icc
2014-12-05 16:22:51 +10:00
James Turnbull a10b0cd23f Merge pull request #9504 from davidmat/patch-1
Update Amazon EC2 Docker installation instructions
2014-12-04 21:57:45 -08:00
James Turnbull ebf89cf219 Merge pull request #9507 from jsternberg/docker-build-docs-formatting-fix
Fixing docs formatting for the forcerm flag on docker build
2014-12-04 21:54:14 -08:00
Fred Lifton 84dc2c83cb Merge pull request #9464 from SvenDowideit/sven_tries_webhooks
Add some extra details to webhook docs
2014-12-04 19:44:26 -08:00
James Turnbull 0bd51836c8 Merge pull request #9516 from SvenDowideit/tweak-sidebar-css-for-more-spacing
this v spacing irritated me while i was reading
2014-12-04 19:26:08 -08:00
Sven Dowideit b266ad9c60 Show image of the Build trigger screen, and add a little search engine fodder for it.
Docker-DCO-1.1-Signed-off-by: Sven Dowideit <SvenDowideit@docker.com> (github: SvenDowideit)
2014-12-05 13:05:38 +10:00
Sven Dowideit b4b899264e Add some extra details to webhook docs
Update the webhook JSON payloads to real ones,
and show there is a difference between an automated build webhook payload and a normal repo payload

Docker-DCO-1.1-Signed-off-by: Sven Dowideit <SvenDowideit@docker.com> (github: SvenDowideit)

Signed-off-by: Sven Dowideit <SvenDowideit@docker.com>
2014-12-05 12:13:22 +10:00
Sven Dowideit 11a75ec97f this v spacing irritated me while i was reading
Docker-DCO-1.1-Signed-off-by: Sven Dowideit <SvenDowideit@docker.com> (github: SvenDowideit)
2014-12-05 12:01:13 +10:00
Arnaud Porterie f3cedce360 Reduce permissions changes scope after ADD/COPY
Permissions after an ADD or COPY build instructions are now restricted
to the scope of files potentially modified by the operation rather than
the entire impacted tree.

Fixes #9401.

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2014-12-04 17:16:22 -08:00
Sven Dowideit 8e59bda173 Merge pull request #9388 from SvenDowideit/update-docs-from-cli
Auto-update documentation from the output of the cli.
2014-12-05 11:11:28 +10:00
Sven Dowideit e01baa6be7 Auto-update documentation from the output of the cli.
I've re-jigged the run man page so that each option's text begins with the
cli's help text for that flag, and then ay subsequent lines in the man page
are carried forward.

Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>

Docker-DCO-1.1-Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au> (github: SvenDowideit)
2014-12-05 10:43:38 +10:00
Michael Crosby 6e7a210db6 Merge pull request #9510 from crosbymichael/chrootarchive
Use consistent ApplyLayer in overlayfs
2014-12-04 14:21:26 -08:00
Doug Davis 5c91bb93a7 Make 'docker build' send non-err output to stdout
Right now 'docker build' will send:
   Sending build context to Docker daemon
to stderr, instead of stdout.  This PR fixes that.

I looked in the rest of api/client/commands.go for other cases
that might do this and only one jumped out at me:
  https://github.com/docker/docker/blob/master/api/client/commands.go#L2202
but I think if I changed that to go to stdout then it'll mess people up
who are expecting just the container ID to be printed to the screen and
there is no --quiet type of flag we can check.

Closes #9404

Signed-off-by: Doug Davis <dug@us.ibm.com>
2014-12-04 14:06:40 -08:00
Michael Crosby f47d6b9b9d Use consistent ApplyLayer in overlayfs
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2014-12-04 12:03:44 -08:00
David Mat da667581cf Update Amazon EC2 Docker installation instructions
The installation guide for EC2 is outdated, as the current version of Amazon Linux (2014.09) is now Docker ready. No need to go through the manual route anymore. The official AMI has Docker packages in the repository now (this was the 'pre-release' option in the outdated instructions).

Docker-DCO-1.1-Signed-off-by: David Mat <david@davidmat.com> (github: davidmat)
2014-12-04 21:02:29 +01:00
Jessie Frazelle bfde3f2cd1 Merge pull request #9494 from jfrazelle/cleanup
Cleanup unnecessary abstractions in integration-cli
2014-12-04 11:29:21 -08:00
cc272309126 1bb02117db Fix the issue when docker exec a paused container, it will always hang.
Add the test case of this issue.

Docker-DCO-1.1-Signed-off-by: Chen Chao <cc272309126@gmail.com> (github: cc272309126)
2014-12-05 03:10:44 +08:00
Jonathan A. Sternberg eb7d646a44 Fixing docs formatting for the forcerm flag on docker build
Signed-off-by: Jonathan A. Sternberg <jonathansternberg@gmail.com>
2014-12-04 12:35:31 -05:00
James Turnbull 603fe40661 Merge pull request #9495 from SvenDowideit/aws-cli-exclude-still-broken
Something changed, broke the docs release script, and it seems that --ex...
2014-12-04 03:14:34 -05:00
Arnaud Porterie 266a1044de Fix interactive exec over TLS
The code no longer assumes a net.TCPConn underlying the HTTP connection
in order to close attached streams.

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2014-12-03 23:43:03 -08:00
Josh Hawn 385917e22c Correctly close generated benchmark archives
Another update to TarSum tests, this patch fixes an issue where
the benchmarks were generating archives incorrectly by not closing
the tarWriter.

Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)
2014-12-03 22:26:06 -08:00
Sven Dowideit 6d560e197c Something changed, broke the docs release script, and it seems that --exclude still doesn't work, so I'm removing it
Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>
2014-12-04 16:10:55 +10:00
Jessica Frazelle 6fd818f3ef Fix output format where no variable specified in mount pkg
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-12-03 19:02:51 -08:00
Jessica Frazelle 4ee3a318a1 Run 'go vet' on integration-cli.
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-12-03 18:45:51 -08:00
Jessica Frazelle fa753e67ae Remove unnessary abstraction deepEqual
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-12-03 17:52:06 -08:00
Sven Dowideit b91d330088 Note that using -lxc-conf to change things Docker manages has pitfalls
Signed-off-by: Sven Dowideit <SvenDowideit@docker.com>

Docker-DCO-1.1-Signed-off-by: Sven Dowideit <SvenDowideit@docker.com> (github: SvenDowideit)
2014-12-04 11:49:06 +10:00
Jessica Frazelle 02a021119f Remove unnecessary abstraction nLines
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-12-03 17:47:28 -08:00
Jessica Frazelle 7ba9a18ade cleanup: remove startCommand function, only used once, and
unecessary abstraction.

Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-12-03 17:43:26 -08:00
Jessica Frazelle 7c7026bd22 Be consistent about libtrust import path.
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-12-03 17:36:14 -08:00
James Turnbull e15ffa45a6 Merge pull request #9486 from ClusterHQ/9484-fromSrc-api-docs
Document fromSrc more clearly
2014-12-03 20:31:44 -05:00
Jessie Frazelle 8520fd55b6 Merge pull request #9451 from erikh/fix-sqlite
graphdb: initialize the database semi-idempotently on every connection, not just new installs.
2014-12-03 17:17:20 -08:00
Michael Crosby e2a4b730ca Merge pull request #9490 from jfrazelle/fix-test-cmd-eff
Fix tests with old cmd function.
2014-12-03 16:29:31 -08:00
Jessica Frazelle e201d5bcd4 Fix tests with old cmd function.
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-12-03 15:53:19 -08:00
Jessie Frazelle 67fda33197 Merge pull request #9089 from cpuguy83/8942_create_volumes_on_create
Initialize volumes when container is created
2014-12-03 15:42:09 -08:00
Michael Crosby 269b37503e Update libcontainer to 53eca435e63db58b06cf796d3a9
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2014-12-03 14:53:11 -08:00
Jean-Paul Calderone 0888c1880f Update the most recent released version of the docs as well.
Signed-off-by: Jean-Paul Calderone <exarkun@twistedmatrix.com>
2014-12-03 17:14:08 -05:00
Jean-Paul Calderone 826f809d09 Talk about URL support and the real meaning of - in the latest fromSrc API documentation.
Signed-off-by: Jean-Paul Calderone <exarkun@twistedmatrix.com>
2014-12-03 17:13:48 -05:00
Alexander Morozov c8ccfcb930 Merge pull request #9482 from ncdc/TempArchive-close-bug
Fix invalid argument error on push
2014-12-03 14:13:15 -08:00
Andy Goldstein 48ec176cd5 Fix invalid argument error on push
With 32ba6ab from #9261, TempArchive now closes the underlying file and
cleans it up as soon as the file's contents have been read. When pushing
an image, PushImageLayerRegistry attempts to call Close() on the layer,
which is a TempArchive that has already been closed. In this situation,
Close() returns an "invalid argument" error.

Add a Close method to TempArchive that does a no-op if the underlying
file has already been closed.

Signed-off-by: Andy Goldstein <agoldste@redhat.com>
2014-12-03 16:12:24 -05:00
Michael Crosby 5d49d2bb7a Merge pull request #9426 from lhuard1A/overlay_rename
Rename overlayfs to overlay
2014-12-03 10:57:42 -08:00
Josh Hawn 92fd49f7ca Correct TarSum benchmarks: 9kTar and 9kTarGzip
These two cases did not actually read the same content with each iteration
of the benchmark. After the first read, the buffer was consumed. This patch
corrects this by using a bytes.Reader and seeking to the beginning of the
buffer at the beginning of each iteration.

Unfortunately, this benchmark was not actually as fast as we believed. But
the new results do bring its results closer to those of the other benchmarks.

Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)
2014-12-03 10:44:05 -08:00
Vivek Goyal 17b75a21a6 devmapper: Use transactions during device deletion
Use transaction logic during device deletion and do rollback if transaction
is not complete. Following is the sequence of events.

- Open transaction and save to metafile
- Delete device from pool
- Delete device metadata file from disk
- Close Transaction

If docker crashes without closing transaction then rollback will take
place upon next docker start.
 
Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2014-12-03 13:06:43 -05:00
Vivek Goyal c115c4aa45 devmapper: Use transaction mechanism during device or snap device creation
Finally this patch uses the notion of transaction for device or snapshot
device creation. 

Following is sequence of event.

- Open a trasaction and save details in a file.
- Create a new device/snapshot device
- If a new device id is used, refresh transaction with new device id details.
- Create device metadata file
- Close transaction.

If docker crashes anywhere in between without closing transaction, then
upon next start, docker will figure out that there was a pending transaction
and it will roll back transaction. That is it will do following.

- Delete Device from pool
- Delete device metadata file
- Remove transaction file to mark no transaction is pending.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2014-12-03 13:06:43 -05:00
Vivek Goyal e28a419e11 devmapper: Find a free device Id to use for device creation
Finally, we seem to have all the bits to keep track of all used device
Ids and find a free device Id to use when creating a  new device. Start
using it.

Ideally we should completely move away from retry logic when pool returns
-EEXISTS. For now I have retained that logic and I simply output a warning.
When things are stable, we should be able to get rid of it.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2014-12-03 13:06:43 -05:00
Vivek Goyal 14d0dd855e devmapper: Open code createDevice() and createSnapDevice()
Open code createDevice() and createSnapDevice() and move all the logic
in the caller.

This is a sheer code reorganization so that all device Id allocation
logic is in one function. That way in case of erros, one can easily
cleanup and mark device Id free again. (Later patches benefit from
it).

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2014-12-03 13:06:43 -05:00
Vivek Goyal a44c23fe66 devmapper: Provide a helper function getNextDeviceId()
Right now we are accessing devices.NextDeviceId directly and also 
incrementing it at various places.

Instead provide a helper function which is responsile for
incrementing NextDeviceId and return next deviceId. 

This is just code structuring. This will help later once we
convert this function to find a free device Id and it goes
through a bitmap of used/free device Ids.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2014-12-03 13:06:43 -05:00
Vivek Goyal 39dc7829de devmapper: Construct initial device Id map from device meta files
When docker starts, build a used/free Device Id map from the per
device meta files we already have. These meta files have the data
which device Ids are in use. Parse these files and mark device as
used in the map.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2014-12-03 13:06:43 -05:00
Vivek Goyal 4d39e056aa devmapper: Keep track of used device Ids in a bitmap
Currently devicemapper backend does not keep track of used device Ids in
the pool. It tries a device Id and if that device Id exists in pool, it
tries with a different Id and keeps on doing this in a loop till it succeeds.

This worked fine so far but now we are moving to transaction based
device creation and deletion. We will keep deviceId information in 
transaction which will be rolled back if docker crashed before transaction
was complete.

If we store a deviceId in transaction and later figure out it already
existed in pool and docker crashed, then we will rollback and remove
that existing device Id from pool (which we should not have).

That means, we should know free device Id in pool in advance before
we put that device Id in transaction.

Hence this patch creates a bitmap (one bit each for a deviceId), and
sets the bit if device Id is used otherwise resets it. This patch
is just preparing the ground right now. Actual usage will follow
in later patches.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2014-12-03 13:06:43 -05:00
Vivek Goyal 359a38b26a devmapper: Use a common delete function for all device deletion operation
Right now setupBaseImage() uses deleteDevice() to delete uninitialized
base image while rest of the code uses DeleteDevice(). Change it and
use a common function everywhere for the sake of uniformity.

I can't see what harm can be done by doing little extra locking done
by DeleteDevice().

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2014-12-03 13:06:43 -05:00
Vivek Goyal f078bcd8e5 devmapper: Rename NewTransactionId to OpenTransactionId
Very soon we will have the notion of an open transaction and keep its
details in a metafile.

When a new transaction is opened, we allocate a new transaction Id, 
do the device creation/deletion and then we will close the transaction.

I thought that OpenTransactionId better represents the semantics of
transaction Id associated with an open transaction instead of NewtransactionId.

This patch just does the renaming. No functionality change.

I have also introduced a structure "Transaction" which will keep all
the details associated with a transaction. Later patches will add more
fields in this structure.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2014-12-03 13:06:43 -05:00
Vivek Goyal 7b0a1b814b devmapper: Allocate new transaction Id using current transaction Id
Currently new transaction Id is created using allocateTransactionId()
function. This function takes NewTransactionId and bumps up by one 
to create NewTransactionId.

I think ideally we should be bumping up devices.TransactionId by 1
to come up with NewTransactionId. Because idea is that devices.TransactionId
contains the current pool transaction Id and to come up with a new
transaction Id bump it up by one.

Current code is not wrong as we are keeping NewTransactionId and
TransactionId in sync. But it will be more direct if we look at
devices.TransactionId to come up with NewTransactionId. That way
we don't have to even initialize NewTransactionId during startup
as first time somebody wants to do a transaction, it will be
allocated fresh.

So simplify the code a bit. No functionality change.
 
Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2014-12-03 13:06:43 -05:00
Vivek Goyal 6d347aeb69 devmapper: Remove unnecessary condition check in updatePoolTransactionId()
Currently updatePoolTransactionId() checks if NewTransactionId and
TransactionId are not same only then update the transaction Id in pool. This
check is redundant. Currently we call updatePoolTransactionId() only from
two places and both of these first allocate a new transaction Id.

Also updatePoolTransactionId() should only be called after allocating
new transaction Id otherwise it does not make any sense.

Remove the redundant check and reduce confusion.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2014-12-03 13:06:43 -05:00
Vivek Goyal ad9118c696 devmapper: Create new helper function for device and snap creation
Create two new helper functions for device and snap device creation. These
functions will not only create the device and also register the device.

Again, makes the code structure better and keeps all transaction logic
contained to functions instead of spilling over into functions like
setupBaseImage or AddDevice().

Just the code reorganization. No functionality change.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2014-12-03 13:06:43 -05:00
Vivek Goyal 442247927b devmapper: Provide a function unregisterDevice()
Currently registerDevice() adds a device to in-memory table, saves metadata
and also updates the pool transaction ID.

Now move transaciton Id update out of registerDevice() and provide a new
function unregisterDevice() which does the reverse of registerDevice().
This will simplify some code down the line and make it more structured.

This is just code reorganization and should not change functionality.
 
Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2014-12-03 13:06:43 -05:00
Vivek Goyal 7b2b15d3e9 devmapper: Use device id as specified by caller
Currently devicemapper CreateDevice and CreateSnapDevice keep on retrying
device creation till a suitable device id is found. 

With new transaction mechanism we need to store device id in transaction
before it has been created.

So change the logic in such a way that caller decides the devices Id to
use. If that device Id is not available, caller bumps up the device Id
and retries.

That way caller can update transaciton too when it tries a new Id. Transaction
related patches will come later in the series.
  
Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2014-12-03 13:06:43 -05:00
Vivek Goyal 5be77901cd devmapper: Do not add back device into hash map if meta file removal failed
When we are deleting a device, we also delete associated metadata file. If
that file removal fails, we are adding back the device in in-memory
table. I really can't see what's the point. When next lookup takes place
it will be automatically loaded if need be. Remove that code.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2014-12-03 13:06:43 -05:00
Vivek Goyal 824a87f7ef devmapper: Move pool id query and migration of old data in separate function
Right now initMetaData() first queries the pool for current transaciton Id
and then it migrates the old metafile.

Move pool transaction Id query and file migration in separate functions
for better code reuse and organization.

Given we have removed device transaction Id dependency from saveMetaData(),
we don't have to query pool transaction Id before migrating files.
 
Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2014-12-03 13:06:43 -05:00
Vivek Goyal 0db6cc85ed devmapper: Remove transaction Id update from saveMetaData()
Right now saveMetaData() is kind of little overloaded function. It is
supposed to save file metadata to disk. But in addition if user has
bumped up NewTransactionId before calling saveMetaData(), then it will
also update the transaction ID in pool.

Keep saveMetaData() simple and let it just save the file. Any update
of pool transaction ID is done inline in the code which needs it.

Also create an helper function updatePoolTransactionId() to update pool
transaction Id.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2014-12-03 13:06:43 -05:00
Vivek Goyal 004d8b9b33 devmapper: Remove unnecessary call to allocateTransactionId() during device removal
Remove call to allocateTransactionId() during device removal. This seems to
be unnecessary and it is not clear what this call is doing.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2014-12-03 13:06:43 -05:00
Vivek Goyal b721d6d8d0 devmapper: Do not check for transaction id during device metadata loading
Again, just because device transaction id is greater than pool transaction
id, it does not guarantee that device is in the pool. So do not check
of this during loading of device metadata.

Docker needs to deal with it. And device activation will fail when we try
to activate a device for whom metafile is present but there is no device
in the pool.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2014-12-03 13:06:43 -05:00
Vivek Goyal bb00453e58 devmapper: Do not check for pool transaction id during old metadata migration
Current code is associating a transaction id with each device and if pool
transaction id is greater that value, then current code assumes that device
is there in pool.

Transaction id of pool is a mechanism so that during device creation and
removal one can define a transaction and during startup figure out if
transaction was complete or not. I think we are using transaction id 
throughout the code little inappropriately.

For example, if a device is being deleted, it is possible that we deleted
the device from pool but before we could delete metafile docker crashed.
When docker comes back it will think that device is in the pool (due to
device transaction id being less than pool transaction id) but device
is not in the pool.

Similary, it could happen that some data in the pool is corrupted and
during pool repair some devices are lost (without docker knowing about
it). In that case tool pool transaction id will be higher than device
transaction id and there are no guaratees that device is actually in
the pool.

So move away from this model where we think that a device is in pool if pool
transaction id is greater than device transaction Id. Per device
transaction Id just says that after device creation this should be pool's
transaction Id and nothing more.

Transaction id is per pool property (as opposed to per device property) and
will be used internally to figure out if last transaction was complete or
not and recover from failure during docker startup.  

If for some reason metafile is present but device is not in pool, then 
device activation will fail later.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2014-12-03 13:06:43 -05:00
Lénaïc Huard 2352f00e4f Remove the last references to overlayfs
This only renames docker internal structures.
It has no impact on the end-user.

Signed-off-by: Lénaïc Huard <lhuard@amadeus.com>
2014-12-03 14:06:19 +01:00
Lénaïc Huard d680ca5c96 Rename the overlay storage driver
so that docker is started with `docker -d -s overlay` instead of `docker -d -s overlayfs`

Signed-off-by: Lénaïc Huard <lhuard@amadeus.com>
2014-12-03 13:57:23 +01:00
Sven Dowideit 070a519a9b fixes as per feedback
Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>

Docker-DCO-1.1-Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au> (github: SvenDowideit)
2014-12-03 12:46:23 +10:00
Sven Dowideit 94d67d5d5b Try out a different phrase for --icc
Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>

Docker-DCO-1.1-Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au> (github: SvenDowideit)
2014-12-03 12:46:23 +10:00
Sven Dowideit a74c12177f 80-char limit
Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>

Docker-DCO-1.1-Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au> (github: SvenDowideit)
2014-12-03 12:46:16 +10:00
Michal Minar a2aa78f6ec Doc: described storage-driver options in cli reference
Documented --storage-opt=[] option in cli reference page. Content taken
from:

  daemon/graphdriver/devmapper/README.md

Signed-off-by: Michal Minar <miminar@redhat.com>

Docker-DCO-1.1-Signed-off-by: Michal Minar <miminar@redhat.com> (github: SvenDowideit)
2014-12-03 12:46:16 +10:00
Michal Minar aa00ad47e2 Man: describe storage options
Documented --storage-opt=[] option in man page. Content taken from:

  daemon/graphdriver/devmapper/README.md

Signed-off-by: Michal Minar <miminar@redhat.com>

Docker-DCO-1.1-Signed-off-by: Michal Minar <miminar@redhat.com> (github: SvenDowideit)
2014-12-03 12:46:16 +10:00
Michal Minar a61a4a3188 Man: describe --icc option better
Current description is misleading. It make an impression the --icc=false
prevents containers to talk with each other.

Signed-off-by: Michal Minar <miminar@redhat.com>

Docker-DCO-1.1-Signed-off-by: Michal Minar <miminar@redhat.com> (github: SvenDowideit)
2014-12-03 12:46:16 +10:00
Sven Dowideit 70c4b4eded Merge pull request #9429 from sindhus/patch-1
Fix dead link in oracle.md
2014-12-03 12:38:17 +10:00
Fred Lifton 315520b845 Merge pull request #9430 from sindhus/patch-3
Fix dead link cli.md
2014-12-02 16:06:48 -08:00
Michael Crosby bc7ef42716 Merge pull request #9463 from jlhawn/tarsum_test_fix
Fix TarSum iteration test
2014-12-02 15:55:07 -08:00
Josh Hawn 8d9e25dbdd Fix TarSum iteration test
I noticed that 3 of the tarsum test cases had expected a tarsum with
a sha256 hash of
  e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
As I've been working with sha256 quite a bit lately, it struck me that
this is the initial digest value for sha256, which means that no data
was processed. However, these tests *do* process data. It turns out that
there was a bug in the test handling code which did not wait for tarsum
to end completely. This patch corrects these test cases.

I'm unaware of anywhere else in the code base where this would be an issue,
though we definitily need to look out in the future to ensure we are
completing tarsum reads (waiting for EOF).

Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)
2014-12-02 15:28:13 -08:00
James Turnbull 1e81a69618 Merge pull request #9460 from shin-/docs_webhooks2
Webhooks documentation: additional improvements
2014-12-02 17:42:26 -05:00
James Turnbull 6a98ce2fc0 Merge pull request #9273 from programmerq/dockerimages_hub
refer to the registry instead of the hub
2014-12-02 17:15:04 -05:00
Joffrey F bcef353557 Webhooks documentation: second pass addressing @fredlf's comments
Signed-off-by: Joffrey F <joffrey@docker.com>
2014-12-02 13:49:17 -08:00
Jessie Frazelle 906c7211e6 Merge pull request #9457 from icecrime/engine_logf
Remove unused Engine.Logf method
2014-12-02 12:17:11 -08:00
Arnaud Porterie 59da197de8 Remove unused Engine.Logf
The `Engine.Logf` method was unused and confusing.

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2014-12-02 10:47:57 -08:00
Alexander Morozov 50445e4d0c Merge pull request #9435 from cpuguy83/9414_fix_exec_api_error_no_cmd
Check for no `Cmd` on exec create endpoint
2014-12-02 10:28:44 -08:00
Michael Crosby e40bbf3b9a Merge pull request #9441 from LK4D4/retry_any_error_on_portmap
Try other port on any error from Map
2014-12-02 09:51:50 -08:00
Jeff Anderson 46437d1a60 Update dockerimages.md
remove 'public registry'

Signed-off-by: Jeff Anderson <jeff@docker.com>
2014-12-02 10:48:39 -07:00
Michael Crosby 5ec3a038a0 Merge pull request #9442 from icecrime/8658-tls_attach_hangs
Fix client-side HTTP hijacking over TLS
2014-12-02 09:47:29 -08:00
Erik Hollensbe fb06e1c6eb graphdb: initialize the database semi-idempotently on every connection.
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-12-02 03:02:25 -08:00
Lénaïc Huard c57317893a Rename overlayfs to overlay
Since Linux 3.18-rc6, overlayfs has been renamed overlay.

This change was introduced by the following commit in linux.git:
ef94b1864d1ed5be54376404bb23d22ed0481feb ovl: rename filesystem type to "overlay"

Signed-off-by: Lénaïc Huard <lhuard@amadeus.com>
2014-12-02 10:02:59 +01:00
Arnaud Porterie e98e56bb1e Fix client-side HTTP hijacking over TLS
Properly CloseWrite() the client socket once done with stdin when using
TLS connection (this used to rely on an erroneous type assertion).

Fixes #8658.
Fixes #8642.

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
Signed-off-by: Michael Crosby <crosby.michael@gmail.com>
2014-12-01 18:13:52 -08:00
Sven Dowideit b487d2f2ff Merge pull request #9330 from TomasTomecek/master
docs: man docker-images: inconsistent naming
2014-12-02 11:42:29 +10:00
James Turnbull b241571102 Merge pull request #9431 from sindhus/patch-4
Fix dead link build.md
2014-12-01 20:29:48 -05:00
Victor Vieux 65e75998af Merge pull request #9425 from HuKeping/master
inspect: format the output of docker inspect
2014-12-01 16:51:47 -08:00
Alexandr Morozov a00a1a1fca Try other port on any error from Map
Sometimes other programs can bind on ports from our range, so we just
skip this ports on allocation.

Fixes #9293
Probably fixes #8714

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2014-12-01 16:26:30 -08:00
Brian Goff c8a3d31332 Check for no Cmd on exec create endpoint
Fixes #9414

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2014-12-01 17:54:15 -05:00
Jessie Frazelle bdaf562b4c Merge pull request #9438 from crosbymichael/label-std-mounts
Label std mounts
2014-12-01 14:37:42 -08:00
Michael Crosby 92c840c87d Merge pull request #9439 from blakery/master
Cleanup: remove obsolete workaround
2014-12-01 13:14:47 -08:00
Michael Crosby 305e9cd2fa Label standard mounts within loop
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2014-12-01 14:54:14 -05:00
Michael Crosby 42522d29c7 Merge pull request #9407 from hqhq/hq_fix_comments
flag: fix the comments
2014-12-01 11:27:06 -08:00
Michael Crosby 2df1365819 Merge pull request #9424 from irachex/pprof_block
Attach goroutine blocking profiler
2014-12-01 11:13:05 -08:00
unclejack 8ddb42fbfd Merge pull request #9378 from LK4D4/change_breakout_detection
Change symlink breakout detection logic in archive package
2014-12-01 19:23:18 +02:00
Blake Geno 9200fdd197 remove obsolete workaround
Signed-off-by: Blake Geno <blakegeno@gmail.com>
2014-12-01 11:44:13 -05:00
Sindhu S 7754ef1f06 Fix dead link build.md 2014-12-01 19:35:58 +05:30
Sindhu S b1dc0db56a Fix dead link cli.md 2014-12-01 19:28:02 +05:30
Sindhu S ffda2035e5 Fix dead link in oracle.md 2014-12-01 19:07:04 +05:30
Huayi Zhang 51172493ab Attach goroutine blocking profiler
/debug/pprof/block is 404 currently

Signed-off-by: Huayi Zhang <irachex@gmail.com>
2014-12-01 16:46:59 +08:00
HuKeping 921346be48 inspect: format the output of docker inspect
Prior to this patch, one would get the output of docker inspect xxx
as below:

user@server:/mnt$ docker inspect ubuntu
[{
    "Architecture": "amd64",

    ...

    "VirtualSize": 199257566
}
]user@server:/mnt$

The last ']' was on the same line with the prompt, i wonder if it is
really what we want it be, it is a little weird, so i add a '\n' to it.

Signed-off-by: Hu Keping <hukeping@huawei.com>
2014-12-01 16:28:08 +08:00
James Turnbull 653be15f17 Merge pull request #9421 from nealmcb/9418-registry_api-source-link
Fixes #9418 Docker Registry now open source
2014-12-01 01:11:49 -05:00
Neal McBurnett 4bf72613fe Fixes #9418 Docker Registry now open source
Signed-off-by: Neal McBurnett <neal@mcburnett.org>
2014-11-30 21:12:57 -07:00
Sven Dowideit 595cd5279e Merge pull request #9194 from flavio/update_installation_docs
Update installation docs
2014-12-01 13:18:12 +10:00
Sven Dowideit 3fce883a95 Merge pull request #9322 from javawizard/patch-1
Correct inaccuracy in docker pull documentation
2014-12-01 12:53:33 +10:00
Flavio Castelli 47d8ec0a42 Cover openSUSE and SUSE Linux Enterprise on the same page
Updated the documentation to cover the installation of Docker on
openSUSE and on SUSE Linux Enterprise.

Docker-DCO-1.1-Signed-off-by: Flavio Castelli <fcastelli@suse.com> (github: flavio)
2014-12-01 01:23:38 +01:00
Alexander Boyd eb8e84c48a Correct inaccuracy in docker pull documentation
Signed-off-by: Alexander Boyd <alex@opengroove.org>
2014-11-29 23:36:19 -07:00
Qiang Huang 9cc73c62e6 flag: fix the comments
Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2014-11-30 01:58:16 +08:00
James Turnbull 353ff40181 Merge pull request #9332 from jacobat/patch-1
Update documentation for EXPOSE
2014-11-29 09:27:49 -05:00
Jacob Atzen 8432224f0e Update documentation for EXPOSE
The documentation for EXPOSE seems to indicate, that EXPOSE is only relevant in
the context of links, which is not the case.

Signed-off-by: Jacob Atzen <jatzen@gmail.com>
2014-11-29 15:18:18 +01:00
James Turnbull 0675d7bbba Merge pull request #9335 from jamtur01/typo
Removed extraneous )
2014-11-29 02:14:10 -05:00
James Turnbull 5336f44630 Merge pull request #9396 from a-ba/fix-docs-update
fixed regression in docs-update.py
2014-11-29 02:12:54 -05:00
James Turnbull 9aad1a7d10 Merge pull request #9321 from shin-/docs_webhooks2
Expanded documentation for Webhooks 2.0
2014-11-29 02:11:38 -05:00
Jessie Frazelle 19844140d3 Merge pull request #9400 from emilymaier/9389-fix
Fixes race condition in test. Closes #9389.
2014-11-28 21:02:52 -07:00
Fred Lifton 2c97cc3995 Merge pull request #9227 from SvenDowideit/add-client-ip-to-hosts
Add an example of how to add your client IP to the container hosts file
2014-11-28 17:44:11 -08:00
Fred Lifton 11069f257f Merge pull request #9337 from shishir-a412ed/deprecated-images-t-v
Removing description for 'docker images' -t and -v flags, since they are deprecated.
2014-11-28 17:35:36 -08:00
Fred Lifton 6a4d4fb2f5 Merge pull request #9347 from SvenDowideit/extract-systemd-docs
Extract the systemd docs from various places and add a little more
2014-11-28 17:12:00 -08:00
Emily Maier 9c5e61c24c Fixes race condition in test. Closes #9389.
Signed-off-by: Emily Maier <emily@emilymaier.net>
2014-11-28 13:48:50 -05:00
Alexandr Morozov be5bfbe221 Change path breakout detection logic in archive package
Fixes #9375

Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-11-28 09:44:47 -08:00
Anthony Baire 9f8c14026c fixed regression in docs-update.py
17500eb renamed 'help' as 'help_string', but there was a miss


Signed-off-by: Anthony Baire <Anthony.Baire@irisa.fr>
2014-11-28 13:36:27 +01:00
Tomas Tomecek 095027944f docs: man docker-images: inconsistent naming
Synopsis is mentioning "NAME" while description is describing "REPOSITORY".

Signed-off-by: Tomas Tomecek <ttomecek@redhat.com>
2014-11-28 08:57:07 +01:00
James Turnbull 4083fa2620 Merge pull request #9285 from therealprologic/update-crux-docs
Updated installation docs for CRUX as a Docker Host.
2014-11-27 02:36:05 -05:00
Sven Dowideit 54050083d1 Add an example of how to add your client IP to the container hosts file
Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>

Docker-DCO-1.1-Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au> (github: SvenDowideit)
2014-11-27 16:36:55 +10:00
James Turnbull 07e9ea86ca Merge pull request #9329 from acbodine/9296-dockervolume-doc-mount-behaviour-fix
Closes #9296 adds a more detailed note about the mount behavior with -v ...
2014-11-27 00:22:19 -05:00
James Turnbull d3707a9411 Merge pull request #9359 from bfirsh/update-note-format-in-docs-style-guide
Update format of notes in docs style guide
2014-11-26 22:39:31 -05:00
James Turnbull 9e56c614a1 Merge pull request #9368 from msteinert/builder-md-typo
Fix a small typo
2014-11-26 22:39:19 -05:00
Sven Dowideit ff327f9d57 Merge pull request #9282 from SvenDowideit/explain-VIRTUAL-SIZE
Explain what the VIRTUAL SIZE means
2014-11-27 12:19:09 +10:00
Sven Dowideit 498f208ade Explain what the VIRTUAL SIZE means
Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>

Docker-DCO-1.1-Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au> (github: SvenDowideit)
2014-11-27 12:06:40 +10:00
Fred Lifton ec07bb48fc Merge pull request #9275 from jfriedly/userguide-typos
Fix typos in the user guide main page
2014-11-26 17:03:59 -08:00
Sven Dowideit d53b586ff1 Extract the systemd docs from various places and add a little more
Signed-off-by: Sven Dowideit <SvenDowideit@docker.com>
2014-11-27 10:17:46 +10:00
Alexander Morozov 9974fce28a Merge pull request #9366 from yoheiueda/increase-memory-limit
Increase memory limit in integration-cli test cases
2014-11-26 12:09:39 -08:00
Jessie Frazelle 6d171c5340 Merge pull request #9367 from jfrazelle/no-windows-for-you-yet
Windows should not be in "official release" yet
2014-11-26 11:59:21 -08:00
Jessica Frazelle 750dc335a9 Windows should not be officially released.
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-11-26 11:50:07 -08:00
Vincent Batts b47ff77b5c Merge pull request #9006 from snitm/thin-pool-improvements
Thin pool improvements
2014-11-26 14:44:09 -05:00
Michael Steinert 8b881df9b1 Fix a small typo
Signed-off-by: Michael Steinert <mike.steinert@gmail.com>
2014-11-26 13:09:44 -06:00
Yohei Ueda 64fd3e89c7 Increase memory limit in test cases
Signed-off-by: Yohei Ueda <yohei@jp.ibm.com>
2014-11-27 03:22:16 +09:00
Ben Firshman 12bc51603b Update format of notes in docs style guide
It seems like all of the notes in the docs are this format.

Signed-off-by: Ben Firshman <ben@firshman.co.uk>
2014-11-26 15:15:10 +00:00
Michael Crosby 75b47467aa Merge pull request #9346 from jfrazelle/fix-events-test
fix tests where cmd function does not exist
2014-11-25 18:53:08 -08:00
Jessica Frazelle 8635b0248a fix where cmd function dne
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-11-25 18:34:08 -08:00
Jessie Frazelle 00c2a8f323 Merge pull request #9208 from duglin/Issue8703
Add support for docker exec to return cmd exitStatus
2014-11-25 18:03:51 -08:00
Jessie Frazelle 9160e01cef Merge pull request #8893 from vieux/filter_events
Events filtering (daemon side)
2014-11-25 17:52:27 -08:00
Doug Davis 90928eb114 Add support for docker exec to return cmd exitStatus
Note - only support the non-detached mode of exec right now.
Another PR will add -d support.

Closes #8703

Signed-off-by: Doug Davis <dug@us.ibm.com>
2014-11-25 17:49:25 -08:00
Michael Crosby 6a0177ed2e Merge pull request #8767 from erikh/update_parents_hosts_part2
Links test cleanup
2014-11-25 17:17:35 -08:00
Vincent Batts 79064a2820 Merge pull request #9279 from yoheiueda/termios-via-cgo
Use termios via CGO
2014-11-25 20:04:26 -05:00
Erik Hollensbe 68bc8de111 Test for updating hosts files via links.
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-11-25 16:48:36 -08:00
Erik Hollensbe 20575d20ba Break some routines out of the mutable files test for future use
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-11-25 16:46:09 -08:00
Michael Crosby 1eb5e5d25f Merge pull request #9030 from cpuguy83/cleanup_host_parser
Cleanup ParseHost
2014-11-25 16:15:48 -08:00
Victor Vieux f0f0e316aa fix tests
Signed-off-by: Victor Vieux <vieux@docker.com>
2014-11-26 00:00:56 +00:00
Brian Goff bd4fe9b986 Cleanup ParseHost
Current implementation is comingling things that ought not be together.
There are _some_ similarities between parsing for the different proto
types, but they are more different than alike, making the code extremely
difficult to reason about.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2014-11-25 18:55:40 -05:00
unclejack 1dadc51adc Merge pull request #9342 from unclejack/add_tarsum_maintainers
pkg/tarsum: add maintainers & add missing s
2014-11-26 01:45:51 +02:00
unclejack 3db5ea1617 pkg/tarsum: add maintainers & add missing s
Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com>
2014-11-26 00:44:16 +02:00
Michael Crosby 93be7c0e52 Merge pull request #9262 from rhatdan/debug
Allow developers to build docker with debuginfo included
2014-11-25 14:21:00 -08:00
Joffrey F c83cd5c7ac Expanded documentation for Webhooks 2.0 (chains and callbacks information)
Signed-off-by: Joffrey Fuhrer <joffrey@gmail.com>
2014-11-25 22:22:04 +01:00
Dan Walsh 61b2766e75 Label content created for containers with the private label
Currently this content gets a system label and is not writable based on
SELinux controls.  This patch will set the labels to the correct label.

Docker-DCO-1.1-Signed-off-by: Dan Walsh <dwalsh@redhat.com> (github: rhatdan)
2014-11-25 14:12:26 -05:00
Shishir Mahajan b4b9624447 Removing description for 'docker images' -t and -v flags, since they are deprecated
Signed-off-by: Shishir Mahajan <shishir.mahajan@redhat.com>
2014-11-25 14:11:13 -05:00
Dan Walsh 61586414ca Merge branch 'master' of github.com:docker/docker into debug
Docker-DCO-1.1-Signed-off-by: Dan Walsh <dwalsh@redhat.com> (github: rhatdan)
2014-11-25 14:09:19 -05:00
Jessie Frazelle 7ebcdad030 Merge pull request #9238 from albers/bash-completion
Add missing options to bash completion for the run and create commands
2014-11-25 09:27:31 -08:00
James Turnbull ec8c53228a Removed extraneous )
Docker-DCO-1.1-Signed-off-by: James Turnbull <james@lovedthanlost.net> (github: jamtur01)
2014-11-25 10:38:16 -05:00
Yohei Ueda dfcf05a5d0 Use termios via CGO only on Linux
Signed-off-by: Yohei Ueda <yohei@jp.ibm.com>
2014-11-25 20:49:01 +09:00
Harald Albers eac9f2e5c4 Minor bash completion cleanup
The -n and --networking options were removed because they are
unsupported. 
Bash completion should not reveal the existence of otherwise
undocumented unsupported options.

Signed-off-by: Harald Albers <github@albersweb.de>
2014-11-25 08:53:13 +01:00
Harald Albers 2e863e8a38 Add missing options to bash completion for the run and create commands
Signed-off-by: Harald Albers <github@albersweb.de>
2014-11-25 08:53:12 +01:00
Andrew C. Bodine efb8e8a345 Closes #9296 adds a more detailed note about the mount behavior with -v flag
Signed-off-by: Andrew C. Bodine <acbodine@us.ibm.com>
2014-11-24 23:41:49 -08:00
Vincent Batts 7f84174109 tarsum: updates for jamtur01 comments
Signed-off-by: Vincent Batts <vbatts@redhat.com>
2014-11-24 23:18:48 -05:00
Vincent Batts 3d6e63e0c4 pkg/tarsum: review cleanup
Signed-off-by: Vincent Batts <vbatts@redhat.com>
2014-11-24 23:18:48 -05:00
Vincent Batts 3e08fb5ad2 pkg/tarsum: review amendments
(separate commit to preserve github conversation)

Signed-off-by: Vincent Batts <vbatts@redhat.com>
2014-11-24 23:18:48 -05:00
Vincent Batts f30fee69b1 pkg/tarsum: specification on TarSum checksum
Signed-off-by: Vincent Batts <vbatts@redhat.com>
2014-11-24 23:18:47 -05:00
Jessie Frazelle 27127437a6 Merge pull request #9224 from tianon/custom-debootstrap
Allow for custom debootstrap wrappers like qemu-debootstrap in contrib/mkimage/debootstrap
2014-11-24 18:11:59 -08:00
Mike Snitzer b9f1b0a751 devmapper: cleanup some extraneous branching in setupBaseImage()
Docker-DCO-1.1-Signed-off-by: Mike Snitzer <snitzer@redhat.com> (github: snitm)
2014-11-24 20:06:41 -05:00
Tibor Vass 498985a039 Merge pull request #9325 from unclejack/add_1.3.2_relnotes
docs: Add 1.3.2 release notes
2014-11-24 20:06:34 -05:00
Tibor Vass 4dd3368b51 docs: Add 1.3.2 release notes
Signed-off-by: Tibor Vass <teabee89@gmail.com>
2014-11-25 03:02:27 +02:00
Tibor Vass e6ec703df3 Merge pull request #9323 from unclejack/merge_release_v1.3.2
Merge release v1.3.2 to master
2014-11-24 19:26:36 -05:00
Jessie Frazelle 2ad98b0cfa Merge pull request #9324 from crosbymichael/git-urls
Move IsGIT and IsURL to urlutil package
2014-11-24 16:07:42 -08:00
Tibor Vass b21e1d4a00 Add v1.3.2 changelog & bump version to 1.3.2-dev
Signed-off-by: Tibor Vass <teabee89@gmail.com>
Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com>
2014-11-25 02:07:01 +02:00
unclejack 2ec2237909 graph/load: add build tags to fix make cross
Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com>
2014-11-25 02:06:45 +02:00
Michael Crosby 5794b5373e Update code for use of urlutil pkg
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2014-11-24 18:47:42 -05:00
Michael Crosby fc66a22df6 Merge pull request #9173 from vbatts/vbatts-dm_clarify_TaskCreate
pkg/devicemapper: clarify TaskCreate and createTask
2014-11-24 15:45:54 -08:00
Victor Vieux 4996d46a36 Merge pull request #9289 from duglin/mflagSetTest
Add missing unit testcase for new IsSet() func in mflag
2014-11-24 15:26:25 -08:00
Michael Crosby feca1b1780 Move git and url checks into pkg
This moves the IsGIT and IsURL functions out of the generic `utils`
package and into their own `urlutil` pkg.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2014-11-24 18:10:37 -05:00
Tibor Vass f6d9780229 archive: do not call FollowSymlinkInScope in createTarFile
Signed-off-by: Tibor Vass <teabee89@gmail.com>
2014-11-25 01:03:41 +02:00
unclejack 330171e1d9 pkg/chrootarchive: provide TMPDIR for ApplyLayer
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-11-25 01:03:41 +02:00
Tibor Vass 31d1d73303 archive: prevent breakout in ApplyLayer
Signed-off-by: Tibor Vass <teabee89@gmail.com>
2014-11-25 01:03:41 +02:00
Tibor Vass 1852cc3841 archive: prevent breakout in Untar
Signed-off-by: Tibor Vass <teabee89@gmail.com>
2014-11-25 01:03:41 +02:00
Tibor Vass 221617dbcd archive: add breakout tests
Signed-off-by: Tibor Vass <teabee89@gmail.com>

Conflicts:
	pkg/archive/archive.go
		fixed conflict which git couldn't fix with the added BreakoutError

Conflicts:
	pkg/archive/archive_test.go
		fixed conflict in imports
2014-11-25 01:03:41 +02:00
unclejack 209deff963 don't call reexec.Init from chrootarchive
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)

Conflicts:
	daemon/graphdriver/aufs/aufs_test.go
		fixed conflict caused by imports
2014-11-25 01:03:40 +02:00
Tibor Vass 9c01bc249d pkg/chrootarchive: pass TarOptions via CLI arg
Signed-off-by: Tibor Vass <teabee89@gmail.com>

Conflicts:
	graph/load.go
		fixed conflict in imports
2014-11-25 01:03:40 +02:00
unclejack 1cb17f03d0 add pkg/chrootarchive and use it on the daemon
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)

Conflicts:
	builder/internals.go
	daemon/graphdriver/aufs/aufs.go
	daemon/volumes.go
		fixed conflicts in imports
2014-11-25 01:03:40 +02:00
Michael Crosby fa1484d12c Add AppArmorProfile to container inspect json
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2014-11-25 01:03:40 +02:00
Michael Crosby 294843ef23 Move security opts to HostConfig
These settings need to be in the HostConfig so that they are not
committed to an image and cannot introduce a security issue.

We can safely move this field from the Config to the HostConfig
without any regressions because these settings are consumed at container
created and used to populate fields on the Container struct.  Because of
this, existing settings will be honored for containers already created
on a daemon with custom security settings and prevent values being
consumed via an Image.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>

Conflicts:
	daemon/create.go
		changing config to hostConfig was required to fix the
		 build
2014-11-25 01:02:30 +02:00
Michael Crosby df7c22dd23 Merge pull request #9162 from aidanhs/patch-1
Allow git@ urls for more than just github
2014-11-24 14:51:52 -08:00
unclejack faab87cc36 pkg/symlink: avoid following out of scope
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-11-25 00:27:05 +02:00
Tibor Vass 6f514d28c0 Merge pull request #9316 from tiborvass/bump_v1.3.2
Bump v1.3.2
2014-11-24 16:49:28 -05:00
Jessie Frazelle 39284be960 Merge pull request #9263 from cpuguy83/docs_cleanup_exec_api
Cleanup exec API docs and available params
2014-11-24 13:35:45 -08:00
Aidan Hobson Sayers c7e4cc4a53 Allow git@ prefixes for any hosted git service
Signed-off-by: Aidan Hobson Sayers <aidanhs@cantab.net>
2014-11-24 20:49:54 +00:00
Tianon Gravi 748fe7a0fa Merge pull request #9291 from vincentbernat/fix/zsh-completion-update-2
zsh: correctly parse available subcommands (completion)
2014-11-24 13:36:58 -07:00
Michael Crosby b4757445ae Merge pull request #9301 from krivenok/master
Fixed typo in documentation.
2014-11-24 12:27:56 -08:00
Michael Crosby 5e19ecf25c Merge pull request #9281 from unclejack/build_pull_flag
build: add pull flag to force image pulling
2014-11-24 12:10:45 -08:00
Jessie Frazelle fefaf6a73d Merge pull request #9290 from vaijab/registry-address
registry: fix ServerAddress setting
2014-11-24 12:02:12 -08:00
Jessie Frazelle 66266a0ed9 Merge pull request #9312 from daehyeok/deprecated_cmd
remove deprecated cmd function in integration-cli
2014-11-24 11:58:13 -08:00
Michael Crosby cbc401ccfa Merge pull request #9303 from rmetzler/patch-1
Empty Line should fix Markdown unordered list
2014-11-24 11:55:21 -08:00
Vincent Batts e07daa58d9 contrib: fix the docker-device-tool
Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2014-11-24 13:49:09 -05:00
Vaidas Jablonskis d96832cbd2 registry: fix ServerAddress setting
This ensures that ServerAddress is set, while previously it was getting
set after configFile.Configs.

Signed-off-by: Vaidas Jablonskis <jablonskis@gmail.com>
2014-11-24 18:26:41 +00:00
Dmitry V. Krivenok 5deedef42c Made wording a bit more generic. 2014-11-24 21:22:54 +03:00
Tibor Vass 39fa2faad2 Bump to version v1.3.2
Signed-off-by: Tibor Vass <teabee89@gmail.com>
2014-11-24 12:38:01 -05:00
Tibor Vass 324953d74a docs: Add 1.3.2 release notes
Signed-off-by: Tibor Vass <teabee89@gmail.com>
2014-11-24 12:38:01 -05:00
Tibor Vass b256616589 archive: do not call FollowSymlinkInScope in createTarFile
Signed-off-by: Tibor Vass <teabee89@gmail.com>
2014-11-24 11:51:37 -05:00
unclejack 409f65bfd1 pkg/chrootarchive: provide TMPDIR for ApplyLayer
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-11-24 11:51:37 -05:00
Daehyeok Mun 7fbbd515b1 remove deprecated cmd function in integration-cli
Remove deprecated cmd function in integration-cli
and change cmd to dockerCmd in all test files

Signed-off-by: Daehyeok Mun <daehyeok@gmail.com>
2014-11-25 00:32:38 +09:00
Richard Metzler 91a8b916b0 Empty Line should fix Markdown unordered list
Without the line break the list would render as one single paragraph.
2014-11-23 23:57:43 +01:00
Dmitry V. Krivenok 745e3f77a1 Fixed typo in documentation. 2014-11-23 22:59:35 +03:00
Vincent Bernat 34fe2a3725 zsh: correctly parse available subcommands
A lot of flags have been added on the output of `docker help`. Use a
more robust method to extract the list of available subcommands by
spotting the `Command:` line and the next blank line.

Signed-off-by: Vincent Bernat <vincent@bernat.im>
2014-11-23 00:45:14 +01:00
Doug Davis 88afbc4d94 Add missing unit testcase for new IsSet() func in mflag
Forgot to add this when I did PR #9259

Signed-off-by: Doug Davis <dug@us.ibm.com>
2014-11-22 05:37:36 -08:00
James Mills 30979ad5a0 Updated installation docs for CRUX as a Docker Host.
Docker-DCO-1.1-Signed-off-by: James Mills <prologic@shortcircuit.net.au> (github: therealprologic)
2014-11-22 17:18:11 +10:00
Jessie Frazelle c59b308b6b Merge pull request #9223 from vbatts/vbatts-overlay_notfound
overlayfs: more helpful output when not supported
2014-11-21 19:58:01 -08:00
Mike Snitzer 553b50bd37 devmapper: remove unnecessary else branch in getPoolName()
Docker-DCO-1.1-Signed-off-by: Mike Snitzer <snitzer@redhat.com> (github: snitm)
2014-11-21 21:36:23 -05:00
Brian Goff d4ba00bd42 Cleanup exec API docs and available params
Adds pertitent information about what is expected in the json payload
and comments out unsupported (exec) features in runConfig.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2014-11-21 21:11:07 -05:00
Jessie Frazelle d7626e97b6 Merge pull request #9188 from somaopensource/8777-fix
Fix for #8777 (continuing PR #9061)
2014-11-21 17:57:56 -08:00
Vincent Batts acdf766069 pkg/devicemapper: clarify TaskCreate and createTask
* Rename and expose createTask() to TaskCreateNamed()
* add comments

Signed-off-by: Vincent Batts <vbatts@redhat.com>
2014-11-21 20:54:50 -05:00
Michael Crosby fb1540199e Merge pull request #9183 from vbatts/dm_udevwait
devmapper: Call UdevWait() even in failure path
2014-11-21 17:28:37 -08:00
Vincent Batts 104d27a07b Merge pull request #9267 from crosbymichael/devmapper-mknod
Mknod more loopbacks for devmapper
2014-11-21 20:23:43 -05:00
Michael Crosby e820365b67 Merge pull request #9086 from vbatts/vbatts-tarsum_more_tests
pkg/tarsum: adding more tests
2014-11-21 17:12:55 -08:00
Michael Crosby 496db275d5 Merge pull request #9185 from djmaze/patch-1
Fix link to MAINTAINERS.md in CONTRIBUTING.md
2014-11-21 16:40:27 -08:00
Michael Crosby f8509e7940 Mknod more loopbacks for devmapper
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2014-11-21 16:20:35 -08:00
Martin Honermeyer 20218f3971 Fix link to MAINTAINERS.md in CONTRIBUTING.md
Signed-off-by: Martin Honermeyer <maze@strahlungsfrei.de>
2014-11-22 01:18:40 +01:00
unclejack 07b7bdb4fc Merge pull request #9270 from jfrazelle/8919-tag-output
Output image with tag name when image is not found
2014-11-22 01:56:31 +02:00
Michael Crosby c78bf8d86a Merge pull request #9265 from vieux/daemon_labels
add daemon labels (displayed in docker info)
2014-11-21 15:14:27 -08:00
Tibor Vass 17ba356e9a Merge pull request #9158 from tianon/minor-makefile-preamble-reorg
Add some minor reorganization to the Makefile preamble
2014-11-21 18:02:11 -05:00
Tianon Gravi 82f33d86a7 Add some minor reorganization to the Makefile preamble
The gist here is a reemphasizing of the explicitly "user mutable" bits by putting them first (and hopefully improving readability a little bit in the process).

Signed-off-by: Andrew Page <admwiggin@gmail.com>
2014-11-21 15:49:09 -07:00
Sven Dowideit 44159f38d2 Merge pull request #9209 from SvenDowideit/shared-disk-space-images
If an image has more than one repo name or tag, it'll be listed more tha...
2014-11-21 14:07:45 -08:00
Vincent Batts a43ee077dc Merge pull request #9149 from swagiaal/fix-configureBridge-comment
Remove reference to 'ifaceName' from configureBridge comment.
2014-11-21 16:37:28 -05:00
Vincent Batts a5277764ae Merge pull request #9009 from a-ba/fix-export-repo
fix missing layers when exporting a full repository
2014-11-21 15:44:27 -05:00
Victor Vieux 62a7d75512 key=values -> key=value
Signed-off-by: Victor Vieux <vieux@docker.com>
2014-11-21 19:15:22 +00:00
unclejack 054e57a622 build: add pull flag to force image pulling
Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com>
2014-11-21 19:59:44 +02:00
Alexander Morozov 0f2de5158f Merge pull request #9261 from unclejack/fix_test_tmp_cleanup
fix cleanup of /tmp in tests
2014-11-21 08:48:04 -08:00
Arnaud Porterie ce8ebaf0e0 Merge pull request #9225 from icecrime/win_make_binary
Adapt project/make.sh for Windows builds
2014-11-21 08:37:19 -08:00
unclejack 4180579313 graphdriver/aufs: fix tmp cleanup in tests
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-11-21 18:31:45 +02:00
Yohei Ueda 244af451e9 Use termios via CGO
Signed-off-by: Yohei Ueda <yohei@jp.ibm.com>
2014-11-21 22:12:03 +09:00
Joel Friedly 2d2b3535ca Fix typos in the user guide main page
Signed-off-by: Joel Friedly <joelfriedly@gmail.com>
2014-11-21 03:17:00 +00:00
Alexander Morozov e3f3259e00 Merge pull request #9271 from jfrazelle/iptables-errors
Typed errors for iptables chain raw command output. YAYYYYYY.
2014-11-20 19:03:38 -08:00
Jessica Frazelle f6c7194539 Apply same typed iptables errors to network driver.
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-11-20 18:07:15 -08:00
Jessica Frazelle 6cc75574b3 Typed errors for iptables chain raw command output. YAYYYYYY.
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-11-20 18:07:11 -08:00
Michael Crosby 532e502e9c Merge pull request #9259 from duglin/Issue9221
Make --tlsverify enable tls regardless of value specified
2014-11-20 17:41:31 -08:00
Michael Crosby 5d67a3faea Merge pull request #9248 from vbatts/vbatts-fix_gh9241
pkg/tarsum: actually init the TarSum struct
2014-11-20 17:15:15 -08:00
Jeff Anderson 7b20c1fd18 refer to the registry instead of the hub
Signed-off-by: Jeff Anderson <jeff@docker.com>
2014-11-20 16:54:46 -08:00
unclejack 5cde77d003 Merge pull request #9269 from crosbymichael/update-libcontainer-nov20
Update libcontainer to 84c1636580a356db88b079d118b94abe6a1a0acd
2014-11-21 02:50:04 +02:00
Doug Davis ae9bd580af Make --tlsverify enable tls regardless of value specified
I also needed to add a mflag.IsSet() function that allows you to check
to see if a certain flag was actually specified on the cmd line.

Per #9221 - also tweaked the docs to fix a typo.

Closes #9221

Signed-off-by: Doug Davis <dug@us.ibm.com>
2014-11-20 16:09:06 -08:00
Fred Lifton 29f4ea2cd5 Merge pull request #9220 from SvenDowideit/add-apache-foreground-eg
Add an example that shows starting apache in the foreground
2014-11-20 16:02:38 -08:00
Michael Crosby c1a40d9279 Merge pull request #9228 from SvenDowideit/update-tlsverify-doc
tlsverify flag has no dash
2014-11-20 15:19:31 -08:00
Jessica Frazelle e527be1f14 Fix tag output where image is not found.
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-11-20 15:09:09 -08:00
Lei Jitang 7a7890950d Fix create container output messages.
Signed-off-by: Lei Jitang <leijitang@huawei.com>
Signed-off-by: Jessica Frazelle <jess@docker.com>
2014-11-20 15:03:27 -08:00
Michael Crosby 56c3753631 Revert "Support hairpin NAT"
This reverts commit 95a400e6e1.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2014-11-20 14:22:32 -08:00
Sven Dowideit 8d3b13bd7a Add an example that shows starting apache in the foreground
Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>
2014-11-20 14:21:05 -08:00
Michael Crosby 4acdb7ddc7 Merge pull request #9260 from LK4D4/increase_proxy_timeout
Increase timeout for userland proxy starting
2014-11-20 14:20:31 -08:00
Michael Crosby f42176434a Update libcontainer to 84c1636580a356db88b079d118b
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2014-11-20 14:19:24 -08:00
Michael Crosby 9a917e732c Merge pull request #9174 from dqminh/docker-exec-env
Set correct env variables for `docker exec` commands
2014-11-20 13:31:51 -08:00
Michael Crosby 58b6f31a7a Merge pull request #8251 from duglin/Issue2333
Add support for ENV of the form: ENV name=value ...
2014-11-20 13:12:24 -08:00
Victor Vieux 284cbda9ce docs nits
Signed-off-by: Victor Vieux <vieux@docker.com>
2014-11-20 19:54:03 +00:00
Victor Vieux 7ff3b81054 events filtering
Signed-off-by: Victor Vieux <vieux@docker.com>
2014-11-20 19:46:48 +00:00
Victor Vieux 2fe36baa0a add daemon labels
Signed-off-by: Victor Vieux <vieux@docker.com>
2014-11-20 19:23:58 +00:00
Tibor Vass 998b591a71 Merge pull request #9201 from vieux/add_hostname_docker_info
Add hostname and ID docker info
2014-11-20 13:11:16 -05:00
Daniel, Dao Quang Minh 2bceaae423 test case for preserving env in exec session
Docker-DCO-1.1-Signed-off-by: Daniel, Dao Quang Minh <dqminh89@gmail.com> (github: dqminh)
2014-11-20 13:05:37 -05:00
Dan Walsh bce9ed0e4c Allow developers to build docker with debuginfo included
If you execute

DEBUG=-g hack/make.sh dynbinary

Docker will be build with the debug info making it easier to use
cgdb or lightide to debug.

Docker-DCO-1.1-Signed-off-by: Dan Walsh <dwalsh@redhat.com> (github: rhatdan)
2014-11-20 12:59:50 -05:00
Doug Davis 1314e1586f Add support for ENV of the form: ENV name=value ...
still supports the old form: ENV name value

Also, fixed an issue with the parser where it would ignore lines
at the end of the Dockerfile that ended with \

Closes #2333

Signed-off-by: Doug Davis <dug@us.ibm.com>
2014-11-20 09:54:28 -08:00
Victor Vieux 8ef36dcfe7 update docs
Signed-off-by: Victor Vieux <vieux@docker.com>
2014-11-20 17:40:08 +00:00
Victor Vieux 227f4bbdb3 Hostname -> Name
Signed-off-by: Victor Vieux <vieux@docker.com>
2014-11-20 17:40:08 +00:00
Victor Vieux 6e92dfdfd8 Update libtrust version
Signed-off-by: Victor Vieux <vieux@docker.com>
2014-11-20 17:39:54 +00:00
unclejack db7fded17f integ-cli: fix cleanup in build tests
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-11-20 19:38:41 +02:00
unclejack 98307c8fae integ-cli: fix cleanup in test which mounts tmpfs
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-11-20 19:37:46 +02:00
unclejack 4508bd94b0 pkg/symlink: fix cleanup for tests
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-11-20 19:36:54 +02:00
unclejack 32ba6ab83c pkg/archive: fix TempArchive cleanup w/ one read
This fixes the removal of TempArchives which can read with only one
read. Such archives weren't getting removed because EOF wasn't being
triggered.

Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-11-20 19:34:35 +02:00
unclejack 769b79866a pkg/system: fix cleanup in tests
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-11-20 19:33:15 +02:00
Alexandr Morozov 72c55e8215 Increase timeout for userland proxy starting
Fixes #8883

Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-11-20 09:02:42 -08:00
Oh Jinkyun 4deac03c65 Fix for #8777
Now filter name is trimmed and lowercased before evaluation for case
insensitive and whitespace trimemd check.

Signed-off-by: Oh Jinkyun <tintypemolly@gmail.com>
2014-11-20 13:36:46 +09:00
Michael Crosby 739d917d70 Merge pull request #9226 from crosbymichael/container-net-test
Add test for --net container:<id>
2014-11-19 17:57:45 -08:00
Michael Crosby d4ca9e5cce Merge pull request #9211 from mtesselH/login
Fixed a bug - no panic anymore when logining in without TTY
2014-11-19 17:52:35 -08:00
Michael Crosby 71209f7579 Add test for --net container:<id>
This adds an integration test for checking that the network namespace
fds are the same when a container joins another container's network
namespace.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2014-11-19 17:43:04 -08:00
Michael Crosby adc344dfde Merge pull request #9180 from chenchun/master
Clean config path of bind mount volume
2014-11-19 17:41:46 -08:00
Vincent Batts cb57c38848 overlayfs: add --storage-driver doc
Signed-off-by: Vincent Batts <vbatts@redhat.com>
2014-11-19 19:36:05 -05:00
Sven Dowideit 3e5cb0c84f Merge pull request #9191 from duglin/Issue8775
Be clearer in docs about COPY/ADD dirs
2014-11-19 15:26:20 -08:00
Jessie Frazelle eb3bbde6d1 Merge pull request #9251 from tonistiigi/use-format-logging-functions
Fix misuses of format based logging functions
2014-11-19 15:25:42 -08:00
Sven Dowideit c7e6ad8e98 Merge pull request #9144 from miminar/sigproxy_tty
Corrected description of --sig-proxy
2014-11-19 14:52:01 -08:00
Alexander Morozov bca63b4f48 Merge pull request #9249 from tonistiigi/integration-cli-cleanup
Make sure integration-cli tests clean up
2014-11-19 14:27:13 -08:00
Tonis Tiigi 6705477673 Fix misuses of format based logging functions
Signed-off-by: Tõnis Tiigi <tonistiigi@gmail.com> (github: tonistiigi)
2014-11-19 23:59:02 +02:00
Tonis Tiigi bbb245defe Fix deleteImages() helper for multiple names
Pass every image name as separate argument.

Signed-off-by: Tõnis Tiigi <tonistiigi@gmail.com> (github: tonistiigi)
2014-11-19 23:42:16 +02:00
Arnaud Porterie ce86d5ae68 Adapt project/make.sh for Windows builds
Fixes:
- link -H windows is not compatible with -linkmode external
- under Cygwin go does not play well with cygdrive type paths

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2014-11-19 13:41:57 -08:00
Tonis Tiigi da3d3b97eb Make sure integration-cli test clean up
Common patterns:
- Multiple images were built with same name but only one cleanup.
- Containers were deleted after images.
- Images not removed after retagging.

Signed-off-by: Tõnis Tiigi <tonistiigi@gmail.com> (github: tonistiigi)
2014-11-19 23:41:46 +02:00
Josh Hawn e257863a9a Add unit test for tarSum.Sum() with no data
Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)
2014-11-19 15:55:21 -05:00
Vincent Batts 6a74f071af pkg/tarsum: actually init the TarSum struct
closes #9241

Signed-off-by: Vincent Batts <vbatts@redhat.com>
2014-11-19 15:46:03 -05:00
Michal Minar 1cd12efb5d Updated sig-proxy text also in zsh completion script
Signed-off-by: Michal Minar <miminar@redhat.com>
2014-11-19 09:09:42 +01:00
Vincent Batts 3287ca1e45 overlayfs: more helpful output when not supported
based on https://github.com/docker/docker/pull/7619#discussion_r20385086

Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2014-11-18 22:53:04 -05:00
Sven Dowideit c8926bb579 Merge pull request #9203 from somaopensource/fix_link
fix link to PACKAGERS.md
2014-11-18 18:23:33 -08:00
Chun Chen f4acfeebda Clean config path of bind mount volume
Signed-off-by: Chun Chen <chenchun.feed@gmail.com>
2014-11-19 10:13:10 +08:00
Sven Dowideit 57b6993c2c If an image has more than one repo name or tag, it'll be listed more than once
Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>
2014-11-18 18:06:22 -08:00
Sven Dowideit a0fb8eca30 tlsverify flag has no dash
Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>
2014-11-18 17:42:33 -08:00
James Turnbull af54dc215f Merge pull request #9219 from acbodine/cleanup-remote-api-docs-start
Cleanup: fixes start response status code typo in examples
2014-11-18 20:25:36 -05:00
Michael Crosby 1bac8f5322 Merge pull request #9039 from ashahab-altiscale/8617-lxc-volume
Have lxc create mount points if they don't exist
2014-11-18 17:24:16 -08:00
Victor Vieux f676891192 Merge pull request #8905 from 13W/x-registry-auth
allow to use x-registry-auth header with enabled cors
2014-11-18 17:21:22 -08:00
Michael Crosby 0722c9b536 Merge pull request #9187 from icecrime/update_authors_file
Update AUTHORS file
2014-11-18 16:31:07 -08:00
Tianon Gravi e393ca672e Merge pull request #9218 from tianon/check-overlayfs
Add CONFIG_OVERLAYFS_FS to check-config.sh
2014-11-18 16:56:56 -07:00
Michael Crosby ca4be114e9 Merge pull request #9216 from jfrazelle/typo-steam
Fix steam where it should be stream.
2014-11-18 15:29:33 -08:00
Jessie Frazelle 9854b0aa40 Merge pull request #8150 from dqminh/pull-output-non-terminal
Pull: print some data instead of newlines when output is not a terminal
2014-11-18 16:20:42 -07:00
Tianon Gravi 33e0de15d7 Allow for custom debootstrap wrappers like qemu-debootstrap in contrib/mkimage/debootstrap
Signed-off-by: Andrew Page <admwiggin@gmail.com>
2014-11-18 15:13:35 -07:00
Andrew C. Bodine f9cdad3272 Cleanup: fixes start response status code typo in examples
Signed-off-by: Andrew C. Bodine <acbodine@us.ibm.com>
2014-11-18 11:32:51 -08:00
Tianon Gravi 54a6e6d122 Add CONFIG_OVERLAYFS_FS to check-config.sh
Also, added some slight adjustment to the AUFS_FS output/note to make it more clear what it applies to.

Example output:
```console
$ ./contrib/check-config.sh
info: reading kernel config from /proc/config.gz ...

Generally Necessary:
- cgroup hierarchy: properly mounted [/sys/fs/cgroup]
- CONFIG_NAMESPACES: enabled
- CONFIG_NET_NS: enabled
- CONFIG_PID_NS: enabled
- CONFIG_IPC_NS: enabled
- CONFIG_UTS_NS: enabled
- CONFIG_DEVPTS_MULTIPLE_INSTANCES: enabled
- CONFIG_CGROUPS: enabled
- CONFIG_CGROUP_CPUACCT: enabled
- CONFIG_CGROUP_DEVICE: enabled
- CONFIG_CGROUP_FREEZER: enabled
- CONFIG_CGROUP_SCHED: enabled
- CONFIG_MACVLAN: enabled
- CONFIG_VETH: enabled
- CONFIG_BRIDGE: enabled
- CONFIG_NF_NAT_IPV4: enabled
- CONFIG_IP_NF_FILTER: enabled
- CONFIG_IP_NF_TARGET_MASQUERADE: enabled
- CONFIG_NETFILTER_XT_MATCH_ADDRTYPE: enabled
- CONFIG_NETFILTER_XT_MATCH_CONNTRACK: enabled
- CONFIG_NF_NAT: enabled
- CONFIG_NF_NAT_NEEDED: enabled

Optional Features:
- CONFIG_MEMCG_SWAP: enabled
- CONFIG_RESOURCE_COUNTERS: enabled
- CONFIG_CGROUP_PERF: missing
- Storage Drivers:
  - "aufs":
    - CONFIG_AUFS_FS: missing
      (note that some kernels include AUFS patches but not the AUFS_FS flag)
    - CONFIG_EXT4_FS_POSIX_ACL: enabled
    - CONFIG_EXT4_FS_SECURITY: enabled
  - "btrfs":
    - CONFIG_BTRFS_FS: enabled
  - "devicemapper":
    - CONFIG_BLK_DEV_DM: enabled
    - CONFIG_DM_THIN_PROVISIONING: enabled
    - CONFIG_EXT4_FS: enabled
    - CONFIG_EXT4_FS_POSIX_ACL: enabled
    - CONFIG_EXT4_FS_SECURITY: enabled
  - "overlayfs":
    - CONFIG_OVERLAYFS_FS: missing
```

Signed-off-by: Andrew Page <admwiggin@gmail.com>
2014-11-18 12:20:49 -07:00
Jessica Frazelle 7fe8d0aeeb Fix steam where it should be stream.
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-11-18 10:49:01 -08:00
Doug Davis b4346c4810 Be clearer in docs about COPY/ADD dirs
COPY/ADD just copies the contents of dirs, not dirs themselves.
This PR tries to clear that up in the docs.

Closes #8775

Signed-off-by: Doug Davis <dug@us.ibm.com>
2014-11-18 04:33:53 -08:00
James Turnbull 660eadae3d Merge pull request #9189 from satnam6502/docfix
Consistently use sudo docker
2014-11-18 01:17:48 -05:00
James Turnbull 4fff1505eb Merge pull request #9193 from somaopensource/docs_misspelling
Fix misspelling
2014-11-18 01:16:27 -05:00
Marianna e6fd57b90b Fixed a bug - no panic anymore when logining in without TTY
Fixes #8956

Signed-off-by: Marianna <mtesselh@gmail.com>
2014-11-17 19:41:27 -08:00
Michael Crosby 379c0da464 Merge pull request #8937 from vbatts/vbatts-mount_optional_fields
pkg/mount: include optional field
2014-11-17 18:25:00 -08:00
Michael Crosby 17dfa126ba Merge pull request #9204 from jfrazelle/9056-rmi
Fix for rmi throws error "no such id".
2014-11-17 18:08:52 -08:00
Sven Dowideit e2d08bd5ea Merge pull request #8749 from brahmaroutu/resize_uponstart_8728_2
Fix the documentation and integration test for container resize
2014-11-17 17:24:58 -08:00
Satnam Singh b273c447e0 Consistently use sudo docker
Signed-off-by: Satnam Singh <satnam@raintown.org>
2014-11-17 17:14:39 -08:00
Jessica Frazelle ac40e7cbb3 Fix for rmi -f when error "no such id". (9056)
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-11-17 17:04:10 -08:00
Jessie Frazelle 882db5f885 Merge pull request #8993 from SvenDowideit/make-ps-size-docs-clearer
makes the -s --size option documentation clearer #8950
2014-11-17 17:42:27 -07:00
Jessie Frazelle 3527d5b817 Merge pull request #9205 from crosbymichael/update-libcontainer-nov17
Update libcontainer to 28cb5f9dfd6f3352c610a4f1502
2014-11-17 16:49:35 -07:00
Jessica Frazelle a0605107d7 Add test for bug (9056) where rmi -f fails with "no such id".
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-11-17 15:12:55 -08:00
Vincent Batts 83d7db3e50 pkg/mount: testing mountinfo fields
Signed-off-by: Vincent Batts <vbatts@redhat.com>
2014-11-17 16:17:06 -05:00
Michael Crosby 975fa5487c Update libcontainer to 28cb5f9dfd6f3352c610a4f1502
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2014-11-17 12:16:37 -08:00
Daehyeok Mun a3068a109c fix link to PACKAGERS.md
fix link from /hack/PACKAGERS.md to /project/PACKAGERS.md

Signed-off-by: Daehyeok Mun <daehyeok@gmail.com>
2014-11-18 05:03:00 +09:00
Jessie Frazelle ecaba0eb4a Merge pull request #9197 from somaopensource/remove_obsolete_comment
Remove obsolete comments
2014-11-17 12:53:23 -07:00
Victor Vieux 8545155c41 add docs
Signed-off-by: Victor Vieux <vieux@docker.com>
2014-11-17 19:26:43 +00:00
Victor Vieux 9a85f60c75 add ID and Hostname in docker info
Signed-off-by: Victor Vieux <vieux@docker.com>
2014-11-17 19:23:41 +00:00
Srini Brahmaroutu 91fb9b2f5a Fix the documentation and integration test for container resize
Closes #8728

Signed-off-by: Srini Brahmaroutu <srbrahma@us.ibm.com>
2014-11-17 18:38:08 +00:00
Daehyeok Mun d5098fde9a Remove obsolete comments
In the below comment line, already codes for log exists so
following comment is obsolete.
// TODO log

Signed-off-by: Daehyeok Mun <daehyeok@gmail.com>
2014-11-17 23:27:03 +09:00
Arnaud Porterie ab7a6544b0 Update AUTHORS file
Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2014-11-16 23:41:25 -08:00
Arnaud Porterie 34cb92e2d4 Merge pull request #8699 from shuai-z/fix-portalloc
Fix corner cases in ipallocator and portallocator
2014-11-16 22:10:40 -08:00
Daehyeok Mun bdaa76e8cf Fix misspelling
Fix misspelling from independant to independent

Signed-off-by: Daehyeok Mun <daehyeok@gmail.com>
2014-11-17 04:23:22 +09:00
Alexandr Morozov 61e4b4e1d0 Merge pull request #8335 from duglin/Issue5198
Add --log-level support - Issue #5198
2014-11-15 10:53:31 -08:00
Tibor Vass 08201d021e Merge pull request #9113 from Azure/windows-client
Windows port of Docker Client
2014-11-15 10:40:31 -08:00
Doug Davis 2facc04673 Add --log-level support
Next steps, in another PR, would be:
- make all logging go through the logrus stuff
- I'd like to see if we can remove the env var stuff (like DEBUG) but we'll see

Closes #5198

Signed-off-by: Doug Davis <dug@us.ibm.com>
2014-11-15 09:00:48 -08:00
Vivek Goyal edc6df256d devmapper: Call UdevWait() even in failure path
Currently we set up a cookie and upon failure not call UdevWait(). This
does not cleanup the cookie and associated semaphore and system will
soon max out on total number of semaphores.

To avoid this, call UdevWait() even in failure path which in turn will
cleanup associated semaphore.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
Signed-off-by: Vincent Batts <vbatts@redhat.com>
2014-11-15 09:41:27 -05:00
Ahmet Alp Balkan b7703a992e Add windows/(386,amd64) to cross platforms list
Edited make scripts to append .exe to windows binary

Signed-off-by: Ahmet Alp Balkan <ahmetb@microsoft.com>
2014-11-14 18:20:54 -08:00
Ahmet Alp Balkan 5a38680bd2 Fix input volume path check on Windows
used path package instead of path/filepath so that --volumes and
--device parameters to always validate paths as unix paths instead of
OS-dependent path convention

Signed-off-by: Ahmet Alp Balkan <ahmetb@microsoft.com>
2014-11-14 18:20:54 -08:00
Ahmet Alp Balkan d4dbb70832 Use USERPROFILE path on Windows as home directory
Signed-off-by: Ahmet Alp Balkan <ahmetb@microsoft.com>
2014-11-14 18:20:54 -08:00
John Gossman e45b0f9271 Remove unused sysinfo parameter to runconfig.Parse
Removing dead code.

Signed-off-by: John Gossman <johngos@microsoft.com>
2014-11-14 18:20:54 -08:00
Ahmet Alp Balkan 2180aa4f6f Refactor pkg/archive with a platform-independent stat struct
pkg/archive contains code both invoked from cli (cross platform) and
daemon (linux only) and Unix-specific dependencies break compilation on
Windows. We extracted those stat-related funcs into platform specific
implementations at pkg/system and added unit tests.

Signed-off-by: Ahmet Alp Balkan <ahmetb@microsoft.com>
2014-11-14 18:20:54 -08:00
Ahmet Alp Balkan 3d2fae353f Extract mknod, umask, lstat to pkg/system
Some parts of pkg/archive is called on both client/daemon code. To get
it compiling on Windows, these funcs are extracted into files with
build tags.

Signed-off-by: Ahmet Alp Balkan <ahmetb@microsoft.com>
2014-11-14 18:20:54 -08:00
Ahmet Alp Balkan b64c9b521a Extract TreeSize to daemon build
TreeSize uses syscall.Stat_t which is not available on Windows.
It's called only on daemon path, therefore extracting it to daemon
with build tag 'daemon'

Signed-off-by: Ahmet Alp Balkan <ahmetb@microsoft.com>
2014-11-14 18:20:53 -08:00
Ahmet Alp Balkan 376ae7780b Consolidate tmpdir implementations, include Windows
Signed-off-by: Ahmet Alp Balkan <ahmetb@microsoft.com>
2014-11-14 18:20:53 -08:00
Ahmet Alp Balkan 91a86670aa Extract client signals to pkg/signal
SIGCHLD and SIGWINCH used in api/client (cli code) are not
available on Windows. Extracting into separate files with build
tags.

Signed-off-by: Ahmet Alp Balkan <ahmetb@microsoft.com>
2014-11-14 18:20:53 -08:00
John Gossman 975b6e598d Refactor pkg/term package for Windows tty support
Signed-off-by: John Gossman <johngos@microsoft.com>
2014-11-14 18:20:53 -08:00
Michael Crosby 8682bac309 Merge pull request #9151 from tonistiigi/aufs-clipping-fix
Fix AUFS silent mount errors on many layers
2014-11-14 17:35:07 -08:00
Michael Crosby c89062bafc Merge pull request #9164 from vbatts/vbatts-dm_removedevice
pkg/devicemapper: cleanup removeDevice differences
2014-11-14 16:56:02 -08:00
Derek McGowan 87f59e3802 Skip V2 registry and immediately fallback to V1 when mirrors are provided
Since V2 registry does not yet implement mirrors, when mirrors are given automatically fallback to V1 without checking V2 first.

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2014-11-14 15:30:58 -08:00
Solomon Hykes b7ca8f6f73 Merge pull request #9178 from shykes/hack-to-project
Rename hack to project
2014-11-14 15:23:19 -08:00
Solomon Hykes 10c0e72de8 Merge pull request #9177 from shykes/hack-docs-small-improvements
Small improvements to contribution docs
2014-11-14 15:15:21 -08:00
Solomon Hykes d32d9300ed Merge pull request #9116 from erikh/update_contributing
Update CONTRIBUTING to reflect new PR-docs process.
2014-11-14 14:52:17 -08:00
Tibor Vass c650d17a26 Rewrite documentation for insecure registries
Signed-off-by: Tibor Vass <teabee89@gmail.com>

Conflicts:
	docs/sources/reference/commandline/cli.md
2014-11-14 14:20:19 -08:00
Tibor Vass 5e2d02ab73 Add the possibility of specifying a subnet for --insecure-registry
Signed-off-by: Tibor Vass <teabee89@gmail.com>

Conflicts:
	registry/endpoint.go
2014-11-14 14:20:19 -08:00
Tibor Vass eb3738347a registry: parse INDEXSERVERADDRESS into a URL for easier check in isSecure
Signed-off-by: Tibor Vass <teabee89@gmail.com>
2014-11-14 14:20:19 -08:00
Tibor Vass 6152460c1e Put mock registry address in insecureRegistries for unit tests
Signed-off-by: Tibor Vass <teabee89@gmail.com>

Conflicts:
	registry/registry_mock_test.go
2014-11-14 14:20:19 -08:00
Tibor Vass 1527979e87 registry: refactor registry.IsSecure calls into registry.NewEndpoint
Signed-off-by: Tibor Vass <teabee89@gmail.com>

Conflicts:
	registry/endpoint.go
	registry/endpoint_test.go
	registry/registry_test.go
2014-11-14 14:05:31 -08:00
Tibor Vass 36503981f0 Merge pull request #9100 from tiborvass/insecure-registry-cidr
Add the possibility of specifying a subnet for --insecure-registry
2014-11-14 13:45:48 -08:00
Tibor Vass 04175d0763 archive: prevent breakout in ApplyLayer
Signed-off-by: Tibor Vass <teabee89@gmail.com>
2014-11-14 23:45:37 +02:00
Tibor Vass a111eea20c archive: prevent breakout in Untar
Signed-off-by: Tibor Vass <teabee89@gmail.com>
2014-11-14 23:45:29 +02:00
Tibor Vass ea361c0476 archive: add breakout tests
Signed-off-by: Tibor Vass <teabee89@gmail.com>

Conflicts:
	pkg/archive/archive.go
		fixed conflict which git couldn't fix with the added BreakoutError
2014-11-14 23:44:20 +02:00
Michael Crosby 25643f8932 Merge pull request #9172 from vbatts/vbatts-dm_maintainer
pkg/devicemapper: missed MAINTAINERS on split
2014-11-14 13:29:34 -08:00
Tianon Gravi 8bb6957d3b Merge pull request #9165 from hansrodtang/master
Updated cover tool import path.
2014-11-14 14:10:20 -07:00
unclejack 916a10dd91 Merge pull request #7619 from alexlarsson/overlayfs
Add overlayfs graph backend
2014-11-14 22:59:59 +02:00
Tibor Vass 5937663a08 Rewrite documentation for insecure registries
Signed-off-by: Tibor Vass <teabee89@gmail.com>
2014-11-14 12:32:56 -08:00
Tibor Vass 6aba75db4e Add the possibility of specifying a subnet for --insecure-registry
Signed-off-by: Tibor Vass <teabee89@gmail.com>
2014-11-14 12:31:11 -08:00
Vincent Batts cef27e1d6c pkg/devicemapper: defer udev wait during removal
Signed-off-by: Vincent Batts <vbatts@redhat.com>
2014-11-14 15:17:33 -05:00
Michael Crosby df603eb4e4 Merge pull request #9108 from vieux/handle_redirects
handle GET redirects over HTTP
2014-11-14 12:07:22 -08:00
Victor Vieux 454f56e37e use _, _ string
Signed-off-by: Victor Vieux <vieux@docker.com>
2014-11-14 19:31:52 +00:00
Michael Crosby 07996d82c7 Merge pull request #9074 from rhatdan/shm
Allow IPC namespace to be shared between containers or with the host
2014-11-14 10:34:00 -08:00
Brian Goff 7107898d5c Initialize volumes when container is created
Fixes #8942
Current behavior is that volumes aren't initialized until start.
Volumes still need to be initialized on start since VolumesFrom and
Binds can be passed in as part of HostConfig on start, however anything
that's already been initialized will just be skipped as is the current
behavior.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2014-11-14 11:37:03 -05:00
Vincent Batts 3ec623ee2f pkg/devicemapper: missed MAINTAINERS on split
Signed-off-by: Vincent Batts <vbatts@redhat.com>
2014-11-14 11:12:23 -05:00
Anthony Baire b37fdc5dd1 fix missing layers when exporting a full repository
Therer is a bug in the 'skip' decision when exporting a repository
(`docker save repo`)

Only the layers of the first image are included in the archive (the
layers of the next images are missing)

Signed-off-by: Anthony Baire <Anthony.Baire@irisa.fr>
2014-11-14 14:41:35 +01:00
unclejack 7b7af6dbae Merge pull request #8999 from yoheiueda/test-unit-without-parallel
Make test-unit runnable without parallel
2014-11-14 15:39:51 +02:00
James Turnbull 70a3f4e8e2 Merge pull request #9156 from pixelistik/patch-1
Fix typo "infortmation" in docs for `docker run`
2014-11-14 08:02:12 -05:00
Hans Rødtang b4336803f3 Updated cover tool import path.
Signed-off-by: Hans Rødtang <hansrodtang@gmail.com>
2014-11-14 06:16:41 +01:00
Jessie Frazelle 870a695375 Merge pull request #9011 from vbatts/vbatts-btrfs_information
btrfs: information for the information gods
2014-11-13 20:47:07 -08:00
Vincent Batts c9a7662208 pkg/devicemapper: cleanup removeDevice differences
Fixes failure on RemoveDevice when host is AUFS, and running
devicemapper test docker-in-docker

https://gist.github.com/tonistiigi/59559cbfb3f2df26b29c

Signed-off-by: Vincent Batts <vbatts@redhat.com>
2014-11-13 22:43:03 -05:00
Michael Crosby 967354d488 Merge pull request #9131 from vieux/empty_lines_dockerinfo
Do not display empty lines in docker info if the key doesn't exists
2014-11-13 19:08:32 -08:00
Victor Vieux 4f5be9da86 Do not display empty lines in docker info if the key doesn't exists
Signed-off-by: Victor Vieux <vieux@docker.com>
2014-11-14 02:50:34 +00:00
Michael Crosby 5c863f983d Merge pull request #9107 from ashahab-altiscale/9062-linked-container
Share network namespace of containers with lxc
2014-11-13 18:25:38 -08:00
Michael Crosby 039aa2741f Merge pull request #8964 from jlhawn/image_checksum
Compute TarSum on storage of image layer content
2014-11-13 18:07:20 -08:00
unclejack 3aa2245914 Merge pull request #8869 from jlhawn/tarsum_version
Finalize TarSum Version 1 w/ refactor
2014-11-14 01:12:22 +02:00
pixelistik cbf2879349 Fix typo "infortmation" in docs for docker run 2014-11-13 23:26:49 +01:00
Vincent Batts d7c37b5a28 Dockerfile: buildtags for old btrfs
Since the build uses ubuntu 14.04, which has an old btrfs, include the
buildtags needed for this old version to not break the build.

Signed-off-by: Vincent Batts <vbatts@redhat.com>
2014-11-13 16:44:00 -05:00
Vincent Batts 25154682a5 btrfs: build tag to enable showing version info
be default it is on, with build tags to disable the version info

Signed-off-by: Vincent Batts <vbatts@redhat.com>
2014-11-13 16:43:53 -05:00
Jessie Frazelle b0d219eef0 Merge pull request #9152 from duglin/DockerBuildEnvs
Allow a few more DOCKER_* env vars to pass thru Makefile
2014-11-13 12:52:36 -08:00
Jessie Frazelle 06899e0810 Merge pull request #9064 from recursive-madman/patch-1
Proposed fix for #8979
2014-11-13 12:24:22 -08:00
Vincent Batts 447a1a9bad Merge pull request #9104 from tiborvass/issecure-check-in-new-endpoint
registry: refactor registry.IsSecure calls into registry.NewEndpoint
2014-11-13 14:59:26 -05:00
Michael Crosby b9fb9787b6 Merge pull request #8930 from vbatts/vbatts-mount_freebsd_fields
pkg/mount: adding fields supported by freebsd
2014-11-13 11:54:16 -08:00
Michael Crosby e4105e4535 Merge pull request #8897 from vbatts/vbatts-mount_sharedsubtree
pkg/mount: sharedsubtree options and testing
2014-11-13 11:26:29 -08:00
Doug Davis 912b0f0f73 Allow a few more DOCKER_* env vars to pass thru Makefile
I was trying to just build the Docker client but DOCKER_CLIENTONLY wasn't
getting passed thru from the shell to the container building docker.

So, this PR passes this var (via the -e option) on the docker run command
so we pick it up from the devs shell when running "make ...".

While in there I pulled all of the "-e" options into a new Makefile variable
so its easy to see just the list of env vars we pass along.

Signed-off-by: Doug Davis <dug@us.ibm.com>
2014-11-13 11:25:11 -08:00
Mike Snitzer e49567ba72 devmapper: disable discards by default if dm.thinpooldev was specified
User may still enable discards by setting dm.blkdiscard=true

Docker-DCO-1.1-Signed-off-by: Mike Snitzer <snitzer@redhat.com> (github: snitm)
2014-11-13 13:37:47 -05:00
Tonis Tiigi 6d97339ca2 Fix AUFS silent mount errors on many layers
Fixes #1171
Fixes #6465

Data passed to mount(2) is clipped to PAGE_SIZE if its bigger. Previous 
implementation checked if error was returned and then started to append layers 
one by one. But if the PAGE_SIZE clipping appeared in between the paths, in the 
permission sections or in xino definition the call would not error and 
remaining layers would just be skipped(or some other unknown situation).

This also optimizes system calls as it tries to mount as much as possible with 
the first mount.


Signed-off-by: Tõnis Tiigi <tonistiigi@gmail.com> (github: tonistiigi)
2014-11-13 20:13:13 +02:00
Tianon Gravi 70e3cdcdd9 Merge pull request #8644 from tamsky/pull-7698-docfix
Add mention of e2fsprogs to runtime dependencies.
2014-11-13 11:07:13 -07:00
Tianon Gravi abceeb2ef5 Merge pull request #8960 from LK4D4/add_nf_filter_check
Add check for IP_NF_FILTER
2014-11-13 11:03:29 -07:00
Alexandr Morozov 8f763a09d3 Merge pull request #9143 from coolljt0725/cleanup_defaulttag
Cleanup:change "latest" to graph.DEFAULTTAG
2014-11-13 09:00:00 -08:00
Sami Wagiaalla a01f1e707e Remove reference to 'ifaceName' from configureBridge comment.
The argument ifaceName was removed in a much earlier commit.

Signed-off-by: Sami Wagiaalla <swagiaal@redhat.com>
2014-11-13 10:19:56 -05:00
Tibor Vass fbe10c83d8 registry: parse INDEXSERVERADDRESS into a URL for easier check in isSecure
Signed-off-by: Tibor Vass <teabee89@gmail.com>
2014-11-13 07:02:24 -08:00
Michal Minar e71f241c4b Corrected description of --sig-proxy
Signal proxy does work only in non-TTY mode (--tty=false). Man pages and
commands should not lie about it.

Signed-off-by: Michal Minar <miminar@redhat.com>
2014-11-13 10:50:06 +01:00
Lei Jitang 3c3968692d Cleanup:change latest to graph.DEFAULTTAG
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2014-11-13 16:21:34 +08:00
Victor Vieux 5fbfec333a update timeout
Signed-off-by: Victor Vieux <vieux@docker.com>
2014-11-13 03:21:18 +00:00
Tibor Vass 78e859f3c3 Put mock registry address in insecureRegistries for unit tests
Signed-off-by: Tibor Vass <teabee89@gmail.com>
2014-11-12 20:34:03 -06:00
Tibor Vass 4455f51760 registry: refactor registry.IsSecure calls into registry.NewEndpoint
Signed-off-by: Tibor Vass <teabee89@gmail.com>
2014-11-12 20:34:03 -06:00
Mike Snitzer 2b10749cdd devmapper: Add option for specifying an lvm2 created thin-pool device
Ideally lvm2 would be used to create/manage the thin-pool volume that is
then handed to docker to exclusively create/manage the thin and thin
snapshot volumes needed for it's containers.  Managing the thin-pool
outside of docker makes for the most feature-rich method of having
docker utilize device mapper thin provisioning as the backing storage
for docker's containers.  lvm2-based thin-pool management feature
highlights include: automatic or interactive thin-pool resize support,
dynamically change thin-pool features, automatic thinp metadata checking
when lvm2 activates the thin-pool, etc.

Docker will not activate/deactivate the specified thin-pool device but
it will exclusively manage/create thin and thin snapshot volumes in it.

Docker will not take ownership of the specified thin-pool device unless
it has 0 data blocks used and a transaction id of 0.  This should help
guard against using a thin-pool that is already in use.

Also fix typos in setupBaseImage() relative to the thin volume type of
the base image.

Docker-DCO-1.1-Signed-off-by: Mike Snitzer <snitzer@redhat.com> (github: snitm)
2014-11-12 21:03:04 -05:00
Mike Snitzer ad6467f9e1 devmapper: use proper DM_UDEV_DISABLE_*_FLAG when creating the thin-pool
Otherwise udev can unecessarily execute various rules (and issue
scanning IO, etc) against the thin-pool -- which can never be a
top-level device.

Docker-DCO-1.1-Signed-off-by: Mike Snitzer <snitzer@redhat.com> (github: snitm)
2014-11-12 21:03:04 -05:00
Vincent Batts 42861f3b45 Merge pull request #8986 from vbatts/vbatts-pkg_devicemapper_bindings
devicemapper: split out devicemapper bindings
2014-11-12 19:59:36 -05:00
Erik Hollensbe 460036cdef Update CONTRIBUTING to reflect new PR-docs process.
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-11-12 16:01:25 -08:00
Michael Crosby 9670871e01 Merge pull request #8982 from rhvgoyal/save-restore-device-id
Save restore device Id: issue #8978
2014-11-12 15:41:27 -08:00
Alexandr Morozov e12572f265 Merge pull request #9031 from cpuguy83/cleanup_api_server_creation
Cleanup api server creation
2014-11-12 15:37:34 -08:00
Erik Hollensbe 33382385c3 Merge pull request #9124 from erikh/secure-localhost
Secure localhost registry (carry of #8898)
2014-11-12 15:25:15 -08:00
Solomon Hykes 2e27263aac Merge pull request #9127 from vishh/maintainer
Adding Vish as a maintainer for daemon.
2014-11-12 15:02:17 -08:00
Vishnu Kannan 06bf79552d Adding Vish as a maintainer for daemon code.
Docker-DCO-1.1-Signed-off-by: Vishnu Kannan <vishnuk@google.com> (github: vishh)
2014-11-12 22:55:32 +00:00
Michael Crosby 3ef2fc7f0f Merge pull request #9105 from stevenburgess/archiveCommentFix
Fix comment to match the arg name
2014-11-12 14:52:27 -08:00
Michael Crosby 08f5edce30 Merge pull request #8479 from vishh/OOM
Provide Out Of Memory information in container status
2014-11-12 14:15:29 -08:00
Erik Hollensbe 11380a109e registry: always treat 127.0.0.1 as insecure for all cases anytime anywhere
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-11-12 12:14:43 -08:00
Johan Euphrosine 28ee373e19 registry: default --insecure-registry to localhost and 127.0.0.1
Signed-off-by: Johan Euphrosine <proppy@google.com>
2014-11-12 09:12:42 -08:00
Dan Walsh 497fc8876e Allow IPC namespace to be shared between containers or with the host
Some workloads rely on IPC for communications with other processes.  We
would like to split workloads between two container but still allow them
to communicate though shared IPC.

This patch mimics the --net code to allow --ipc=host to not split off
the IPC Namespace.  ipc=container:CONTAINERID to share ipc between containers

If you share IPC between containers, then you need to make sure SELinux labels
match.

Docker-DCO-1.1-Signed-off-by: Dan Walsh <dwalsh@redhat.com> (github: rhatdan)
2014-11-12 11:29:58 -05:00
Vivek Goyal 15c74bebc1 devmapper: Take care of some review comments
Took care of some review comments from crosbymichael.

v2:
- Return "err = nil" if file deviceset-metadata file does not exist.
- Use json.Decoder() interface for loading deviceset metadata.

v3:
- Reverted back to json marshal interface in loadDeviceSetMetaData().

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2014-11-12 09:36:32 -05:00
Jessie Frazelle 6ad1cd5d0f Merge pull request #9102 from brahmaroutu/add_tag_9001
improve error message to print the tag
2014-11-12 02:37:40 -07:00
Solomon Hykes 1396cff375 Merge pull request #9079 from SvenDowideit/pr_out_update_roadmap_md_based_on_10_21_2014_dgab_meeting
Update ROADMAP.md based on 10/21/2014 DGAB meeting
2014-11-11 23:00:25 -08:00
James Turnbull 492c4fc1a8 Merge pull request #9106 from duglin/TyposRemoteAPI
Add missing comma in docs
2014-11-11 22:48:30 -05:00
Victor Vieux 6ca144ef3d fix unix socket
Signed-off-by: Victor Vieux <vieux@docker.com>
2014-11-12 00:37:58 +00:00
Victor Vieux 4b4ad26b97 handle GET redirects
Signed-off-by: Victor Vieux <vieux@docker.com>
2014-11-12 00:37:58 +00:00
Doug Davis 814bc06d7b Add missing comma in docs
Found by Michael Voznesensky <voznesenskym@gmail.com>

Signed-off-by: Doug Davis <dug@us.ibm.com>
2014-11-11 15:18:20 -08:00
Steven Burgess 64a335ceac Fix comment to match the arg name
Signed-off-by: Steven Burgess <steven.a.burgess@hotmail.com>
2014-11-11 18:01:08 -05:00
unclejack e546c8cc1d Merge pull request #9041 from unclejack/lxc_maintainers_comment
execdriver/lxc: add comment to MAINTAINERS
2014-11-12 00:27:11 +02:00
Srini Brahmaroutu bc45428220 improve error message to print the tag
Closes #9001

Signed-off-by: Srini Brahmaroutu <srbrahma@us.ibm.com>
2014-11-11 22:18:40 +00:00
Thomas Orozco 967f80f3cc Fix: Failed Start breaks VolumesFrom
Running parseVolumesFromSpec on all VolumesFrom specs before initialize
any mounts endures that we don't leave container.Volumes in an
inconsistent (partially initialized) if one of out mount groups is not
available (e.g. the container we're trying to mount from does not
exist).

Keeping container.Volumes in a consistent state ensures that next time
we Start() the container, it'll run prepareVolumes() again.

The attached test demonstrates that when a container fails to start due
to a missing container specified in VolumesFrom, it "remembers" a Volume
that worked.

Fixes: #8726

Signed-off-by: Thomas Orozco <thomas@orozco.fr>

Conflicts:
	integration-cli/docker_cli_start_test.go
		cli integration test
2014-11-12 00:14:04 +02:00
Tibor Vass e08d1f6af2 Merge pull request #9095 from proppy/is-secure-test
registry: add tests for IsSecure
2014-11-11 16:52:36 -05:00
unclejack 8d90b0faf8 don't call reexec.Init from chrootarchive
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-11-11 23:20:16 +02:00
Tibor Vass 3ac6394b80 pkg/chrootarchive: pass TarOptions via CLI arg
Signed-off-by: Tibor Vass <teabee89@gmail.com>
2014-11-11 23:20:09 +02:00
unclejack 0357b26c1b add pkg/chrootarchive and use it on the daemon
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-11-11 23:20:02 +02:00
unclejack 1d4a82365b pkg/archive: add interface for Untar
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-11-11 23:19:54 +02:00
Josh Hawn 3ab5251f56 Use archive.CopyWithTar in vfs.Create
The vfs storage driver currently shells out to the `cp` binary on the host
system to perform an 'archive' copy of the base image to a new directory.
The archive option preserves the modified time of the files which are created
but there was an issue where it was unable to preserve the modified time of
copied symbolic links on some host systems with an outdated version of `cp`.

This change no longer relies on the host system implementation and instead
utilizes the `CopyWithTar` function found in `pkg/archive` which is used
to copy from source to destination directory using a Tar archive, which
should correctly preserve file attributes.

Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)
2014-11-11 23:19:43 +02:00
unclejack d51a02091c pkg/reexec: move reexec code to a new package
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)

Conflicts:
	integration/runtime_test.go
		fixed imports
2014-11-11 23:19:34 +02:00
Johan Euphrosine 75e3b35bf1 registry: add tests for IsSecure
Signed-off-by: Johan Euphrosine <proppy@google.com>
2014-11-11 11:02:32 -08:00
unclejack c0499494df Merge pull request #9090 from unclejack/archive_interface
pkg/archive: add interface for Untar
2014-11-11 20:57:58 +02:00
Fred Lifton d6a4d045f7 Merge pull request #8840 from decadent/fix-da-copy-directive-reference
Nuh uh... quoth the build log: Source can't be a URL for COPY
2014-11-11 10:57:00 -08:00
Fred Lifton 9e0fac3da8 Merge pull request #9082 from SvenDowideit/pr_out_add_some_details_about_the_lifecycle_of_commands_started_with_docker_exec
Add some details about the lifecycle of commands started with docker exec
2014-11-11 10:55:12 -08:00
Jessie Frazelle a131032422 Merge pull request #9091 from duglin/CleanupIntTests
Cleanup some integration-cli output
2014-11-11 10:56:29 -07:00
Doug Davis 0cef21cfba Cleanup some integration-cli output
I noticed a few things that were bugging me in the output
of the integration-cli tests.
- one of the tests used println to stdout so we had garage sent to the screen
- some of the test, in their final log message, didn't include the name of
  the group/file e.g.  daemon - run,iptables   was just   run,iptables

And yes, I noticed this because I'm anal :-)  but also because we should keep
the output of the tests as clean as possible so its easy to spot it when
things go bad.

Signed-off-by: Doug Davis <dug@us.ibm.com>
2014-11-11 08:44:32 -08:00
unclejack 14692d0d41 pkg/archive: add interface for Untar
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-11-11 18:28:33 +02:00
Tibor Vass 2a517fe103 Merge pull request #8726 from krallin/failed-start-breaks-volumes-from
Fix: a failed Start() breaks --volumes-from on subsequent Start()'s
2014-11-11 10:49:33 -05:00
Vincent Batts 5cd9b7513f pkg/tarsum: adding more tests
Ensuring case size of headers will still be accounted for.
https://github.com/docker/docker/pull/8869#discussion_r20114401

Signed-off-by: Vincent Batts <vbatts@redhat.com>
2014-11-11 08:48:11 -05:00
James Turnbull 2ff203f0a6 Merge pull request #9071 from fredlf/add-docs-readme
Add link to Docs README.
2014-11-11 07:25:09 -05:00
Abin Shahab adb07b53e0 LINKED CONTAINER ID PASSED TO LXC
This passed the --net=container:CONTINER_ID to lxc-start as --share-net
Docker-DCO-1.1-Signed-off-by: Abin Shahab <ashahab@altiscale.com> (github: ashahab-altiscale)
2014-11-11 09:10:15 +00:00
Recursive Madman 5cd53195fd Don't loose precision when parsing image size on 32 bit machines. Presumably fixes #8979.
Signed-off-by: Recursive Madman <recursive.madman@gmx.de>
2014-11-11 09:24:45 +01:00
Sven Dowideit 447387474a Add some details about the lifecycle of commands started with docker exec
Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>
2014-11-11 15:56:27 +10:00
Erik Hollensbe 0b4132782a Merge pull request #9048 from coaku/b_xzk_rm_redundant_trim
Remove redundant stripComment
2014-11-10 21:53:22 -08:00
Sven Dowideit 703ef3caa8 Merge pull request #9050 from prasincs/patch-1
Additional info for docker binary
2014-11-10 20:22:05 -08:00
Fred Lifton ca0885729d Fix 80 char. error
Docker-DCO-1.1-Signed-off-by: Fred Lifton <fred.lifton@docker.com> (github: fredlf)
2014-11-10 17:50:12 -08:00
Scott Johnston d94de133f4 Update ROADMAP.md based on 10/21/2014 DGAB meeting
The Docker Governance Advisory Board (DGAB) met for the first time Tue 10/21/2014.
Among other topics, the DGAB reviewed and refreshed the Docker Project Statement of Direction.

(Sven added from the Pull Req #9055)
Docker-DCO-1.1-Signed-off-by: Scott Johnston <scott.johnston@docker.com> (github: j0hnst0n)

Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>
2014-11-11 11:43:37 +10:00
Sven Dowideit 67c7faa002 Merge pull request #9065 from tobegit3hub/master
Remove the redundant include_search in mkdocs.yml
2014-11-10 17:24:07 -08:00
Solomon Hykes a1789a2eab Merge pull request #9032 from fredlf/revise-docs-maintainers
Revise Docs Maintainers list
2014-11-10 17:11:25 -08:00
Prasanna Gautam 48424df685 properly line wrapping
Signed-off-by: Prasanna Gautam <prasannagautam@gmail.com>
2014-11-10 20:06:22 -05:00
Sven Dowideit 970e404e9b Merge pull request #9069 from cpuguy83/docs_for_pr8509
Add missing docs for #8509
2014-11-10 17:04:28 -08:00
gautam, prasanna cf19df4683 fixing punctuation and grammar
Signed-off-by: Prasanna Gautam <prasannagautam@gmail.com>
2014-11-10 18:05:02 -05:00
Brian Goff dacae746b7 Cleanup api server creation
Current implementation is hard to reason about because of trying to mix
unix/tcp server implementations, even though they are quite different.
This cleans that up.

Also makes it possible to create and manage a new API server easily,
e.g. for adding an introspection socket to a container.

Built in such a way as to allow a non-HTTP server to work as well, such
as libchan.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2014-11-10 16:20:35 -05:00
Michael Crosby 84f25414c1 Merge pull request #9014 from LK4D4/fix_parent_failing
Not fail on updating parent links
2014-11-10 12:53:16 -08:00
Jessie Frazelle 4fcd3dd748 Merge pull request #8716 from duglin/Issue8331
Use the HTTP Last-Modified http header as the mtime value for ADD cmd when present
2014-11-10 13:03:57 -07:00
Fred Lifton 67ca7415e7 Add link to Docs README.
Linking to the docs readme to help would-be contributors discover the style guide and docs contribution guidelines.

Docker-DCO-1.1-Signed-off-by: Fred Lifton <fred.lifton@docker.com> (github: fredlf)
2014-11-10 11:33:16 -08:00
Michael Crosby 0573b17b24 Add AppArmorProfile to container inspect json
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2014-11-10 21:04:17 +02:00
Michael Crosby c9379eb3fb Move security opts to HostConfig
These settings need to be in the HostConfig so that they are not
committed to an image and cannot introduce a security issue.

We can safely move this field from the Config to the HostConfig
without any regressions because these settings are consumed at container
created and used to populate fields on the Container struct.  Because of
this, existing settings will be honored for containers already created
on a daemon with custom security settings and prevent values being
consumed via an Image.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2014-11-10 21:04:01 +02:00
Alexandr Morozov 3c5155ac16 Merge pull request #9028 from unclejack/add_yeong-sil_jang
pkg/namesgenerator: add Yeong-Sil Jang
2014-11-10 10:07:27 -08:00
Brian Goff 271f54aea3 Add missing docs for #8509
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2014-11-10 12:25:17 -05:00
Arnaud Porterie 0f21d9aea7 Merge pull request #6810 from phemmer/4442-hairpin-nat
Support hairpin NAT
2014-11-10 08:53:01 -08:00
Thomas Orozco fb62e18441 Fix: Failed Start breaks VolumesFrom
Running parseVolumesFromSpec on all VolumesFrom specs before initialize
any mounts endures that we don't leave container.Volumes in an
inconsistent (partially initialized) if one of out mount groups is not
available (e.g. the container we're trying to mount from does not
exist).

Keeping container.Volumes in a consistent state ensures that next time
we Start() the container, it'll run prepareVolumes() again.

The attached test demonstrates that when a container fails to start due
to a missing container specified in VolumesFrom, it "remembers" a Volume
that worked.

Fixes: #8726

Signed-off-by: Thomas Orozco <thomas@orozco.fr>
2014-11-10 17:32:16 +01:00
unclejack 662ca4114d pkg/symlink: avoid following out of scope
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-11-10 17:57:54 +02:00
shuai-z 1d1b813d25 removed redundant Clean
The doc (or src) says: The result is Cleaned.

http://golang.org/pkg/path/filepath/#Join

Signed-off-by: shuai-z <zs.broccoli@gmail.com>
2014-11-10 17:57:01 +02:00
tobe b92d7cd60d Remove the redundant include_search in mkdocs.yml 2014-11-10 20:23:46 +08:00
James Turnbull e4fe85fc95 Merge pull request #9052 from andreyst/master
Fix typo in Docker Links chapter of User Guide
2014-11-10 00:10:38 -05:00
James Turnbull 1e75c9e8b4 Merge pull request #9057 from andi5/typo-best-practices
Fix mkdir typo in dockerfile_best-practices.md.
2014-11-10 00:10:20 -05:00
James Turnbull 2d30473927 Merge pull request #9029 from ovh/fix/doc
Fix Docker Hub tags list specification
2014-11-10 00:05:34 -05:00
gautam, prasanna 3600bcb531 limiting to 80 chars
Signed-off-by: Prasanna Gautam < prasannagautam@gmail.com >
2014-11-09 19:54:00 -05:00
Andreas Köhler b95f9c10ff Fix mkdir typo in dockerfile_best-practices.md. 2014-11-10 01:00:05 +01:00
Solomon Hykes 32e61b8f5c Move 'hack' to the less confusing 'project'
We might want to break it up into smaller pieces (eg. tools in one
place, documents in another) but let's worry about that later.

Signed-off-by: Solomon Hykes <solomon@docker.com>
2014-11-09 21:50:28 +00:00
Solomon Hykes 4cf0aa711e Move GOVERNANCE.md to hack/
Signed-off-by: Solomon Hykes <solomon@docker.com>
2014-11-09 21:41:13 +00:00
Solomon Hykes 2d688b0a78 In contribution docs, emphasize that bug reports are appreciated!
Signed-off-by: Solomon Hykes <solomon@docker.com>
2014-11-09 21:41:12 +00:00
Solomon Hykes 543127e211 Improve "security reports" section in contribution docs.
Signed-off-by: Solomon Hykes <solomon@docker.com>
2014-11-09 21:41:08 +00:00
Andrey Stolbovsky 932cc23081 Fix typo in Docker Links chapter of User Guide 2014-11-09 23:23:45 +03:00
Prasanna Gautam 22afaa628f Additional info for docker binary
Signed-off-by: Prasanna Gautam <prasannagautam@gmail.com>

I found that certain docker installations do not handle binding to the source directory quite right. Just writing it based on help from backjlack and tibor in IRC.
2014-11-09 10:28:45 -05:00
xuzhaokui 6c79ee7d1e Remove the redundant stripComment.
Signed-off-by: xuzhaokui <cynicholas@gmail.com>
2014-11-09 23:07:44 +08:00
unclejack ef150d023a pkg/namesgenerator: add Yeong-Sil Jang
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-11-08 16:36:41 +02:00
unclejack 6f8e42ac74 execdriver/lxc: add comment to MAINTAINERS
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-11-08 16:27:25 +02:00
unclejack b18efeeb7a Merge pull request #9023 from cyphar/libcontainer-update-to-new-interface
Update vendor'd `libcontainer` and update to use new `user` interface.
2014-11-08 16:17:28 +02:00
Vishnu Kannan 46f2944977 Address comments.
Docker-DCO-1.1-Signed-off-by: Vishnu Kannan <vishnuk@google.com> (github: vishh)
2014-11-08 00:14:08 +00:00
Vishnu Kannan f96e04ffc7 This patch adds ability in docker to detect out of memory conditions in containers.
Since the containers can handle the out of memory kernel kills gracefully, docker
will only provide out of memory information as an additional metadata as part of
container status.
Docker-DCO-1.1-Signed-off-by: Vishnu Kannan <vishnuk@google.com> (github: vishh)
2014-11-08 00:14:08 +00:00
Aleksa Sarai 3ac4aa0d6b *: transition to new libcontainer/user API
This patch fixes the compilation errors in Docker due to changes in the
libcontainer/user API. There is no functionality change due to this
patch.

Signed-off-by: Aleksa Sarai <cyphar@cyphar.com> (github: cyphar)
2014-11-08 10:03:12 +11:00
Aleksa Sarai a10cca257f vendor: update vendor'd libcontainer version
This patch updates the vendor'd libcontainer version, so that Docker can
take advantage of the updates to the `user` API.

Signed-off-by: Aleksa Sarai <cyphar@cyphar.com> (github: cyphar)
2014-11-08 09:57:20 +11:00
Doug Davis 2e482c86bc Use the HTTP Last-Modified http header as the mtime value for ADD cmd when present
Closes #8331

Signed-off-by: Doug Davis <dug@us.ibm.com>
2014-11-07 13:58:05 -08:00
Fred Lifton 480b5e9c62 Revise Docs Maintainers list
Removing Sonat from docs maintainers because he no longer has time to complete all the responsibilities. Many thanks to Sonat for his help.

Docker-DCO-1.1-Signed-off-by: Fred Lifton <fred.lifton@docker.com> (github: fredlf)
2014-11-07 13:13:01 -08:00
Alexandr Morozov 349f67632f Merge pull request #8931 from vbatts/vbatts-mount_pid_mountinfo
pkg/mount: mountinfo from specified pid
2014-11-07 12:04:52 -08:00
Vincent Batts 64e7a1722d pkg/mount: mountinfo from specified pid
Signed-off-by: Vincent Batts <vbatts@redhat.com>
2014-11-07 13:37:23 -05:00
Vincent Giersch c30ccc62e4 Fix Docker Hub tags list specification
The current implementation of the Docker Hub returns a list of objects
containing the tag name and the layer id.

Docker-DCO-1.1-Signed-off-by: Vincent Giersch <vincent.giersch@ovh.net>
2014-11-07 17:16:42 +01:00
Alexandr Morozov fd9c2ae27d Fix deadlock in ps exited filter
Fixes #8909

Signed-off-by: Alexandr Morozov <lk4d4@docker.com>

Conflicts:
	integration-cli/docker_cli_ps_test.go
		fixed merge issue caused by missing tests
2014-11-07 16:35:50 +02:00
unclejack 09c38a8d43 bump fpm to 1.3.2
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-11-07 16:18:53 +02:00
Yohei Ueda dad58737ae Export envvars necessary for unit-test
Signed-off-by: Yohei Ueda <yohei@jp.ibm.com>
2014-11-07 16:54:25 +09:00
Sven Dowideit 6dc11cc992 makes the -s --size option documentation clearer #8950
Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>
2014-11-07 11:56:56 +10:00
Alexandr Morozov b83fc07d88 Not fail on updating parent links
Fixes #8796

Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-11-06 15:30:23 -08:00
Fred Lifton 3afe9dbd24 Merge pull request #8970 from georgexsh/hyphen
unify `–`(en dash) to `-` when specifying options
2014-11-06 14:48:48 -08:00
Alexandr Morozov 734419e9c7 Merge pull request #8711 from duglin/Issue8160
Add import/pull events to the stream
2014-11-06 14:29:02 -08:00
Vincent Batts 318b11f62f btrfs: information for the information gods
Signed-off-by: Vincent Batts <vbatts@redhat.com>
2014-11-06 16:17:10 -05:00
Vivek Goyal 0f57c90245 docker-remove-redundant-json-tags
In previous patch I had introduce json:"-" tags to be on safer side to make
sure certain fields are not marshalled/unmarshalled. But struct fields
starting with small letter are not exported so they will not be marshalled
anyway. So remove json:"-" tags from there.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2014-11-06 15:59:25 -05:00
Doug Davis ef7415258b Add import/pull events to the stream
Closes #8160

Signed-off-by: Doug Davis <dug@us.ibm.com>
2014-11-06 12:12:41 -08:00
Michael Crosby dd62d256cb Merge pull request #8963 from blakery/master
Cleanup: made GetDefaultNetworkMtu private
2014-11-06 12:02:18 -08:00
Michael Crosby 546884fd20 Merge pull request #8977 from LK4D4/vet_fixes
Fix vet errors
2014-11-06 11:59:05 -08:00
Michael Crosby 6a6be5bd5a Merge pull request #8983 from LK4D4/consistent_hosts
Consistent hosts
2014-11-06 11:51:28 -08:00
Alexandr Morozov 048d0c4e84 Test for etchosts consistency
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-11-06 11:36:09 -08:00
Alexandr Morozov 6cbe1fa726 Make /etc/hosts records consistent
Fixes #8972

Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-11-06 11:36:00 -08:00
Michael Crosby 55f9b0c874 Merge pull request #9005 from vbatts/vbatts-devmapper_add_maintainer
devmapper: add vbatts to MAINTAINERS
2014-11-06 11:26:40 -08:00
Vincent Batts 2fbfa29318 devmapper: add vbatts to MAINTAINERS
Signed-off-by: Vincent Batts <vbatts@redhat.com>
2014-11-06 14:06:52 -05:00
Michael Crosby 68a25a5b74 Merge pull request #8988 from crosbymichael/update-libcontainer-nov1
Update libcontainer to fd6df76562137aa3b18e44b790c
2014-11-06 11:02:29 -08:00
Jessie Frazelle a72f3c568b Merge pull request #8990 from duglin/Issue8379a
Make sure that if a container can't start we set the exitcode to non-zero value
2014-11-06 10:44:10 -08:00
Yohei Ueda 5bd5ef5a0a Make test-unit runnable without parallel
Signed-off-by: Yohei Ueda <yohei@jp.ibm.com>
2014-11-07 02:40:13 +09:00
Alexandr Morozov ff911d5f34 Merge pull request #8998 from yoheiueda/dont-remove-tmpdir
Fix the unit test not to remove /tmp
2014-11-06 08:59:02 -08:00
Yohei Ueda 2329354dc3 Fix the unit test not to remove /tmp
Signed-off-by: Yohei Ueda <yohei@jp.ibm.com>
2014-11-07 02:43:59 +09:00
Tianon Gravi b35a0ba81b Merge pull request #8974 from unclejack/bump_fpm
bump fpm to 1.3.2
2014-11-06 09:37:25 -07:00
Jessie Frazelle 6fcc9141d7 Merge pull request #8953 from golubbe/master
Create governance doc and show links to DGAB materials in google doc
2014-11-05 22:13:05 -08:00
Doug Davis 69a5b827dc See #8379 - if the container doesn't start I added code to make sure that if no other processing sets the container.exitCode to a non-zero value when we make sure its done before we return. I also made sure that while trying to start the CMD/ENTRYPOINT, if it fails, then we set the container.exitCode to the exitStatus from the exec().
Closes #8379

Signed-off-by: Doug Davis <dug@us.ibm.com>
2014-11-05 18:23:42 -08:00
Abin Shahab b36bf98174 LXC TEMPLATE WILL CREATE MOUNT
Lxc driver was throwing errors for mounts where the mount point does not exist in the container.
This adds a create=dir/file mount option to the lxc template, to alleviate this issue.

Docker-DCO-1.1-Signed-off-by: Abin Shahab <ashahab@altiscale.com> (github: ashahab-altiscale)
2014-11-06 02:14:03 +00:00
Michael Crosby ed556fb38f Update docker with syncpipe changes
We removed the syncpipe package and replaced it with specific calls to
create a new *os.File from a specified fd passed to the process.  This
reduced code and an extra object to manage the container's init
lifecycle.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2014-11-06 01:14:13 +00:00
Michael Crosby 7f5ebdcaac Update libcontainer to fd6df76562137aa3b18e44b790c
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2014-11-06 01:12:41 +00:00
Sven Dowideit 56261daf32 Merge pull request #8683 from cpuguy83/fix_api_docs
Bring API docs inline with 1.3
2014-11-05 16:34:27 -08:00
Erik Hollensbe a733afb256 Merge pull request #8987 from erikh/exec_stdin_close
Close stdin after execution with `docker exec -i`
2014-11-05 15:42:05 -08:00
Erik Hollensbe 165624062e Close stdin after execution with docker exec -i
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-11-05 15:12:24 -08:00
Vincent Batts e2f8fbfbcc devicemapper: split out devicemapper bindings
This is a first pass at splitting out devicemapper into separate, usable
bindings.

Signed-off-by: Vincent Batts <vbatts@redhat.com>
2014-11-05 18:10:38 -05:00
golubbe d453d8b321 Create GOVERNANCE.md
Information on Governance Advisory Board and associated proposals

Signed-off-by: Ben Golub <ben.golub@docker.com>
2014-11-05 21:48:17 +00:00
Fred Lifton f10fefe408 Merge pull request #8874 from whoshuu/patch-1
Fix apparent copy paste mistake
2014-11-05 12:24:53 -08:00
Vivek Goyal ff56531de4 devmapper: Fix gofmt related build failures
My pull request failed the build due to gofmat issues. I have run gofmt
on specified files and this commit fixes it.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2014-11-05 14:39:54 -05:00
Josh Hawn 059e589c34 Compute TarSum on storage of image layer content
Now, newly created/imported layers will have the checksum of
the layer diff computed and stored in the image json file.

For now, it is not an error if the computed checksum does not
match an existing checksum, only a warning message is logged. The
eventual goal is to use the checksums in the image JSON to verify
the integrity of the layer contents when doing `docker load` or
`docker pull`, and error out if it does not match.

Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)
2014-11-05 10:17:55 -08:00
Alexandr Morozov 18d9f1978b Fix vet errors
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-11-05 08:26:22 -08:00
Daniel, Dao Quang Minh aeeb0d59d3 print everything except progress in non-terminal
Instead of only checking `Progress != nil` (which is always true because
the server sends `"progressDetail":{}` when it doesnt have the progress), we
also check if `Progress.String() != ""`, which should be sufficient to filter
out the progress data.

Docker-DCO-1.1-Signed-off-by: Daniel, Dao Quang Minh <dqminh89@gmail.com> (github: dqminh)
2014-11-05 10:44:31 -05:00
Brian Goff e86223e7b3 Bring API docs inline with 1.3
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2014-11-05 09:38:44 -05:00
Vivek Goyal 8c9e5e5e05 devmapper: Save and restore NextDeviceId in a file
The way thin-pool right now is designed, user space is supposed to keep
track of what device ids have already been used. If user space tries to
create a new thin/snap device and device id has already been used, thin
pool retuns -EEXIST.

Upon receiving -EEXIST, current docker implementation simply tries the
NextDeviceId++ and keeps on doing this till it finds a free device id.

This approach has two issues.

- It is little suboptimal.
- If device id already exists, current kenrel implementation spits out
  a messsage on console.

[17991.140135] device-mapper: thin: Creation of new snapshot 33 of device 3 failed.

Here kenrel is trying to tell user that device id 33 has already been used.
And this shows up for every device id docker tries till it reaches a point
where device ids are not used. So if there are thousands of container and
one is trying to create a new container after fresh docker start, expect
thousands of such warnings to flood console.

This patch saves the NextDeviceId in a file in
/var/lib/docker/devmapper/metadata/deviceset-metadata and reads it back
when docker starts. This way we don't retry lots of device ids which 
have already been used. 

There might be some device ids which are free but we will get back to them
once device numbers wrap around (24bit limit on device ids).

This patch should cut down on number of kernel warnings.

Notice that I am creating a deviceset metadata file which is a global file
for this pool. So down the line if we need to save more data we should be
able to do that.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2014-11-05 09:25:02 -05:00
Vivek Goyal 8e9a18039b devmapper: Export nextDeviceId so that json.Marshal() can operate on it
I was trying to save nextDeviceId to a file but it would not work and
json.Marshal() will do nothing. Then some search showed that I need to
make first letter of struct field capital, exporting this field and
now json.Marshal() works.

This is a preparatory patch for the next one.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2014-11-05 09:25:02 -05:00
Vivek Goyal 67fbd34d83 devmapper: Move file write and rename functionality in a separate function
Currently we save device metadata and have a helper function saveMetadata()
which converts data in json format as well as saves it to file. For
converting data in json format, one needs to know what is being saved.

Break this function down in two functions. One function only has file
write capability and takes in argument about byte array of json data.
Now this function does not have to know what data is being saved. It
only knows about a stream of json data is being saved to a file.

This allows me to reuse this function to save a different type of
metadata. In this case I am planning to save NextDeviceId so that
docker can use this device Id upon next restart. Otherwise docker
starts from 0 which is suboptimal.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2014-11-05 09:25:02 -05:00
Blake Geno cbb88741e4 Removed fixme from utils_test.go
Signed-off-by: Blake Geno <blakegeno@gmail.com>
2014-11-05 08:36:08 -05:00
James Turnbull a61c4dc959 Merge pull request #8876 from whoshuu/docpatch-2
Remove out-of-context code block
2014-11-05 10:52:50 +01:00
unclejack 03f67aa46a bump fpm to 1.3.2
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-11-05 10:12:57 +02:00
unclejack 662efd95c7 Merge pull request #8577 from vbatts/vbatts-registry_certs
registry: don't iterate through certs
2014-11-05 09:46:24 +02:00
James Turnbull 387c892126 Merge pull request #8915 from gDD/patch-1
Remove extra line feed typo
2014-11-05 08:22:09 +01:00
James Turnbull 49ecc499d7 Merge pull request #8908 from medimatrix/patch-1
Grammatical mistake in docs
2014-11-05 08:21:00 +01:00
George Xie c81337d5db unify (en dash) to - when specifying options
Signed-off-by: Xie Shi <georgexsh@gmail.com>
2014-11-05 13:50:59 +08:00
Josh Hawn a7aa2c8ad2 Finalize TarSum Version 1 w/ refactor
The current Dev version of TarSum includes hashing of extended
file attributes and omits inclusion of modified time headers.

I refactored the logic around the version differences to make it
more clear that the difference between versions is in how tar
headers are selected and ordered.

TarSum Version 1 is now declared with the new Dev version continuing
to track it.

Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)
2014-11-04 21:38:52 -08:00
Sven Dowideit 0d513b5a84 Merge pull request #8900 from nhsiehgit/updatefooter
Updatefooter
2014-11-04 17:14:58 -08:00
Tibor Vass b79211f4ae Merge pull request #8345 from duglin/Issue5184
Add a better error message when we get an unknown http issue
2014-11-04 20:07:41 -05:00
Doug Davis 6fdaa66652 Add a better error message when we get an unknown http issue
Closes #5184

Signed-off-by: Doug Davis <dug@us.ibm.com>
2014-11-04 16:46:41 -08:00
Sven Dowideit 098ccba6bd Merge pull request #8892 from fredlf/relnotes-edit
Edits and refinements to 1.3.1 release notes.
2014-11-04 16:43:07 -08:00
Blake Geno 224999d9c2 made getDefaultNetworkMtu private
Signed-off-by: Blake Geno <blakegeno@gmail.com>
2014-11-04 18:53:34 -05:00
Nathan Hsieh ebeccee968 Updated footer to match rest of site
Signed-off-by: Nathan Hsieh <hsieh.nathan@gmail.com>
2014-11-04 15:28:38 -08:00
Alexandr Morozov e621f99923 Add check for IP_NF_FILTER
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-11-04 14:47:13 -08:00
Tianon Gravi c478143ec0 Merge pull request #8404 from danjpgriffin/master
Preserve extended attributes and acls on archlinux build
2014-11-04 14:14:10 -07:00
Vincent Batts a368e064a9 registry: don't iterate through certs
the golang tls.Conn does a fine job of that.
http://golang.org/src/pkg/crypto/tls/handshake_client.go?#L334

Signed-off-by: Vincent Batts <vbatts@redhat.com>
2014-11-04 16:12:23 -05:00
Tianon Gravi 14e65b4f81 Merge pull request #8936 from jfrazelle/drone-server
Switch Travis for Drone
2014-11-04 11:18:39 -07:00
Tianon Gravi c6cf978b4b Merge pull request #8700 from unclejack/install_no_pull
contrib/install.sh: remove pull of hello-world
2014-11-04 10:28:43 -07:00
Solomon Hykes 59d4161f69 Merge pull request #8950 from Bertg/patch-1
makes the -s --size option documentation clearer
2014-11-04 09:09:15 -08:00
unclejack f9d80712d9 contrib/install.sh: remove pull of hello-world
This removes the pull of the hello-world image from install.sh to
address privacy concerns.

Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-11-04 19:05:47 +02:00
Alexandr Morozov b8678aa7f5 Merge pull request #8946 from unclejack/stream_decode
Decode JSON to avoid ReadFile
2014-11-04 09:02:40 -08:00
Bert Goethals 762ffda95d makes the -s --size option documentation clearer 2014-11-04 17:49:39 +01:00
Jessie Frazelle a34f31b488 Merge pull request #8871 from tonistiigi/start-wait-hijack
Wait for hijack on docker start command
2014-11-04 08:46:56 -08:00
Tibor Vass fa59fe997c Merge pull request #8877 from erikh/proxy_error_check
proxy: Fix a potential panic handling error states.
2014-11-04 11:40:02 -05:00
Tibor Vass 6718791ea2 Merge pull request #8813 from jlhawn/aufs_exclude_on_tar_layer
Exclude `.wh..wh.*` AUFS metadata on layer export
2014-11-04 11:38:12 -05:00
Arnaud Porterie edae8830a9 Merge pull request #8906 from dqminh/remove-copy-directory
change util.CopyDirectory to archive.CopyWithTar
2014-11-04 08:02:35 -08:00
Alexandr Morozov 9eb8fcd58a Merge pull request #8390 from MalteJ/set-macaddress
Adding docker-cli run param to set MAC address
2014-11-04 07:54:59 -08:00
Malte Janduda 28605bc4d5 enhancing set-macaddress docu #2
Signed-off-by: Malte Janduda <mail@janduda.net>
2014-11-04 15:19:47 +01:00
unclejack f665be55fe volume: stream JSON & Decode
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-11-04 16:15:07 +02:00
unclejack 4dbbe4f51a image: stream img JSON & Decode in LoadImage
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-11-04 16:15:00 +02:00
unclejack 4bc28f4e6b daemon/container: stream & decode JSON
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-11-04 16:14:47 +02:00
Sven Dowideit b68d7d39bc Merge pull request #8924 from pdericson/api-doc-fix
Fix typo in api docs: stdou -> stdout
2014-11-03 23:09:16 -08:00
shuai-z 4c97832297 fixed the way of iterating over the range of map.
Fixed the following errors:
1. Request(0) causes a dead loop when the map is full and map.last == BEGIN.
2. When map.last is the only available port (or ip), Request(0) returns ErrAllPortsAllocated (or ErrNoAvailableIPs). Exception is when map.last == BEGIN.

Signed-off-by: shuai-z <zs.broccoli@gmail.com>
2014-11-04 13:46:53 +08:00
Patrick Hemmer 95a400e6e1 Support hairpin NAT
This re-applies commit b39d02b with additional iptables rules to solve the issue with containers routing back into themselves.

The previous issue with this attempt was that the DNAT rule would send traffic back into the container it came from. When this happens you have 2 issues.
1) reverse path filtering. The container is going to see the traffic coming in from the outside and it's going to have a source address of itself. So reverse path filtering will kick in and drop the packet.
2) direct return mismatch. Assuming you turned reverse path filtering off, when the packet comes back in, it's goign to have a source address of itself, thus when the reply traffic is sent, it's going to have a source address of itself. But the original packet was sent to the host IP address, so the traffic will be dropped because it's coming from an address which the original traffic was not sent to (and likely with an incorrect port as well).

The solution to this is to masquerade the traffic when it gets routed back into the origin container. However for this to work you need to enable hairpin mode on the bridge port, otherwise the kernel will just drop the traffic.
The hairpin mode set is part of libcontainer, while the MASQ change is part of docker.

This reverts commit 63c303eecd.

Docker-DCO-1.1-Signed-off-by: Patrick Hemmer <patrick.hemmer@gmail.com> (github: phemmer)
2014-11-03 23:09:08 -05:00
Vincent Batts 91b4ac320f pkg/mount: include optional field
one linux, the optional field designates the sharedsubtree information,
if any.

Signed-off-by: Vincent Batts <vbatts@redhat.com>
2014-11-03 22:05:04 -05:00
Tibor Vass 5b03a21963 Merge pull request #8799 from jlhawn/remove_jsondata_arg
Remove `jsonData` argument from `image.StoreImage`
2014-11-03 20:55:40 -05:00
Jessica Frazelle 4b4b88a873 Switch travis status to drone.
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-11-03 17:48:50 -08:00
Jessica Frazelle 471adb73a9 Remove travis CI.
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-11-03 17:46:33 -08:00
Josh Hawn 26184de8ab Remove jsonData argument from image.StoreImage
The argument specified the json data to save to disk when registering
a new image into the image graph. If it is nil, then the given image
is serialized to json and that is written by default. This default
behavior is sufficient if the given image was originally deserialzed
from this jsonData to begin with which has always been the case.

Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)
2014-11-03 17:39:21 -08:00
Tibor Vass 54d6d12556 Merge pull request #8863 from vbatts/vbatts-archive_stat
./pkg/archive: clean up Stat_t assertion
2014-11-03 19:14:39 -05:00
Tibor Vass b8ab729ae6 Merge pull request #8590 from jfrazelle/8307-iptables-d-restart-fix
On daemon shutdown iptables cleanup successfully
2014-11-03 18:29:51 -05:00
Fred Lifton 06f366bf00 Added missing item from Changelog
Docker-DCO-1.1-Signed-off-by: Fred Lifton <fred.lifton@docker.com> (github: fredlf)
2014-11-03 13:51:51 -08:00
Fred Lifton 1a1b0f223d Edits and refinements to 1.3.1 release notes.
Docker-DCO-1.1-Signed-off-by: Fred Lifton <fred.lifton@docker.com> (github: fredlf)
2014-11-03 13:50:42 -08:00
Michael Crosby a7dea37b78 Merge pull request #8901 from dmcgowan/v2_registry_mirror_check
Skip V2 registry and immediately fallback to V1 when mirrors are provided
2014-11-03 13:37:55 -08:00
Tibor Vass a85f58719f Merge pull request #8739 from duglin/CleanupDockerIgnores
Do some cleanup on .dockerignore paths
2014-11-03 16:05:24 -05:00
Tibor Vass 38d3888194 Merge pull request #8932 from duglin/UpdateLogrus
Update logrus to the latest so we can use ParseLevel() for PR #8335
2014-11-03 16:00:22 -05:00
Fred Lifton 8872c2903a Merge pull request #8907 from icecrime/clarify_user_instruction_doc
Clarify USER instruction documentation
2014-11-03 11:58:56 -08:00
Doug Davis a12d897394 Update logrus to v0.6.0 so we can use ParseLevel() for PR #8335
Signed-off-by: Doug Davis <dug@us.ibm.com>
2014-11-03 11:57:30 -08:00
Michael Crosby 025363848b Merge pull request #8927 from bfirsh/dont-pass-args-to-help-when-command-doesnt-exist
Fix help text being incorrect with multiple args
2014-11-03 11:23:57 -08:00
Michael Crosby 9ef9bfd151 Merge pull request #8929 from LK4D4/fix_filter_hang
Fix deadlock in ps exited filter
2014-11-03 11:07:24 -08:00
Vincent Batts 0e217c4a9e pkg/mount: adding fields supported by freebsd
Signed-off-by: Vincent Batts <vbatts@redhat.com>
2014-11-03 14:01:50 -05:00
Alexandr Morozov 03ea2166b6 Fix deadlock in ps exited filter
Fixes #8909

Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-11-03 10:51:03 -08:00
Fred Lifton 0e4bf159a2 Merge pull request #8928 from tianon/not-200-chars-anymore
Update "official repos" doc to mention 100 char short desc limit
2014-11-03 10:05:39 -08:00
Tianon Gravi 693b9d335c Update "official repos" doc to mention 100 char short desc limit
The Hub no longer accepts short descriptions over 100 characters.

Signed-off-by: Andrew Page <admwiggin@gmail.com>
2014-11-03 10:12:05 -07:00
Ben Firshman ef004ec03f Fix help text being incorrect with multiple args
E.g. "docker foobar run" would have printed "Command not found:
foobar" and printed the help text for "run". It should instead
print the root help message for docker.

Signed-off-by: Ben Firshman <ben@firshman.co.uk>
2014-11-03 16:46:01 +00:00
Peter Ericson 4437573c96 Fix typo in api docs: stdou -> stdout 2014-11-03 10:52:50 +00:00
Malte Janduda 971fc2253a enhancing set-macaddress docu
Signed-off-by: Malte Janduda <mail@janduda.net>
2014-11-03 11:43:27 +01:00
Doug Davis c0f0f5c988 Do some cleanup on .dockerignore paths
While working on the fix for #8330 I noticed a few things:
1 - the split() call for the .dockerignore process will generate a blank
    "exclude".  While this isn't causing an issue right now, I got worried
	that in the future some code later on might interpret "" as something bad,
	like "everything" or ".".  So I added a check for an empty "exclude"
	and skipped it
2 - if someone puts "foo" in their .dockerignore then we'll skip "foo".
    However, if they put "./foo" then we won't due to the painfully
	simplistic logic of go's filepath.Match algorithm.  To help things
	a little (and to treat ./Dockerfile just like Dockerfile) I added
	code to filepath.Clean() each entry in .dockerignore.  It should
	result in the same semantic path but ensure that no matter how the
	user expresses the path, we'll match it.

Signed-off-by: Doug Davis <dug@us.ibm.com>
2014-11-02 11:29:46 -08:00
Mengdi Gao 795533ede7 Remove extra line feed typo
The removed extra line feed broke the paragraph at https://docs.docker.com/userguide/dockerizing/
2014-11-02 22:55:36 +08:00
Médi-Rémi Hashim d22d32d61f Grammatical mistake in docs
Change `The team can now use this image by run their own containers.` to `The team can now use this image by running their own containers.`
2014-11-01 21:22:43 +00:00
Arnaud Porterie de9bf24750 Clarify USER instruction documentation
Reuse WORKDIR wording to specify that the USER instructions affect the
following RUN, CMD, and ENTRYPOINT instructions.

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
2014-11-01 14:04:51 -07:00
Daniel, Dao Quang Minh e5ecfd3b17 change util.CopyDirectory to archive.CopyWithTar
Docker-DCO-1.1-Signed-off-by: Daniel, Dao Quang Minh <dqminh89@gmail.com> (github: dqminh)
2014-11-01 12:23:08 -04:00
Vladimir Bulyga f12b7b4bc2 allow to use x-registry-auth header with enabled cors
Signed-off-by: Vladimir Bulyga <xx@ccxx.cc>
2014-11-01 19:22:28 +03:00
Malte Janduda f2df38050e Adding docker-cli run param to set MAC address
Signed-off-by: Malte Janduda <mail@janduda.net>
2014-11-01 15:35:09 +01:00
Derek McGowan 9d6391a9eb Skip V2 registry and immediately fallback to V1 when mirrors are provided
Since V2 registry does not yet implement mirrors, when mirrors are given automatically fallback to V1 without checking V2 first.

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2014-10-31 18:10:48 -07:00
Fred Lifton 4d4a7b81bf Merge pull request #8884 from thomasleveil/userguide-so26652877
Reword a sentence bringing confusion about docker links
2014-10-31 17:09:16 -07:00
Jessie Frazelle 92bb497201 Merge pull request #8167 from brahmaroutu/expose_ports_1834
adding support for port ranges on --expose
2014-10-31 16:20:08 -07:00
Srini Brahmaroutu fd774a818c adding support for port ranges on --expose
Closes #1834

Signed-off-by: Srini Brahmaroutu <srbrahma@us.ibm.com>
2014-10-31 23:06:30 +00:00
Jessie Frazelle 9cc71b4597 Merge pull request #8468 from laktek/master
Fix URL check in build from Git.
2014-10-31 14:43:21 -07:00
Michael Crosby 7cb12133ae Merge pull request #8818 from coolljt0725/fix_exec_help
Fix docker exec help messages.
2014-10-31 14:36:01 -07:00
Michael Crosby a92393bb17 Merge pull request #8878 from thaJeztah/patch-1
Typo in 1.3.1 change log
2014-10-31 14:32:25 -07:00
Jessie Frazelle 058aa0cbc2 Merge pull request #8894 from vieux/fix_docs_filter
add missing 'current filter' to ps
2014-10-31 14:26:29 -07:00
Jessie Frazelle 7a2dc8b889 Merge pull request #8895 from erikh/proxy_udp_size
pkg/proxy: Bump the maximum size of a UDP packet.
2014-10-31 13:11:54 -07:00
Vincent Batts 7a3a938712 pkg/mount: testing for linux sharedsubtree mounts
* shared
* shared/slave
* unbindable
* private

Signed-off-by: Vincent Batts <vbatts@redhat.com>
2014-10-31 15:31:34 -04:00
Erik Hollensbe 5a73be8e9f pkg/proxy: Bump the maximum size of a UDP packet.
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-10-31 18:56:07 +00:00
Victor Vieux f95d73dfd4 add missing 'current filter' to ps
Signed-off-by: Victor Vieux <vieux@docker.com>
2014-10-31 18:28:10 +00:00
Michael Crosby 0f9f5f3fdf Merge pull request #8839 from irachex/dns-search-doc
Add docs for --dns-search=.
2014-10-31 11:25:57 -07:00
Vincent Batts 06bd66a1f8 pkg/mount: add more sharesubtree options
Signed-off-by: Vincent Batts <vbatts@redhat.com>
2014-10-31 13:29:35 -04:00
Thomas LEVEIL 906985123a Reword a sentence bringing confusion about docker links
As [discovered][1] doing user support, the sentence `You've learned that a link creates a
source container that can provide information about itself to a recipient container` brings
confusion.

[1]: http://stackoverflow.com/questions/26652877/how-to-avoid-redundant-container-linking-in-docker-when-propagating-ip-addresses/26654203?noredirect=1#comment41945048_26654203

Signed-off-by: Thomas LEVEIL <thomasleveil@gmail.com>
2014-10-31 13:00:59 +00:00
Sebastiaan van Stijn 29965246a7 Typo in 1.3.1 change log
Replaced envrionment -> environment

Signed-off-by: Sebastiaan van Stijn <thaJeztah@users.noreply.github.com>
2014-10-31 08:31:20 +01:00
Erik Hollensbe ad5b307d0f proxy: Fix a potential panic handling error states.
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-10-31 04:20:26 +00:00
Huu Nguyen 8453cf0671 Remove out-of-context code block
Signed-off-by: Huu Nguyen <whoshuu@gmail.com>
2014-10-30 23:58:14 -04:00
Huu Nguyen b16f3736ed Fix apparent copy paste mistake
The note under the RUN header refers to the CMD instruction. It should refer to the RUN instruction instead.

Signed-off-by: Huu Nguyen <whoshuu@gmail.com>
2014-10-30 23:22:51 -04:00
Huayi Zhang eaa050fdb8 Mapping change in code
Signed-off-by: Huayi Zhang <irachex@gmail.com>
2014-10-31 09:57:54 +08:00
Sven Dowideit 107898a773 Merge pull request #8837 from sawalls/patch-2
ubuntulinux.md - old commands, typo, section movement
2014-10-30 18:48:24 -07:00
Lei Jitang d8b17d785a Fix docker exec command help messages
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2014-10-31 09:36:07 +08:00
Fred Lifton c2ff42552a Merge pull request #8873 from SvenDowideit/de-cleanup-Dockerfile
Yes, the review really should have picked up this spelling mistake
2014-10-30 18:32:28 -07:00
Scott Walls bc62a35ffb ubuntulinux.md - old commands, typo, section movement
- Removed some commands related to autocomplete/symlinks that don't seem to be required anymore on Ubuntu 14.04
- Fixed one minor typo ("see LINK _for_ details," not "see LINK details")
- Moved section "Giving non-root access" to top level, rather than being under Ubuntu 13 (the section isn't specific to Ubuntu 13, and even references Ubuntu 14).

Signed-off-by: Scott Walls <sawalls@umich.edu>
2014-10-30 18:28:37 -07:00
Sven Dowideit bfe21f095d Yes, the review really should have picked up this spelling mistake
Docker-DCO-1.1-Signed-off-by: Sven Dowideit <SvenDowideit@docker.com> (github: SvenDowideit)
2014-10-31 11:10:17 +10:00
Jessie Frazelle f68b8b33e6 Merge pull request #8850 from shuai-z/clean-mount
Clear the internal state before raising error.
2014-10-30 18:01:01 -07:00
Jessie Frazelle aca253d6d0 Merge pull request #8866 from tonistiigi/fix-8832-logs-panic
Fix panic on slow log consumer.
2014-10-30 17:40:46 -07:00
Jessie Frazelle 793fb26bff Merge pull request #8510 from hqhq/graphdriver_bug
daemon: resolve the graphdriver to show
2014-10-30 17:40:30 -07:00
Tibor Vass 6d6dc2c1a1 Merge pull request #8870 from tiborvass/merge_release_v1.3.1
Merge release v1.3.1
2014-10-30 20:24:34 -04:00
Tibor Vass b9fcdb8191 Change version to 1.3.1-dev
Signed-off-by: Tibor Vass <teabee89@gmail.com>
2014-10-30 19:45:07 -04:00
Tibor Vass 4a17e6eedd Bump to version v1.3.1
Signed-off-by: Tibor Vass <teabee89@gmail.com>

Conflicts:
	VERSION
2014-10-30 19:44:54 -04:00
Tibor Vass 05c18a2434 Fix login command
Signed-off-by: Tibor Vass <teabee89@gmail.com>
2014-10-30 19:44:44 -04:00
Tibor Vass e43d9f713e Docs edits for dropping SSLv3 and under + release notes for 1.3.1
Signed-off-by: Tibor Vass <teabee89@gmail.com>

Conflicts:
	docs/sources/index.md

Conflicts:
	docs/sources/index.md
2014-10-30 19:44:42 -04:00
Tibor Vass 6a1ff022b0 Do not verify certificate when using --insecure-registry on an HTTPS registry
Signed-off-by: Tibor Vass <teabee89@gmail.com>

Conflicts:
	registry/registry.go
	registry/registry_test.go
	registry/service.go
	registry/session.go

Conflicts:
	registry/endpoint.go
	registry/registry.go
2014-10-30 19:44:09 -04:00
Michael Crosby afade4236d Don't hard code true for auth job
Signed-off-by: Michael Crosby <michael@docker.com>

Conflicts:
	registry/service.go
2014-10-30 19:41:55 -04:00
Michael Crosby 48f7384d63 Expand documentation for --insecure-registries
Signed-off-by: Michael Crosby <michael@docker.com>
2014-10-30 19:41:55 -04:00
Michael Crosby f29b2e48eb Refactor IsSecure change
Fix issue with restoring the tag store and setting static configuration
from the daemon. i.e. the field on the TagStore struct must be made
internal or the json.Unmarshal in restore will overwrite the insecure
registries to be an empty struct.

Signed-off-by: Michael Crosby <michael@docker.com>

Conflicts:
	graph/pull.go
	graph/push.go
	graph/tags.go
2014-10-30 19:41:55 -04:00
unclejack 380c8320a7 make http usage for registry explicit
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)

Conflicts:
	daemon/config.go
	daemon/daemon.go
	graph/pull.go
	graph/push.go
	graph/tags.go
	registry/registry.go
	registry/service.go
2014-10-30 19:41:55 -04:00
Victor Vieux 28af4a1efb Merge pull request #8867 from vbatts/vbatts-relocate_mount_operation
mount: move the MakePrivate to pkg/mount
2014-10-30 16:39:20 -07:00
Tonis Tiigi 79a77a396e Wait for hijack on docker start command
With current implementation there was a possibility
that /start responds quicker than /attach, meaning that
some output would be clipped.

Fixed so the implementation matches with `docker run`.

This also fixes the flaky test results for TestCreateEchoStdout.

Signed-off-by: Tõnis Tiigi <tonistiigi@gmail.com> (github: tonistiigi)
2014-10-31 01:13:31 +02:00
Vincent Batts 930a756ad5 mount: move the MakePrivate to pkg/mount
The logic is unrelated to graphdriver.

Signed-off-by: Vincent Batts <vbatts@redhat.com>
2014-10-30 17:04:56 -04:00
Vincent Batts 5e02468e76 ./pkg/archive: clean up Stat_t assertion
inspired by @tonistiigi comment
(https://github.com/docker/docker/pull/8046/files#r19579960)

Signed-off-by: Vincent Batts <vbatts@redhat.com>
2014-10-30 16:50:33 -04:00
Tonis Tiigi c2cf97a074 Fix panic on slow log consumer.
Fixes #8832

All stdio streams need to finish writing before the
connection can be closed.

Signed-off-by: Tõnis Tiigi <tonistiigi@gmail.com> (github: tonistiigi)
2014-10-30 22:24:57 +02:00
Fred Lifton c3762c3abf Merge pull request #8822 from wilsaj/patch-2
Update host integration article
2014-10-30 12:19:36 -07:00
Michael Crosby d0197f4f7e Merge pull request #8856 from unclejack/reexec_pkg
pkg/reexec: move reexec code to a new package
2014-10-30 12:14:37 -07:00
Tonis Tiigi 417e48e4a0 Generalize consumeSlow and add stop support
Signed-off-by: Tõnis Tiigi <tonistiigi@gmail.com> (github: tonistiigi)
2014-10-30 21:11:33 +02:00
Tonis Tiigi 8a81c46272 Move consumeSlow() under test utils
Signed-off-by: Tõnis Tiigi <tonistiigi@gmail.com> (github: tonistiigi)
2014-10-30 20:55:08 +02:00
Andy Wilson 9542ea7218 doc: Update host integration article
Update for changes in docker 1.2. Running the docker daemon with "-r=false" has been deprecated in favor of per-container restart policies.

Signed-off-by: wilsaj <wilson.andrew.j+github@gmail.com>
2014-10-30 13:39:45 -05:00
Tibor Vass 86292adbd9 Merge pull request #8861 from tiborvass/bump_v1.3.1
Bump v1.3.1
2014-10-30 12:43:43 -04:00
Tibor Vass 4e9bbfa900 Bump to version v1.3.1
Signed-off-by: Tibor Vass <teabee89@gmail.com>
2014-10-30 09:44:46 -04:00
Tibor Vass e6efbd6596 Fix login command
Signed-off-by: Tibor Vass <teabee89@gmail.com>
2014-10-30 09:17:11 -04:00
Erik Hollensbe 9fc8b7f4e1 builder: Restore /bin/sh handling in CMD when entrypoint is specified with JSON
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-10-30 09:17:11 -04:00
Erik Hollensbe 463297ffe9 builder: whitelist verbs useful for environment replacement.
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-10-30 09:17:11 -04:00
Erik Hollensbe 2dac82eb82 builder: handle escapes without swallowing all of them.
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-10-30 09:17:11 -04:00
Erik Hollensbe 7f8cdeb18b builder: some small fixups + fix a bug where empty entrypoints would not override inheritance.
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-10-30 09:17:11 -04:00
Huayi Zhang 36ffbd7acf Add docs for --dns-search=.
PR 6720 introduce that use `--dns-search=.` will not set `search` in `/etc/resolv.conf`.

Signed-off-by: Huayi Zhang <irachex@gmail.com>
2014-10-30 21:04:35 +08:00
unclejack acd64278f1 pkg/reexec: move reexec code to a new package
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-10-30 14:48:30 +02:00
James Turnbull b63a254522 Merge pull request #8747 from SvenDowideit/lets-tell-them-more-about-exec
Add a link to some documentation about exec.
2014-10-30 07:56:55 -04:00
shuai-z 05ff40b07a Clear the internal state ourselves before raising error.
If we need to raise an error, make sure the internal state is clean, because
a successful driver.Get() may have its internal state changed (eg. counting,
or mounts), while callers will only do that after a succussful Mount().

Signed-off-by: shuai-z <zs.broccoli@gmail.com>
2014-10-30 13:31:19 +08:00
Sven Dowideit 74564e51ad Merge pull request #8500 from fredlf/style-guide
Adds new Docs Style Guide.
2014-10-29 17:26:29 -07:00
Fred Lifton 461d33eeb0 Adds new Docs Style Guide.
Includes changes to mkdocs yml and removes style info from docs Read Me, adding a link instead.

Docker-DCO-1.1-Signed-off-by: Fred Lifton <fred.lifton@docker.com> (github: fredlf)

Conflicts:
	docs/README.md

Revisions to style guide based on review.

Docker-DCO-1.1-Signed-off-by: Fred Lifton <fred.lifton@docker.com> (github: fredlf)

More Style Guide revisions based on review.

Docker-DCO-1.1-Signed-off-by: Fred Lifton <fred.lifton@docker.com> (github: fredlf)

A few more style guide copy edits

Docker-DCO-1.1-Signed-off-by: Fred Lifton <fred.lifton@docker.com> (github: fredlf)
2014-10-29 16:43:58 -07:00
Victor Vieux 265a89a605 Merge pull request #8387 from vbatts/vbatts-registry_test_enpoint
registry/endpoint: make it testable
2014-10-29 13:36:17 -07:00
unclejack 73057168fa Merge pull request #8046 from vbatts/vbatts-archive_preserve_hard_links
archive: preserve hardlinks in Tar and Untar
2014-10-29 22:04:23 +02:00
Jessie Frazelle 565340c90c Merge pull request #8669 from monsterzz/8668-dualstack-registry
Use dual-stack Dialer when talking to registy
2014-10-29 12:03:12 -07:00
Vincent Batts f14a9ed011 archive: cleanup and more information
Signed-off-by: Vincent Batts <vbatts@redhat.com>
Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2014-10-29 14:52:59 -04:00
Vincent Batts f710a8d774 archive: example app for diffing directories
By default is a demo of file differences, but can be used to create a
tar of changes between an old and new path.

Signed-off-by: Vincent Batts <vbatts@redhat.com>
Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2014-10-29 14:52:59 -04:00
Vincent Batts f9f8044363 archive: preserve hardlinks in Tar and Untar
* integration test for preserving hardlinks

Signed-off-by: Vincent Batts <vbatts@redhat.com>
Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2014-10-29 14:52:52 -04:00
Jessie Frazelle f936a10d80 Merge pull request #8571 from ncdc/3631-stdout-premature-eof
Fix stdout premature EOF
2014-10-29 11:36:32 -07:00
Jessica Frazelle e171eda998 fix for iptables cleanup 8307
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-10-29 10:59:20 -07:00
Jessica Frazelle d98b117962 Add test for #8307.
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-10-29 10:59:20 -07:00
Tibor Vass 006d2334d1 Merge pull request #8846 from LK4D4/fix_compilation
Fix compilation issue bringed by #8319
2014-10-29 12:50:53 -04:00
Alexandr Morozov 4da2572424 Fix compilation issue bringed by #8319
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-10-29 09:31:35 -07:00
Jessie Frazelle fd19e473fc Merge pull request #8319 from MalteJ/ipv6-ipallocator
Implementing IPv6 functionality for ipallocator
2014-10-29 09:20:52 -07:00
decadent ed5e776a22 Updated the COPY directive reference: Source can't be a URL for COPY (+ formatting error fixes)
Signed-off-by: Roman Dudin <katrmr@gmail.com>
2014-10-29 12:36:38 +03:00
Sven Dowideit 7d538542ca Merge pull request #8790 from cloojure/patch-2
Update faq.md
2014-10-28 19:55:00 -07:00
Sven Dowideit f1ddda6cf7 Merge pull request #8808 from nhsiehgit/dockerfiletut
changed dockerfile back button to look nicer
2014-10-28 19:41:18 -07:00
Tibor Vass 290222c3dd Merge pull request #8352 from zachborboa/patch-1
Fix typo
2014-10-28 22:39:05 -04:00
Solomon Hykes f0327c99dd Merge pull request #8198 from jfrazelle/add-jessie-to-various-maintainers
Adding self to various maintainers files.
2014-10-28 19:35:28 -07:00
James Turnbull e11dd26a6c Merge pull request #8734 from alex/patch-2
Replace fast with quickly
2014-10-28 22:11:43 -04:00
Sven Dowideit 90221e28d6 Merge pull request #8646 from ndeloof/patch-3
Update docker_remote_api.md
2014-10-28 19:08:55 -07:00
James Turnbull 75ae546377 Merge pull request #8750 from matm/patch-2
dockerimages.md: typo fix
2014-10-28 22:04:43 -04:00
James Turnbull 01454a50cc Merge pull request #8762 from fredlf/tutorial-tweaks
Tweaks to Dockerfile tutorial
2014-10-28 22:04:23 -04:00
Michael Crosby 9d65017069 Merge pull request #8836 from jfrazelle/hub-login-error
Fix error on successful login.
2014-10-28 18:09:17 -07:00
Jessica Frazelle 35703d4f0c Fix error on successful login.
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-10-28 17:42:03 -07:00
Alexandr Morozov 674e11183a Merge pull request #8833 from jfrazelle/revert-gccgo-changes
Revert gccgo changes
2014-10-28 16:44:39 -07:00
Jessica Frazelle 7041eb00be Revert "finally, use code generation for INITSHA1 & INITPATH too"
This reverts commit c7c620dd9f.

Conflicts:
	.gitignore
	hack/make.sh
	hack/make/dynbinary

Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-10-28 16:29:01 -07:00
Jessica Frazelle ec1420cc2b Revert "use code generation for GITCOMMIT/VERSION too"
This reverts commit 85744a35de.

Conflicts:
	.gitignore
	hack/make.sh

Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-10-28 16:27:23 -07:00
Sven Dowideit 321c85d03d Merge pull request #8717 from yosifkit/docs-dockerfile
Cleanup docs Dockerfile, so it matches best practices.
2014-10-28 16:25:50 -07:00
Jessica Frazelle 17e0a15386 Revert "Use code generation to set IAMSTATIC instead of -X"
This reverts commit 3e10b93106.

Conflicts:
	.gitignore
	hack/make.sh
	hack/make/dynbinary

Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-10-28 16:25:50 -07:00
Michael Crosby d176d1bfb4 Merge pull request #8828 from crosbymichael/update-libcontainer-oct4
Update libcontainer to f60d7b9195f8dc0b5d343abbc3293d
2014-10-28 16:14:28 -07:00
Michael Crosby 622e100553 Update libcontainer f60d7b9195f8dc0b5d343abbc3293d
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2014-10-28 22:19:01 +00:00
Jessie Frazelle eb1b785e67 Merge pull request #8772 from aluzzardi/docker-info-mem-cpu
Expose # of CPUs and memory available on docker info.
2014-10-28 14:14:10 -07:00
Nathan Hsieh 7597f27276 changed dockerfile back button to look nicer
Signed-off-by: Nathan Hsieh <hsieh.nathan@gmail.com>
2014-10-28 11:52:49 -07:00
Josh Hawn 0d97e082c3 Exclude .wh..wh.* AUFS metadata on layer export
In an effort to make layer content 'stable' between import
and export from two different graph drivers, we must resolve
an issue where AUFS produces metadata files in its layers
which other drivers explicitly ignore when importing.

The issue presents itself like this:

    - Generate a layer using AUFS
    - On commit of that container, the new stored layer contains
      AUFS metadata files/dirs. The stored layer content has some
      tarsum value: '1234567'
    - `docker save` that image to a USB drive and `docker load`
      into another docker engine instance which uses another
      graph driver, say 'btrfs'
    - On load, this graph driver explicitly ignores any AUFS metadata
      that it encounters. The stored layer content now has some
      different tarsum value: 'abcdefg'.

The only (apparent) useful aufs metadata to keep are the psuedo link
files located at `/.wh..wh.plink/`. Thes files hold information at the
RW layer about hard linked files between this layer and another layer.
The other graph drivers make sure to copy up these psuedo linked files
but I've tested out a few different situations and it seems that this
is unnecessary (In my test, AUFS already copies up the other hard linked
files to the RW layer).

This changeset adds explicit exclusion of the AUFS metadata files and
directories (NOTE: not the whiteout files!) on commit of a container
using the AUFS storage driver.

Also included is a change to the archive package. It now explicitly
ignores the root directory from being included in the resulting tar archive
for 2 reasons: 1) it's unnecessary. 2) It's another difference between
what other graph drivers produce when exporting a layer to a tar archive.

Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)
2014-10-28 10:14:05 -07:00
Tibor Vass 3d287811d7 Docs edits for dropping SSLv3 and under + release notes for 1.3.1
Signed-off-by: Tibor Vass <teabee89@gmail.com>

Conflicts:
	docs/sources/index.md
2014-10-28 10:42:30 -04:00
Alexander Larsson 453552c838 Add overlayfs graph backend
This backend uses the overlayfs union filesystem for containers
plus hard link file sharing for images.

Each container/image can have a "root" subdirectory which is a plain
filesystem hierarchy, or they can use overlayfs.

If they use overlayfs there is a "upper" directory and a "lower-id"
file, as well as "merged" and "work" directories. The "upper"
directory has the upper layer of the overlay, and "lower-id" contains
the id of the parent whose "root" directory shall be used as the lower
layer in the overlay. The overlay itself is mounted in the "merged"
directory, and the "work" dir is needed for overlayfs to work.

When a overlay layer is created there are two cases, either the
parent has a "root" dir, then we start out with a empty "upper"
directory overlaid on the parents root. This is typically the
case with the init layer of a container which is based on an image.
If there is no "root" in the parent, we inherit the lower-id from
the parent and start by making a copy if the parents "upper" dir.
This is typically the case for a container layer which copies
its parent -init upper layer.

Additionally we also have a custom implementation of ApplyLayer
which makes a recursive copy of the parent "root" layer using
hardlinks to share file data, and then applies the layer on top
of that. This means all chile images share file (but not directory)
data with the parent.

Docker-DCO-1.1-Signed-off-by: Alexander Larsson <alexl@redhat.com> (github: alexlarsson)
2014-10-28 11:31:30 +01:00
Tibor Vass 29ebb53b52 Merge pull request #8806 from takama/ioreader
excluding unused transformation to []byte
2014-10-27 20:58:53 -04:00
Sven Dowideit 413f2efba1 Merge pull request #8807 from erikh/builder_docs
builder: Update documentation WRT environment replacement
2014-10-27 17:40:09 -07:00
Erik Hollensbe e377716b37 builder: Update documentation WRT environment replacement
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-10-27 23:37:27 +00:00
unclejack 039f225768 Merge pull request #8802 from jlhawn/vfs_copydir_use_archive_copywithtar
Use archive.CopyWithTar in vfs.Create
2014-10-28 00:08:44 +02:00
Tibor Vass 55702ae3d6 Merge pull request #8809 from erikh/builder_cmd_sh_fix
builder: Restore /bin/sh handling in CMD when entrypoint is specified with JSON
2014-10-27 18:07:08 -04:00
Erik Hollensbe 24545c18c3 builder: Restore /bin/sh handling in CMD when entrypoint is specified with JSON
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-10-27 21:50:22 +00:00
Tibor Vass e590aa2c7a Merge pull request #8778 from erikh/builder_fixes
Builder: Environment replacement fixes
2014-10-27 16:58:05 -04:00
Jessie Frazelle d42bcc065a Merge pull request #8805 from vieux/update_sysinfo_to_logrus
update `pkg` to logrus
2014-10-27 12:26:52 -07:00
Igor Dolzhikov b65eb8d215 excluding unused transformation to []byte
Signed-off-by: Igor Dolzhikov <bluesriverz@gmail.com>
2014-10-28 01:04:36 +06:00
Victor Vieux 0a37f836ad update sysinfo to logrus
Signed-off-by: Victor Vieux <vieux@docker.com>
2014-10-27 18:59:02 +00:00
Josh Hawn b6db23cffe Use archive.CopyWithTar in vfs.Create
The vfs storage driver currently shells out to the `cp` binary on the host
system to perform an 'archive' copy of the base image to a new directory.
The archive option preserves the modified time of the files which are created
but there was an issue where it was unable to preserve the modified time of
copied symbolic links on some host systems with an outdated version of `cp`.

This change no longer relies on the host system implementation and instead
utilizes the `CopyWithTar` function found in `pkg/archive` which is used
to copy from source to destination directory using a Tar archive, which
should correctly preserve file attributes.

Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)
2014-10-27 11:38:22 -07:00
Alexandr Morozov 339173dd5b Merge pull request #8743 from vieux/hostconfig_start
do not send hostconfig at start, as we do on create now
2014-10-27 11:09:57 -07:00
Erik Hollensbe 4e74cd498b builder: whitelist verbs useful for environment replacement.
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-10-27 17:38:25 +00:00
Erik Hollensbe be49867cab builder: handle escapes without swallowing all of them.
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-10-27 17:38:24 +00:00
Joe Ferguson 9a03652d96 Cleanup docs Dockerfile, so it matches best practices.
Docker-DCO-1.1-Signed-off-by: Joseph Ferguson <joe@infosiftr.com> (github: yosifkit)
2014-10-27 09:35:27 -07:00
Jessie Frazelle 80d35c7fd0 Merge pull request #8782 from shuai-z/rm-clean
removed redundant Clean
2014-10-27 09:23:10 -07:00
Jessie Frazelle 15b6b7be01 Merge pull request #8770 from LK4D4/logrus_support
Logrus support
2014-10-27 09:05:24 -07:00
Tibor Vass 2b41736205 Merge pull request #8641 from vbatts/vbatts-archive_test_and_benchmark
archive: tests and benchmarks for hardlinks
2014-10-27 09:55:19 -04:00
Alan Thompson 6e208b7f1c Update faq.md
Minor language clarification.
2014-10-26 19:57:52 -07:00
shuai-z ce407ccff4 removed redundant Clean
The doc (or src) says: The result is Cleaned.

http://golang.org/pkg/path/filepath/#Join

Signed-off-by: shuai-z <zs.broccoli@gmail.com>
2014-10-26 13:55:29 +08:00
Lakshan Perera d3ac9ea98e Add HasValidGITPrefix to utils/utils.go
This will allow us to use a common Git prefix check for both api/clients/commands.go and
builder/job.go. Previous prefix check in build from Git (in builder/jobs.go) ignored valid prefixes such as "git@", "http://" or "https://".

Signed-off-by: Lakshan Perera <lakshan@laktek.com>
2014-10-26 03:25:25 +00:00
Tianon Gravi 5631ffbdfd Merge pull request #6992 from mschurenko/master
include --releasever=/ in mkimage-yum.sh
2014-10-25 02:03:32 -06:00
Tianon Gravi 10d3315080 Merge pull request #8643 from jfrazelle/fix-amazon-linux-dist
Fix amazon linux dist
2014-10-24 19:26:27 -06:00
Tibor Vass 350e1b783d Merge pull request #8321 from erikh/ui_save_output
docker save: Do not save to a terminal.
2014-10-24 19:37:14 -04:00
Andrea Luzzardi 61f8001c23 Expose # of CPUs and memory available on docker info.
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2014-10-24 15:56:37 -07:00
Alexandr Morozov c681bea062 Merge pull request #8744 from erikh/empty_entrypoint_inheritance
builder: some small fixups + fix a bug where empty entrypoints would not override inheritance.
2014-10-24 15:31:15 -07:00
Alexandr Morozov ee7dd44c01 Mass gofmt
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-10-24 15:11:48 -07:00
Alexandr Morozov b99dcb3c7e Remove pkg/log
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-10-24 15:03:24 -07:00
Alexandr Morozov b3b4043345 Use common logging in engine
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-10-24 15:03:24 -07:00
Alexandr Morozov 7c62cee51e Use logrus everywhere for logging
Fixed #8761

Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-10-24 15:03:06 -07:00
Alexandr Morozov 6229a36432 Vendor logrus logging framework
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-10-24 15:01:52 -07:00
Tibor Vass d515590d15 Merge pull request #8325 from mwhudson/do-not-use-X
Stop using -X flag to set global variables
2014-10-24 17:30:45 -04:00
James Turnbull 78075abf81 Merge pull request #8746 from aluzzardi/bump-api-v1.16
Bump API to v1.16.
2014-10-24 16:47:48 -04:00
Vincent Batts 3eba719400 registry/endpoint: make it testable
Signed-off-by: Vincent Batts <vbatts@redhat.com>
2014-10-24 16:27:17 -04:00
Fred Lifton fcae37402a Add back Best Practices link.
Docker-DCO-1.1-Signed-off-by: Fred Lifton <fred.lifton@docker.com> (github: fredlf)
2014-10-24 13:17:14 -07:00
Victor Vieux 665cd10d59 Merge pull request #8760 from jfrazelle/8745-output-log
Client should use go log package.
2014-10-24 13:13:30 -07:00
Jessie Frazelle 9094c19a6d Merge pull request #8315 from dqminh/save-start-error
Save start error into State.Error when the container fails to start
2014-10-24 13:13:00 -07:00
Jessica Frazelle a7aedca4a1 Client should use go log package.
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-10-24 13:03:46 -07:00
Fred Lifton cc45b13ad4 Tweaks to Dockerfile tutorial
Made a few tweaks to Dockerfile tutorial links and removed some cruft from the tutorial itself.

Docker-DCO-1.1-Signed-off-by: Fred Lifton <fred.lifton@docker.com> (github: fredlf)
2014-10-24 12:00:47 -07:00
Andrea Luzzardi ca6cc65609 Bump API to v1.16.
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2014-10-24 11:25:44 -07:00
Vincent Batts 0fdf7839a2 archive: tests and benchmarks for hardlinks
Adding moar information, so benchmark comparisons can be moar
comparative.

Signed-off-by: Vincent Batts <vbatts@redhat.com>
2014-10-24 08:58:31 -04:00
Nicolas De loof ab03e898ff Document alternate command to check encrypted TCP socket
as curl command seems to fail on OSX Mavericks

Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2014-10-24 09:15:15 +02:00
Mathias Monnerville 417fde550e dockerimages.md: typo fix 2014-10-24 09:09:20 +02:00
Sven Dowideit 7f1ea7129e Add a link to some documentation about exec.
Docker-DCO-1.1-Signed-off-by: Sven Dowideit <SvenDowideit@docker.com> (github: SvenDowideit)
2014-10-24 12:41:19 +10:00
James Turnbull c6f242b88f Merge pull request #8722 from SvenDowideit/sven-cannot-bash
Add --dryrun to allow testing to the docs-release site, and then fix the...
2014-10-23 21:37:55 -04:00
James Turnbull 8f79bd964f Merge pull request #8695 from SvenDowideit/add-details-to-entrypoint-docs
Rewrite ENTRYPOINT documentation covering all the combinations with exam...
2014-10-23 21:37:36 -04:00
Sven Dowideit 4bae6235c0 Add --dryrun to allow testing to the docs-release site, and then fix the double dollar mistake
Docker-DCO-1.1-Signed-off-by: Sven Dowideit <SvenDowideit@docker.com> (github: SvenDowideit)
2014-10-24 11:36:07 +10:00
Michael Crosby 0e6242122d Merge pull request #8671 from shuai-z/master
Port number 49153(BeginPortRange) would be returned twice, causing dupli...
2014-10-23 17:37:38 -07:00
Erik Hollensbe cdd6e97910 builder: some small fixups + fix a bug where empty entrypoints would not override inheritance.
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-10-24 00:23:25 +00:00
Victor Vieux 12028fc159 do not send hostconfig at start, as we do on create now
Signed-off-by: Victor Vieux <vieux@docker.com>
2014-10-24 00:22:21 +00:00
Victor Vieux a71b2ec54a Merge pull request #8737 from brahmaroutu/resize_uponstart_8728
Allowing resize tty to only work when container is started
2014-10-23 17:20:10 -07:00
Andrea Luzzardi a76c924e6a Merge pull request #8453 from estesp/8444-create-bridge-error
Gracefully handle network bridge without IP association at startup
2014-10-23 17:00:21 -07:00
Michael Hudson-Doyle c7c620dd9f finally, use code generation for INITSHA1 & INITPATH too
Signed-off-by: Michael Hudson-Doyle <michael.hudson@linaro.org>
2014-10-24 11:01:19 +13:00
Michael Hudson-Doyle 85744a35de use code generation for GITCOMMIT/VERSION too
Signed-off-by: Michael Hudson-Doyle <michael.hudson@linaro.org>
2014-10-24 10:58:39 +13:00
Michael Hudson-Doyle 3e10b93106 Use code generation to set IAMSTATIC instead of -X
Signed-off-by: Michael Hudson-Doyle <michael.hudson@linaro.org>
2014-10-24 10:56:51 +13:00
Srini Brahmaroutu 78a272ce14 Allowing resize tty to only work when container is started
Addresses #8728

Signed-off-by: Srini Brahmaroutu <srbrahma@us.ibm.com>
2014-10-23 21:31:34 +00:00
Jessie Frazelle 88e6693912 Merge pull request #8736 from crosbymichael/update-libcontainer-oct3
Update libcontainer to aab3f6d17f2f56606f07f3a6eb6
2014-10-23 14:07:36 -07:00
Phil Estes 1262b5f605 Gracefully handle network bridge without IP association at startup
Addresses #8444

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2014-10-23 16:19:12 -04:00
Alexandr Morozov 77dcab133c Merge pull request #8735 from estesp/fix-test-timeout-on-drone
Up test timeout to 10s based on recent drone.io timeout failures
2014-10-23 13:02:34 -07:00
Michael Crosby 45c511fd5a Merge pull request #8733 from estesp/error-string-http-status-fix
Fix error string mapping to HTTP response code to ignore case
2014-10-23 12:10:21 -07:00
Michael Crosby 291b84610f Update libcontainer to aab3f6d17f2f56606f07f3a6eb6
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2014-10-23 19:00:05 +00:00
Phil Estes ee17b93df9 Up test timeout to 10s based on recent drone.io timeout failures
Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2014-10-23 14:30:39 -04:00
Phil Estes 6589044b5b Fix volume test using "find" to properly call find with /hello path
Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2014-10-23 14:13:11 -04:00
Alex Gaynor 3a1eafb488 Replace fast with quickly
Technically an adverb should be used there :-)
2014-10-23 11:06:36 -07:00
Fred Lifton 8b40d385b5 Removed James' email address
Changed email address for abuse reports from James to abuse@
2014-10-23 10:54:40 -07:00
Phil Estes 9b430f4ec1 Fix error string mapping to HTTP response code to ignore case
Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2014-10-23 13:34:06 -04:00
unclejack 1aa67071cb Merge pull request #8550 from aluzzardi/f-meminfo
system: Add MemInfo utility.
2014-10-23 09:31:28 +03:00
shuai-z 2c2edabca5 added test, gofmtd
Signed-off-by: shuai-z <zs.broccoli@gmail.com>
2014-10-23 11:35:12 +08:00
shuai-z 9451cf39ef Port number 49153(BeginPortRange) would be returned twice, causing duplication and potential errors.
If we first request port 49153 (BeginPortRange) explicitly, and later some time request the next free port (of same ip/proto) by calling RequestPort() with port number 0, we will again get 49153 returned, even if it's currently in use. Because findPort() blindly retured BeginPortRange the first run, without checking if it has already been taken.

Signed-off-by: shuai-z <zs.broccoli@gmail.com>
2014-10-23 10:49:33 +08:00
Daniel, Dao Quang Minh fb6ee865a9 save start error into State.Error
when a container failed to start, saves the error message into State.Error so
that it can be retrieved when calling `docker inspect` instead of having to
look at the log

Docker-DCO-1.1-Signed-off-by: Daniel, Dao Quang Minh <dqminh89@gmail.com> (github: dqminh)
2014-10-22 22:42:37 -04:00
Sven Dowideit 0390d04d8a Rewrite ENTRYPOINT documentation covering all the combinations with examples.
Docker-DCO-1.1-Signed-off-by: Sven Dowideit <SvenDowideit@docker.com> (github: SvenDowideit)
2014-10-23 12:12:08 +10:00
Alexandr Morozov 5343ede602 Merge pull request #8718 from jfrazelle/run-redirect-test-fix
TestRunRedirectStdout kept failing with timed out.
2014-10-22 19:11:12 -07:00
Sven Dowideit bb3e33154d Merge pull request #8673 from SvenDowideit/whats-docker-version
DOCKER_VERSION and docker-version havn't been implemented.
2014-10-22 19:03:54 -07:00
James Turnbull ba14ddf85b Merge pull request #8708 from torstehu/fix-url
Correct url from github.com/dotcloud/docker{,-py}
2014-10-22 18:57:42 -04:00
Jessica Frazelle 93e17b2eca TestRunRedirectStdout kept failing with timed out.
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-10-22 15:51:14 -07:00
Andrea Luzzardi e0c9d7b654 Add MemInfo to the system pkg.
MemInfo provides a simple API to get memory information from the
system.

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2014-10-22 14:05:45 -07:00
Andy Goldstein 5572dbb750 Fix stdout premature EOF
Never close attached stream before both stdout and stderr have written
all their buffered contents. Remove stdinCloser because it is not needed
any more as the stream is closed anyway after attach has finished.

Fixes #3631

Signed-off-by: Andy Goldstein <agoldste@redhat.com>
2014-10-22 16:34:42 -04:00
Torstein Husebø 64cb772538 Correct url from github.com/dotcloud/docker{,-py}
to github.com/docker/docker{,-py}

Signed-off-by: Torstein Husebø <torstein@huseboe.net>
2014-10-22 16:57:39 +02:00
unclejack 25c32d3167 Merge pull request #8672 from estesp/CmdRun-fix-typos-comments
Clean up comment sections and fix typos in CmdRun
2014-10-22 14:32:39 +03:00
unclejack c694c66e2f Merge pull request #8692 from jfrazelle/8690-latest-tag-problem
Fix problem where building Dockerfile `FROM name:latest`
2014-10-22 10:55:57 +03:00
Sven Dowideit 6aeda16995 Merge pull request #8682 from wpp/update_linking_documentation
Update linking documentation
2014-10-21 21:01:51 -07:00
Sven Dowideit a9258f7849 Merge pull request #8680 from wilsaj/patch-1
Docfix: fix cli dashes in boot2docker resizing article
2014-10-21 21:00:53 -07:00
James Turnbull ca500e0039 Merge pull request #8651 from flisky/patch-1
fix a small typo
2014-10-21 23:40:34 -04:00
James Turnbull 6f4529a598 Merge pull request #8670 from SvenDowideit/link-to-run-reference-from-cli.md
Link to run reference from cli doc
2014-10-21 23:38:57 -04:00
Tibor Vass 47cb56f20f Merge pull request #8691 from crosbymichael/fix-integration-race
Fix racy integration tests
2014-10-21 21:06:01 -04:00
Jessica Frazelle 373fd1ce16 Fixes #8690
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-10-21 16:47:43 -07:00
Michael Crosby 95d1cd0bde Merge pull request #8661 from estesp/8555-start-exit-code
Return container exit code with start -a/-i
2014-10-21 16:22:15 -07:00
Michael Crosby ba5370c116 Fix racy integration tests
Do not run containers in the background in the integration tests if you
depend on the run completing.  It is better especially if you just want
to ensure that the run has completed with a `true` to just run in
foreground and use a known name for the container to query it after it
has stopped.

The failures can be reproduced on most machines by giving your dind
container one core and a cpushare.

docker run -c 200 --cpuset 0 -ti --rm --privileged -e
DOCKER_GRAPHDRIVER=vfs docker hack/make.sh binary test-integration-cli

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2014-10-21 22:51:09 +00:00
Alexandr Morozov a07ee0db62 Merge pull request #8684 from erikh/onbuild_case_insensitive
builder: handle cases where onbuild is not uppercase.
2014-10-21 15:24:15 -07:00
Erik Hollensbe 21ab75afe0 builder: handle cases where onbuild is not uppercase.
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-10-21 17:08:05 -04:00
Erik Hollensbe a34831f016 builder: handle cases where onbuild is not uppercase.
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-10-21 20:17:37 +00:00
Philipp Weissensteiner 5df2c878a1 Update container linking documentation
As of 1.3 `docker ps` no longer shows links between containers.
This updates the documentation to reflect that change.

    sudo docker docker inspect -f "{{ .HostConfig.Links }}" web

Signed-off-by: Philipp Weissensteiner <mail@philippweissensteiner.com>
2014-10-21 21:58:05 +02:00
Andy Wilson 36dae27fa2 fix cli dashes in boot2docker resizing article
The CLI commands had long dashes that won't work on most terminals when copy pasting.

Signed-off-by: wilsaj <wilson.andrew.j+github@gmail.com>
2014-10-21 11:38:19 -05:00
Tibor Vass 9df3e45ba9 Merge pull request #8423 from unclejack/lint_changes
lint changes part 1
2014-10-21 12:15:58 -04:00
Tibor Vass cf44d6f9cc Merge pull request #8665 from cpuguy83/8659_clean_paths_for_volumes
Clean volume paths
2014-10-21 11:17:03 -04:00
Qiang Huang 7cf322dffc daemon: resolve the graphdriver to show
graphdriver is not always specified when the log printed, because
it's provided in another thread. This patch will fix this.

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2014-10-21 15:00:25 +08:00
Sven Dowideit 6ed610fb80 DOCKER_VERSION and docker-version havn't been implemented.
So far, it looks like the declarations are not used, and so its safer not to
confuse people into thinking they do something.

Docker-DCO-1.1-Signed-off-by: Sven Dowideit <SvenDowideit@docker.com> (github: SvenDowideit)
2014-10-21 16:04:11 +10:00
Zach Borboa d0f12a0f73 Fix typo
Signed-off-by: Zach Borboa <zachborboa@gmail.com>
2014-10-20 18:46:39 -07:00
Sven Dowideit 9e137ceb57 Link to run reference from cli doc
Docker-DCO-1.1-Signed-off-by: Sven Dowideit <SvenDowideit@docker.com> (github: SvenDowideit)
2014-10-21 11:21:11 +10:00
Victor Vieux a10876d355 Merge pull request #8573 from estesp/integration-test-migrate
Migrate container GET API tests from integration to integration-cli
2014-10-20 18:06:40 -07:00
Alexandr Morozov a0781f3ea9 Merge pull request #8509 from cpuguy83/make_copy_support_volumes
Make container.Copy support volumes
2014-10-20 17:34:30 -07:00
Brian Goff ef98fe0763 Make container.Copy support volumes
Fixes #1992

Right now when you `docker cp` a path which is in a volume, the cp
itself works, however you end up getting files that are in the
container's fs rather than the files in the volume (which is not in the
container's fs).
This makes it so when you `docker cp` a path that is in a volume it
follows the volume to the real path on the host.

archive.go has been modified so that when you do `docker cp mydata:/foo
.`, and /foo is the volume, the outputed folder is called "foo" instead
of the volume ID (because we are telling it to tar up
`/var/lib/docker/vfs/dir/<some id>` and not "foo", but the user would be
expecting "foo", not the ID

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2014-10-20 20:23:01 -04:00
Gleb M Borisov fdd2abe7b3 Use dual-stack Dialer when talking to registy
Signed-off-by: Gleb M. Borisov <borisov.gleb@gmail.com>
2014-10-21 03:59:11 +04:00
Brian Goff 66fba7c46e Clean volume paths
Fixes #8659

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2014-10-20 19:11:44 -04:00
Brian Goff 964f9965c7 Clean volume paths
Fixes #8659

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2014-10-20 19:07:56 -04:00
Tibor Vass af52f8edcf Merge pull request #8638 from LK4D4/fix_8632
Don't write pull output to stdout on container creating
2014-10-20 18:10:47 -04:00
Alexandr Morozov 52784c09b7 Merge pull request #8543 from brahmaroutu/filter_containers_7599
Adding capability to filter by name, id or status to list containers api
2014-10-20 15:04:24 -07:00
Alexandr Morozov ff325bcb2f Don't write pull output to stdout on container creating
Fixes #8632

Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-10-20 17:35:43 -04:00
Michael Crosby b90ab68f2a Merge pull request #8511 from coolljt0725/fix_tag
Fix tag an existed tag name of a repository
2014-10-20 14:32:23 -07:00
Michael Crosby 0c7d2ff2d4 Merge pull request #8559 from rhatdan/404
On Red Hat Registry Servers we return 404 on certification errors.
2014-10-20 14:13:34 -07:00
Erik Hollensbe cf23053eb1 builder: fix escaping for ENV variables.
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-10-20 16:53:37 -04:00
Daniel, Dao Quang Minh 8caacb18f8 Avoid fallback to SSL protocols < TLS1.0
Signed-off-by: Tibor Vass <teabee89@gmail.com>

Docker-DCO-1.1-Signed-off-by: Daniel, Dao Quang Minh <dqminh89@gmail.com> (github: dqminh)

Conflicts:
	registry/registry.go
2014-10-20 16:51:06 -04:00
Tianon Gravi 7d9ccc2636 Fix more missing HOME references
Signed-off-by: Andrew Page <admwiggin@gmail.com>
2014-10-20 16:51:06 -04:00
Jessica Frazelle ada9ac7b13 Setting iptables=false should propagate to ip-masq=false
Signed-off-by: Jessica Frazelle <jess@docker.com>
2014-10-20 16:51:06 -04:00
Tibor Vass e134f1f74a Do not verify certificate when using --insecure-registry on an HTTPS registry
Signed-off-by: Tibor Vass <teabee89@gmail.com>

Conflicts:
	registry/registry.go
	registry/registry_test.go
	registry/service.go
	registry/session.go
2014-10-20 16:51:06 -04:00
Michael Crosby f43e77fc12 Don't hard code true for auth job
Signed-off-by: Michael Crosby <michael@docker.com>

Conflicts:
	registry/service.go
2014-10-20 16:51:05 -04:00
Michael Crosby c66196a9dc Expand documentation for --insecure-registries
Signed-off-by: Michael Crosby <michael@docker.com>
2014-10-20 16:51:05 -04:00
Michael Crosby c0598aced0 Refactor IsSecure change
Fix issue with restoring the tag store and setting static configuration
from the daemon. i.e. the field on the TagStore struct must be made
internal or the json.Unmarshal in restore will overwrite the insecure
registries to be an empty struct.

Signed-off-by: Michael Crosby <michael@docker.com>

Conflicts:
	graph/pull.go
	graph/push.go
	graph/tags.go
2014-10-20 16:51:05 -04:00
unclejack f9b4bfa59b make http usage for registry explicit
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)

Conflicts:
	daemon/config.go
	daemon/daemon.go
	graph/pull.go
	graph/push.go
	graph/tags.go
	registry/registry.go
	registry/service.go
2014-10-20 16:51:05 -04:00
Tianon Gravi 551047a64e Merge pull request #8657 from vincentbernat/update/zsh-completion-2
zsh: update zsh completion for docker command
2014-10-20 14:48:00 -06:00
Srini Brahmaroutu 1634625353 Adding capability to filter by name, id or status to list containers api
Closes #7599

Signed-off-by: Srini Brahmaroutu <srbrahma@us.ibm.com>
2014-10-20 18:33:20 +00:00
Dan Walsh 69fe3e1a34 On Red Hat Registry Servers we return 404 on certification errors.
We do this to prevent leakage of information, we don't want people
to be able to probe for existing content.

According to RFC 2616, "This status code (404) is commonly used when the server does not
wish to reveal exactly why the request has been refused, or when no other response i
is applicable."

https://www.ietf.org/rfc/rfc2616.txt

10.4.4 403 Forbidden

   The server understood the request, but is refusing to fulfill it.
   Authorization will not help and the request SHOULD NOT be repeated.
   If the request method was not HEAD and the server wishes to make
   public why the request has not been fulfilled, it SHOULD describe the
   reason for the refusal in the entity.  If the server does not wish to
   make this information available to the client, the status code 404
   (Not Found) can be used instead.

10.4.5 404 Not Found

   The server has not found anything matching the Request-URI. No
   indication is given of whether the condition is temporary or
   permanent. The 410 (Gone) status code SHOULD be used if the server
   knows, through some internally configurable mechanism, that an old
   resource is permanently unavailable and has no forwarding address.
   This status code is commonly used when the server does not wish to
   reveal exactly why the request has been refused, or when no other
   response is applicable.

When docker is running through its certificates, it should continue
trying with a new certificate even if it gets back a 404 error code.

Docker-DCO-1.1-Signed-off-by: Dan Walsh <dwalsh@redhat.com> (github: rhatdan)
2014-10-20 13:20:48 -04:00
Vincent Bernat ed7934fd63 zsh: update zsh completion for docker command
zsh completion is updated with the content of
felixr/docker-zsh-completion.

The major change since the last merge is the addition of
exec/create (but they were already present in the docker repository) as
well as pause/unpause/logout/events and the use of short/long options
when they are available. Some missing options were also added.

12f00abd7178 Add completion for `exec'
4e2faa075f9a Merge `run' and `create' commands.
34134de077de Add missing long/short options for most commands.
d09f62339ab5 Add completion for `pause' and `unpause'
e4754c3b3b9d Add completion for `logout'
e0935eb3d5d2 Add completion for `events'
dae353cb9afb Add completion for `create`

Docker-DCO-1.1-Signed-off-by: Vincent Bernat <vincent@bernat.im> (github: vincentbernat)
2014-10-20 15:33:17 +02:00
尹吉峰 3d10d50c6d small typo 2014-10-20 14:17:33 +08:00
James Turnbull 528c15afed Merge pull request #8622 from Coaxial/patch-1
Update dockerimages.md
2014-10-20 01:16:20 -04:00
James Turnbull 5160fbb447 Merge pull request #8649 from mavenugo/master
Fixed a minor docs issue in a Dockerfile Example
2014-10-20 01:14:54 -04:00
Lei Jitang c496f24157 Add docker tag tests.
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2014-10-20 11:10:31 +08:00
Madhu Venugopal 18141652ba Fixed a minor docs issue in a Dockerfile Example
The Dockerfile Instruction to create the .vnc directory results in a failure :
-storepasswd failed for file: /root/.vnc/passwd

Signed-off-by: Madhu Venugopal <madhu@socketplane.io>
2014-10-19 10:16:30 -07:00
Phil Estes d2cd8e77a6 Clean up comment sections and fix typos in CmdRun
Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2014-10-19 02:47:53 -04:00
Phil Estes 65edb07065 Return container exit code with start -a/-i
Addresses #8555

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com>
2014-10-18 23:00:20 -04:00
Marc Tamsky 91502ba66b Add mention of e2fsprogs to runtime dependencies.
Signed-off-by: Marc Tamsky <mtamsky@gmail.com> (github: tamsky)
2014-10-17 16:58:07 -07:00
Jessica Frazelle b7249317c1 check ID in os-release instead
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-10-17 16:51:36 -07:00
Amit Bakshi dbe24a048b install.sh: Fix for Amazon's Linux AMI
Use /etc/os-release to determine distro

Contents of /etc/os-release on Amazon Linux AMI 2014.09:
NAME="Amazon Linux AMI"
VERSION="2014.09"
ID="amzn"
ID_LIKE="rhel fedora"
VERSION_ID="2014.09"
PRETTY_NAME="Amazon Linux AMI 2014.09"
ANSI_COLOR="0;33"
CPE_NAME="cpe:/o:amazon:linux:2014.09:ga"
HOME_URL="http://aws.amazon.com/amazon-linux-ami/"

Signed-off-by: Amit Bakshi <ambakshi@gmail.com>
Signed-off-by: Jessica Frazelle <jess@docker.com>
2014-10-17 16:19:28 -07:00
Jessie Frazelle 005029cbdd Merge pull request #8483 from duglin/TabTest
Add a testcase to make sure we don't squash tabs or convert them to spaces
2014-10-17 16:03:22 -07:00
Doug Davis c980fe09b7 Add a testcase to make sure we don't squash tabs or convert them to spaces
This is in response to @SvenDowideit asking if we had a "tab" testcase
in https://github.com/docker/docker/issues/2315#issuecomment-58133508
I couldn't find one so I'm adding one

Closes #2315

Signed-off-by: Doug Davis <dug@us.ibm.com>
2014-10-17 15:52:48 -07:00
Alexandr Morozov 75fd1b614d Merge pull request #8639 from erikh/fix_escapes
builder: fix escaping for ENV variables.
2014-10-17 15:50:37 -07:00
Erik Hollensbe df0e0c7683 builder: fix escaping for ENV variables.
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-10-17 21:47:35 +00:00
Jessie Frazelle 3c325f89e5 Merge pull request #8415 from LK4D4/use_logs_in_builder
Use logs instead of attach for builder
2014-10-17 13:32:13 -07:00
Alexandr Morozov 2db1caee4f Make daemon.Attach private
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-10-17 13:20:02 -07:00
Alexandr Morozov 6f09d064bd Use logs instead of attach for builder
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-10-17 13:20:02 -07:00
Jessie Frazelle b357f76e5d Merge pull request #8565 from LK4D4/remove_fixtures_copy_tests
Remove fixtures copy tests
2014-10-17 13:10:30 -07:00
Tianon Gravi fb5e6526d8 Merge pull request #8561 from albers/bash-completion
Fix support for --env-file in bash completion
2014-10-17 13:26:24 -06:00
Alexandr Morozov 93d3c8e71d Just remove integration-cli/build_tests/TestCopy/MultipleFilesToFile because it wasn't used
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-10-17 11:58:12 -07:00
Alexandr Morozov 98e7608b4c Rewrite TestBuildCopyDisallowRemote to not use fixtures
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-10-17 11:58:12 -07:00
Alexandr Morozov c8a5d56fd7 Rewrite TestBuildCopyEtcToRoot to not use fixtures
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-10-17 11:57:48 -07:00
Alexandr Morozov 6582ea574c Rewrite TestBuildCopyWholeDirToRoot to not use fixtures
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-10-17 11:57:30 -07:00
Alexandr Morozov 4a029259ff Rewrite TestBuildCopyDirContentToExistDir to not use fixtures
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-10-17 11:57:07 -07:00
Alexandr Morozov 832618afc6 Rewrite TestBuildCopyDirContentToRoot to not use fixtures
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-10-17 11:56:49 -07:00
Alexandr Morozov 24d83afd52 Rewrite TestBuildCopySingleFileToNonExistDir to not use fixtures
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-10-17 11:56:28 -07:00
Alexandr Morozov 2248109ff8 Rewrite TestBuildCopySingleFileToExistDir to not use fixtures
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-10-17 11:56:01 -07:00
Alexandr Morozov d41cba6aed Rewrite TestBuildCopySingleFileToWorkdir to not use fixtures
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-10-17 11:55:34 -07:00
Alexandr Morozov 83c5dced10 Rewrite TestBuildCopySingleFileToRoot to not use fixtures
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-10-17 11:55:04 -07:00
Alexandr Morozov e45c92153d Rewrite TestBuildCopyAddMultipleFiles to not use fixtures
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-10-17 11:54:29 -07:00
James Turnbull 04932e38af Merge pull request #8614 from ryanrdetzel/master
exec docs syntax fix
2014-10-17 14:38:43 -04:00
Jessie Frazelle 5a20dc67b0 Merge pull request #8567 from LK4D4/add_log_done
Add logDone for TestBuildAddSingleFileToNonExistDir
2014-10-17 11:20:12 -07:00
Jessie Frazelle 09ceae5c9c Merge pull request #8486 from duglin/Issue5701
Add failing testcase for single quotes in CMD
2014-10-17 11:11:49 -07:00
Alexandr Morozov ad136e1ae3 Don't write pull output to stdout on container creating
Fixes #8632

Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-10-17 11:08:53 -07:00
Tibor Vass 6ac9768eaf Merge pull request #8569 from jfrazelle/Cleanup-errorOut-resp
Cleanup: integration-cli (get rid of errorOut)
2014-10-17 13:36:00 -04:00
Alexandr Morozov 83761be409 Merge pull request #8635 from blakery/master
Cleanup: Removed unused function layerArchive
2014-10-17 10:28:22 -07:00
Michael Crosby 9b795108c7 Merge pull request #8621 from zhgwenming/lxc
Fix lxc driver build issue on Mac OS X
2014-10-17 09:17:25 -07:00
Tibor Vass 10f78974ca Merge pull request #8588 from dqminh/remove-sslv3
remove sslv3 from server's TLS supported versions
2014-10-17 12:05:48 -04:00
Blake Geno 7cff8db4a3 Removed unused function layerArchive
Signed-off-by: Blake Geno <blakegeno@gmail.com>
2014-10-17 10:49:21 -04:00
Pierre 4e8f69bfe0 Update dockerimages.md
The container ID in the text didn't match the container ID from the figure above it.
2014-10-16 22:16:29 -04:00
Albert Zhang 210db1234d Fix lxc driver build issue on Mac OS X
Docker-DCO-1.1-Signed-off-by: Albert Zhang <zhgwenming@gmail.com> (github: zhgwenming)
2014-10-17 09:41:23 +08:00
Fred Lifton 6ce4f82ebe Merge pull request #8531 from SvenDowideit/move-registry-search-to-registry-api
Move registry search API docs into the registry API document.
2014-10-16 18:27:37 -07:00
Sven Dowideit 57263ef0d6 Merge pull request #8591 from fredlf/1.3release-notes
Edits and additions to release notes.
2014-10-16 18:26:11 -07:00
Fred Lifton d79defb747 Edits and additions to release notes.
Docker-DCO-1.1-Signed-off-by: Fred Lifton <fred.lifton@docker.com> (github: fredlf)

Added link for CVEs.

Docker-DCO-1.1-Signed-off-by: Fred Lifton <fred.lifton@docker.com> (github: fredlf)

Fixed some URLs.

Docker-DCO-1.1-Signed-off-by: Fred Lifton <fred.lifton@docker.com> (github: fredlf)
2014-10-16 18:16:52 -07:00
Fred Lifton b61ad60675 Edits and additions to release notes.
Docker-DCO-1.1-Signed-off-by: Fred Lifton <fred.lifton@docker.com> (github: fredlf)

Added link for CVEs.

Docker-DCO-1.1-Signed-off-by: Fred Lifton <fred.lifton@docker.com> (github: fredlf)
2014-10-16 18:06:32 -07:00
Sven Dowideit 62cb97278d Merge pull request #8599 from irachex/commit_docs
Fix commit api document
2014-10-16 16:10:49 -07:00
Alexandr Morozov cb106e74a1 Merge pull request #8238 from vbatts/vbatts-daemon_timestamps
daemon logging: unifying output and timestamps
2014-10-16 15:55:49 -07:00
Fred Lifton 2e35d7c905 Merge pull request #8544 from SvenDowideit/link-to-latest-b2d-installers
Link directly to the 'latest' release alias
2014-10-16 15:52:24 -07:00
Fred Lifton 69e3a55560 Merge pull request #8516 from jamtur01/sshd
Minor changes to SSHd example
2014-10-16 15:44:10 -07:00
Jessica Frazelle 5af7facf18 Cleanup errorOut remove errorOut functions
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-10-16 15:06:20 -07:00
Jessica Frazelle 66ac7420a9 Cleanup errorOut resp run tests
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-10-16 15:06:20 -07:00
Jessica Frazelle 842d4b6b0a Cleanup errorOut resp log tests
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-10-16 15:06:20 -07:00
Jessica Frazelle 9f52d8e6e7 Cleanup errorOut resp restart tests
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-10-16 15:06:20 -07:00
Jessica Frazelle 6f1c8ff4c4 Cleanup errorOut resp exec tests
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-10-16 15:06:20 -07:00
Jessica Frazelle eeb0097294 Cleanup errorOut resp pull tests
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-10-16 15:06:20 -07:00
Jessica Frazelle dd248dee3c Cleanup errorOut resp in images tests
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-10-16 15:06:20 -07:00
Jessica Frazelle 50c3e7537c Cleanup errorOut resp in version tests
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-10-16 15:06:20 -07:00
Jessica Frazelle f013506aad Cleanup errorOut resp in push tests
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-10-16 15:06:20 -07:00
Jessica Frazelle 764030ec92 Cleanup errorOut resp in top tests
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-10-16 15:06:20 -07:00
Jessica Frazelle b1e3c9e9cd Cleanup errorOut resp in build tests
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-10-16 15:06:20 -07:00
Jessica Frazelle 0c87424007 Cleanup errorOut resp in save tests
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-10-16 15:06:20 -07:00
Jessica Frazelle 0e3744ec89 Cleanup errorOut resp in rmi tests
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-10-16 15:06:20 -07:00
Jessica Frazelle ac24cabd9d Cleanup errorOut resp in inspect tests
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-10-16 15:06:19 -07:00
Jessica Frazelle d33f2bdb11 Cleanup errorOut resp in ps tests
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-10-16 15:06:19 -07:00
Jessica Frazelle ef787eb824 Cleanup errorOut resp in search tests
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-10-16 15:06:19 -07:00
Jessica Frazelle 73eadbc6a1 Cleanup errorOut resp in docker_utils.go
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-10-16 15:06:16 -07:00
Jessica Frazelle ac62c5439a Cleanup errorOut resp in diff test
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-10-16 15:05:00 -07:00
Jessica Frazelle 7d38ae7041 Cleanup errorOut resp in links test
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-10-16 15:05:00 -07:00
Jessica Frazelle f7b3a6b292 Cleanup errorOut resp in history test
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-10-16 15:05:00 -07:00
Jessica Frazelle b59d5a9dd2 Cleanup errorOut resp in info test
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-10-16 15:05:00 -07:00
Jessica Frazelle 0faf87598f Cleanup errorOut resp in kill test
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-10-16 15:05:00 -07:00
Jessica Frazelle 17842840ec Cleanup errorOut resp in nat test
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-10-16 15:05:00 -07:00
Jessica Frazelle 6b858b59ed Cleanup errorOut resp in create test
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-10-16 15:05:00 -07:00
Jessica Frazelle 475235ba7e Cleanup errorOut resp in tag test
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-10-16 15:05:00 -07:00
Jessica Frazelle b645df1d39 Cleanup errorOut resp in export test
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-10-16 15:05:00 -07:00
Jessica Frazelle 88d65cbdf4 Cleanup errorOut resp in port test
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-10-16 15:05:00 -07:00
Jessica Frazelle 3182ee5c9b Cleanup errorOut resp in commit test
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)

Cleanup errorOut resp in commit test

Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-10-16 15:05:00 -07:00
Doug Davis 9edf967824 Add failing testcase for single quotes in CMD
Closes #5701

This is due to @SvenDowideit comment at: https://github.com/docker/docker/issues/5701#issuecomment-58133541
where he asked for a testcase showing the error case.

Signed-off-by: Doug Davis <dug@us.ibm.com>
2014-10-16 14:40:55 -07:00
Phil Estes d8cd8165a9 Migrate container GET API tests from integration to integration-cli
An initial start to migration of the API tests from integration to
the integration-cli model.

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com>
(github: estesp)
2014-10-16 17:34:28 -04:00
Michael Crosby 2f9ffe5b6a Merge pull request #8232 from vbatts/vbatts-devmapper_getDeps
devmapper: include dm_deps information in debug
2014-10-16 14:13:21 -07:00
Michael Crosby 0e67cf0627 Merge pull request #8380 from cpuguy83/moar_names
Add more names
2014-10-16 14:04:15 -07:00
Michael Crosby 4b594721c4 Merge pull request #8465 from SvenDowideit/document-device-flag-permission-options
Add info on --device flag permissions ':rwm'
2014-10-16 14:00:09 -07:00
Michael Crosby f0eb1ef4e1 Merge pull request #8526 from vbatts/vbatts-too_many_open_files
client: even cleaner use of Transport
2014-10-16 13:53:31 -07:00
Michael Crosby b3cda9fc7e Merge pull request #8566 from jfrazelle/Cleanup-fmt-%q
Cleanup: integration-cli ('%s' with %q)
2014-10-16 13:51:46 -07:00
Victor Vieux 1183abc4aa Merge pull request #8549 from vieux/pkg_units
add BytesSize in pkg/units
2014-10-16 13:44:50 -07:00
Michael Crosby d1aca045b3 Merge pull request #8612 from jfrazelle/8611-ip-masq-iptables
Setting iptables=false should propagate to ip-masq=false
2014-10-16 13:35:37 -07:00
Ryan Detzel b8b9930a8a Docs syntax fix
the flags must come before the container name.
2014-10-16 15:57:38 -04:00
Michael Crosby 40a6461d16 Merge pull request #8606 from tianon/release-home
Fix more missing HOME references
2014-10-16 12:12:38 -07:00
Michael Crosby c3237cc9d8 Merge pull request #8608 from crosbymichael/merge_release_v1.3.0
Merge release v1.3.0
2014-10-16 12:12:21 -07:00
James Turnbull 3d0d2fd183 Merge pull request #8609 from gesellix/patch-2
fix minor docs error
2014-10-16 15:06:00 -04:00
Jessica Frazelle 3893e220e8 Setting iptables=false should propagate to ip-masq=false
Signed-off-by: Jessica Frazelle <jess@docker.com>
2014-10-16 11:52:14 -07:00
Tobias Gesellchen 143f438e6e fix minor docs error
Signed-off-by: Tobias Gesellchen <tobias@gesellix.de>
2014-10-16 19:36:36 +02:00
Michael Crosby db21b556ce Change version to 1.3.0-dev
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2014-10-16 17:22:42 +00:00
Michael Crosby 30806ebc0f Merge branch 'release' into merge_release_v1.3.0 2014-10-16 17:22:27 +00:00
Michael Crosby c78b920e01 Merge pull request #8323 from crosbymichael/bump_v1.3.0
Bump to version 1.3.0
2014-10-16 10:08:54 -07:00
Tianon Gravi d040de6dd4 Fix more missing HOME references
Signed-off-by: Andrew Page <admwiggin@gmail.com>
2014-10-16 10:14:26 -06:00
Huayi Zhang f6140060e3 Fix commit api document
The commit message field should be `comment`, not `m`
https://github.com/docker/docker/blob/master/api/server/server.go#L478

Signed-off-by: Huayi Zhang <irachex@gmail.com>
2014-10-16 18:10:58 +08:00
Sven Dowideit 2eb9c0bfd4 Merge pull request #8595 from fredlf/signed-image-doco
Expanded release notes
2014-10-15 23:20:14 -07:00
Daniel, Dao Quang Minh 7a062b2b8f Avoid fallback to SSL protocols < TLS1.0
Signed-off-by: Tibor Vass <teabee89@gmail.com>

Docker-DCO-1.1-Signed-off-by: Daniel, Dao Quang Minh <dqminh89@gmail.com> (github: dqminh)
2014-10-15 22:39:51 -04:00
Fred Lifton 74d0485885 Expanded release notes
Made it clear signed images is a preview feature and added a little more info about how the feature works.

Docker-DCO-1.1-Signed-off-by: Fred Lifton <fred.lifton@docker.com> (github: fredlf)
2014-10-15 16:08:07 -07:00
Michael Crosby c78088fe3d Bump to version 1.3.0
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2014-10-15 19:15:24 +00:00
Michael Crosby 87bd2da5d8 Merge branch 'master' into bump_v1.3.0 2014-10-15 19:15:13 +00:00
Michael Crosby 9a82713772 Merge pull request #8578 from erikh/fix_slash
builder: Handle trailing \ appropriately.
2014-10-15 12:11:37 -07:00
Alexandr Morozov abec82bdee Merge pull request #8579 from erikh/builder_html_panic
builder: handle anything we cannot parse the command for as a fatal error
2014-10-15 12:01:52 -07:00
Fred Lifton 73792969e6 Merge pull request #8582 from SvenDowideit/api-docs-link-to-basics-page
The basics page moved, update link.
2014-10-15 11:34:25 -07:00
Erik Hollensbe 3f2eb353bd builder: provide a friendly message on parser errors
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-10-15 18:08:23 +00:00
Fred Lifton 9c6346e9b2 Merge pull request #8583 from SvenDowideit/minimal-curl-command-to-tls-docker-socket
Add a little info on how to talk to the TLS encrypted Docker Socket
2014-10-15 11:01:05 -07:00
Alexandr Morozov de5b1b8bb0 Merge pull request #8580 from erikh/filter_comments_first
builder: strip blank lines before processing any line continuations.
2014-10-15 11:00:31 -07:00
Erik Hollensbe 63637b9d27 builder: handle anything we cannot parse the command for as a fatal error.
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-10-15 08:47:15 +00:00
Erik Hollensbe 96f342f703 builder: comments should also be elided in the middle of statements following a line continuation.
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-10-15 08:44:14 +00:00
Sven Dowideit 1c68de798f Add a little info on how to talk to the TLS encrypted Docker Socket
Docker-DCO-1.1-Signed-off-by: Sven Dowideit <SvenDowideit@docker.com> (github: SvenDowideit)
2014-10-15 17:24:53 +10:00
Sven Dowideit a64ff0bf7a The basics page moved, update link.
Docker-DCO-1.1-Signed-off-by: Sven Dowideit <SvenDowideit@docker.com> (github: SvenDowideit)
2014-10-15 16:48:43 +10:00
Erik Hollensbe a1ef2207dd builder: strip blank lines before processing any line continuations.
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-10-15 04:00:17 +00:00
Erik Hollensbe 7fa449191c builder: Handle trailing \ appropriately.
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-10-15 03:08:18 +00:00
Alexandr Morozov fcfe80f633 Minor fix of tests names
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-10-14 11:47:01 -07:00
Alexandr Morozov fbaa41b5aa Add logDone for TestBuildAddSingleFileToNonExistDir
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-10-14 11:17:41 -07:00
Jessica Frazelle 949ab47710 Replace '%s' in test utils
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-10-14 10:59:38 -07:00
Jessica Frazelle c091397d51 Replace '%s' in run tests
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-10-14 10:59:19 -07:00
Jessica Frazelle be31a66b7a Replace '%s' in rm tests
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-10-14 10:59:11 -07:00
Jessica Frazelle a44296603f Replace '%s' in diff tests
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-10-14 10:59:01 -07:00
Jessica Frazelle 91f33fcaaa Replace '%s' in create tests
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-10-14 10:58:35 -07:00
Michael Crosby dc243c812b Merge pull request #8564 from tiborvass/remove-docker-dot-io
change docs.docker.io to docs.docker.com in install script
2014-10-14 10:53:10 -07:00
Tibor Vass e5e0baa6d4 change docs.docker.io to docs.docker.com in install script
Signed-off-by: Tibor Vass <teabee89@gmail.com>
2014-10-14 13:45:26 -04:00
Michael Crosby a29837020b Merge pull request #8563 from crosbymichael/remove-key-create
Remove client key.json generation for trust
2014-10-14 10:45:15 -07:00
Michael Crosby 712e8da885 Remove client key.json generation for trust
This removes the key generation for trust from main while it is not
being consumed.  The problem is that because this is being set in main
if a user runs as root initially the files will be owned by root.  Later
if the user sets up the docker group they are unable to read the keys.
This is half a user error and documentation problem and the other half
is management.

We decided to remove this code for now while it is not being used and
will revisit it later when the consuming features are added.  A few
options are to generate lazily and provide a clear error message on an
EPERM so that the user knows what is wrong and can correct the
permissions.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2014-10-14 17:16:45 +00:00
Harald Albers ba311ee58a Fix support for --env-file in bash completion
Signed-off-by: Harald Albers <github@albersweb.de>
2014-10-14 17:45:29 +02:00
James Turnbull 23be0486f6 Merge pull request #8558 from fgrehm/patch-4
docs: Fix some minor typos on dockerlinks guide
2014-10-14 10:01:45 -04:00
Fabio Rehm 06d633e1f6 docs: Fix some minor typos on dockerlinks guide
Signed-off-by: Fabio Rehm <fgrehm@gmail.com>
2014-10-14 10:15:35 -03:00
Victor Vieux 95b67895c4 Merge pull request #8553 from tianon/fix-over-aggressive-shell-interpolation-regex
Fix builder from being over-aggressive on ${}
2014-10-14 00:30:03 -07:00
Tianon Gravi 24189b2c36 Fix builder from being over-aggressive on ${}
`${SOME_VAR%pattern}` was turning into `SOME_VAL%pattern}` which the shell would then balk at.

I've updated the `TOKEN_ENV_INTERPOLATION` regex to account for this (ie, if `${` is used, it _must_ also match the closing `}`), and renamed the variable to not be exported (since it's not used outside the function following it).

I also added comments for the bits of `tokenEnvInterpolation` so they're easier to follow. 😄

Signed-off-by: Andrew Page <admwiggin@gmail.com>
2014-10-14 00:58:55 -06:00
Victor Vieux 0ab2f19278 Merge pull request #8552 from crosbymichael/update-libcontainer-oct2
Update to libcontainer 8d1d0ba38a7348c5cfdc05aea3b
2014-10-13 23:43:06 -07:00
Michael Crosby 018ce19b31 Update to libcontainer 8d1d0ba38a7348c5cfdc05aea3b
This fixes issues where the apparmor profile is not applied to processes
via docker exec.  As a side effect the parent processes were unable to
kill the additional child processes because of the profile mismatch.

Easy way to reproduce on an apparmor system:
docker run -ti debian:jessie bash
ps auxZ
- look at the labels

- in another shell
docker exec <name> sleep 1000

- go back to the first container and
ps auxZ
- make sure all processes have the correct docker-default profile

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2014-10-14 06:24:38 +00:00
Victor Vieux ae4689f14d add BytesSize in pkg/units
Signed-off-by: Victor Vieux <vieux@docker.com>
2014-10-14 03:54:32 +00:00
Michael Crosby 9d1c9a4075 Merge pull request #8548 from crosbymichael/config-path
Write s3cfg to $HOME
2014-10-13 20:45:16 -07:00
Michael Crosby e0a1df8e68 Write s3cfg to $HOME
Because of the base image change, $HOME is not always / and we need to
write to the proper $HOME within the container to complete the release
process.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2014-10-14 03:34:24 +00:00
Michael Crosby e4976b8cc1 Merge pull request #8545 from fredlf/1.3release-notes
Adding release notes for 1.3.
2014-10-13 19:30:33 -07:00
Michael Crosby 2c5ad1ac3e Merge pull request #8547 from erikh/onbuild-cmd
builder: ONBUILD triggers were not accurately being executed in JSON cases
2014-10-13 19:29:16 -07:00
Sven Dowideit 18b507c49e Merge pull request #8226 from SvenDowideit/more-daemon-option-information
More daemon option information
2014-10-14 12:06:14 +10:00
SvenDowideit 5bcff59feb Docker-DCO-1.1-Signed-off-by: SvenDowideit <SvenDowideit@home.org.au> (github: SvenDowideit)
Add some information about the storage and execution driver choices

Docker-DCO-1.1-Signed-off-by: SvenDowideit <SvenDowideit@home.org.au> (github: SvenDowideit)
2014-10-14 12:05:09 +10:00
Erik Hollensbe 1150c1639a builder: ONBUILD triggers were not accurately being executed in JSON cases.
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-10-14 01:59:45 +00:00
Sven Dowideit 587e2f1ddc Merge pull request #8529 from SvenDowideit/update-version-dropdown-on-404
Remove version selector and edit on Github on search page, as it only se...
2014-10-14 11:55:12 +10:00
Sven Dowideit 5bf3ac5738 Remove version selector and edit on Github on search page, as it only searches the latest docs
Docker-DCO-1.1-Signed-off-by: Sven Dowideit <SvenDowideit@docker.com> (github: SvenDowideit)
2014-10-14 11:54:41 +10:00
Sven Dowideit 6b285c4cd6 Move registry search API docs into the registry API document.
Docker-DCO-1.1-Signed-off-by: Sven Dowideit <SvenDowideit@docker.com> (github: SvenDowideit)
2014-10-14 11:53:10 +10:00
Sven Dowideit 9d5e3a54a0 Merge pull request #8525 from duglin/Issue4789
Add more info about the LINK env vars created
2014-10-14 11:24:17 +10:00
Fred Lifton 30cfa148b9 Adding release notes for 1.3.
Docker-DCO-1.1-Signed-off-by: Fred Lifton <fred.lifton@docker.com> (github: fredlf)
2014-10-13 17:17:41 -07:00
Sven Dowideit 380fe94614 Link directly to the 'latest' release alias
Docker-DCO-1.1-Signed-off-by: Sven Dowideit <SvenDowideit@docker.com> (github: SvenDowideit)
2014-10-14 09:20:55 +10:00
Tibor Vass 839660ada1 Merge pull request #8541 from crosbymichael/update-libcontainer-oct1
Update libcontainer to 4f409628d80b9842004a3f17c92
2014-10-13 17:54:27 -04:00
Fred Lifton 939227a81a Merge pull request #8462 from SvenDowideit/document-how-to-add-a-new-document
Mention the mkdocs.yml file for adding new documents
2014-10-13 13:15:00 -07:00
Fred Lifton c2096d7096 Merge pull request #8530 from SvenDowideit/auto-scroll-to-auto-index-section-the-user-requested
Turn off editing for auto-generated index pages, and scroll the user to the right section
2014-10-13 13:12:05 -07:00
Fred Lifton 66b9694b58 Merge pull request #8532 from SvenDowideit/demote-readme.md-header
README.md is a sub-section in how to build automated builds
2014-10-13 13:02:41 -07:00
Michael Crosby 8fedf718ce Update libcontainer to 4f409628d80b9842004a3f17c92
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2014-10-13 19:53:20 +00:00
Fred Lifton 547c42d8d0 Merge pull request #8528 from SvenDowideit/hide-side-toc-for-search
Hide the empty sidebar TOC on the search page
2014-10-13 12:13:06 -07:00
Fred Lifton 3040c8b759 Merge pull request #8527 from SvenDowideit/dissalow-robots-except-for-docs.docker.com
start sending robots.txt (and humans.txt) again, and set to dissallow if...
2014-10-13 12:12:18 -07:00
Fred Lifton 6ce3967f8f Merge pull request #8517 from sequenceiq/master
docs: fixing docker.io api
2014-10-13 12:09:39 -07:00
Fred Lifton ce669297df Merge pull request #8503 from aanand/tlsverify-environment-variable
Add DOCKER_TLS_VERIFY environment variable, equivalent to --tlsverify flag
2014-10-13 10:20:10 -07:00
James Turnbull 42b217044a Merge pull request #8435 from SvenDowideit/explain-docker-attach-more
Add more info on attach inspired by discussion in #2855
2014-10-13 13:19:22 -04:00
James Turnbull e3101a3508 Merge pull request #8523 from duglin/FixLinkCmdLine
Fix href in docs w.r.t. cgroups freezer pointer
2014-10-13 13:18:49 -04:00
James Turnbull 8a32aa26c1 Merge pull request #8524 from duglin/Regardless
Fix typo: reguardless should be regardless
2014-10-13 13:18:21 -04:00
James Turnbull fe03da7da8 Merge pull request #8507 from duglin/Issue3087
Add some docs about which env vars are defined in new containers
2014-10-13 13:13:43 -04:00
Aanand Prasad 19fb942d36 Add DOCKER_TLS_VERIFY environment variable, equivalent to --tlsverify flag
This makes it possible to make the Docker client "secure by default"
without wrapping the binary in a shell alias so that `--tlsverify` is
always passed.

Signed-off-by: Aanand Prasad <aanand.prasad@gmail.com>
2014-10-13 11:49:26 +01:00
Sven Dowideit 2709c4677c Add info on --device flag permissions ':rwm'
Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>

Docker-DCO-1.1-Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au> (github: SvenDowideit)
2014-10-13 17:41:12 +10:00
Sven Dowideit 801edfa9b8 Add more info on attach inspired by discussion in #2855
Docker-DCO-1.1-Signed-off-by: Sven Dowideit <SvenDowideit@docker.com> (github: SvenDowideit)
2014-10-13 17:30:08 +10:00
Sven Dowideit 3d2f10e28a Mention the mkdocs.yml file for adding new documents
and move the complicated discussion about branches lower down,
hopefully most won't need to know

Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>

Docker-DCO-1.1-Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au> (github: SvenDowideit)
2014-10-13 17:06:18 +10:00
Sven Dowideit 3732cd6612 README.md is a sub-section in how to build automated builds
Docker-DCO-1.1-Signed-off-by: Sven Dowideit <SvenDowideit@docker.com> (github: SvenDowideit)
2014-10-13 17:00:58 +10:00
Sven Dowideit 687215c32f Turn off editing for auto-generated index pages, and scroll the user to the right section
Docker-DCO-1.1-Signed-off-by: Sven Dowideit <SvenDowideit@docker.com> (github: SvenDowideit)
2014-10-13 16:32:18 +10:00
Sven Dowideit d883fb66b0 Hide the empty sidebad TOC on the search page
This uses @dnephin's changes to the base.html (thank you!)

and then adds the hide_toc: page meta

Docker-DCO-1.1-Signed-off-by: Sven Dowideit <SvenDowideit@docker.com> (github: SvenDowideit)
2014-10-13 14:10:29 +10:00
Sven Dowideit 44e9a59665 start sending robots.txt (and humans.txt) again, and set to dissallow if its not the real docs site
Docker-DCO-1.1-Signed-off-by: Sven Dowideit <SvenDowideit@docker.com> (github: SvenDowideit)
2014-10-13 13:53:16 +10:00
Vincent Batts da42ae536c client: even cleaner use of Transport
First off, sorry for the noise. This is a cleaner step of #8508

Found more of a root cause of the open file handles.
After more testing I found that the open file descriptors will still
occur for TCP:// connections to the daemon, causing client and/or daemon
to fail.

The issue was instantiating a new http.Transport on _ever_ client
request. So each instance held the prior connection alive, but was only
ever used once.

By moving it out to the initilization of DockerCli, we can now have
reuse of idled connections. Simplifies the garbage overhead of the
client too, though that's not usually a deal.

Signed-off-by: Vincent Batts <vbatts@redhat.com>
2014-10-12 22:32:55 -04:00
Doug Davis 61387427cb Add more info about the LINK env vars created
@SvenDowideit see what you think. I'd like to get your take on this
before I submit the PR.

Closes #4789

Signed-off-by: Doug Davis <dug@us.ibm.com>
2014-10-12 18:34:18 -07:00
Doug Davis ba7038c8d2 Fix typo: reguardless should be regardless
Signed-off-by: Doug Davis <dug@us.ibm.com>
2014-10-12 14:41:24 -07:00
Doug Davis b10e11f30e Fix href in docs w.r.t. cgroups freezer pointer
Apparently, the [...] and (http...) need to be right after each other instead
of on different lines.

Signed-off-by: Doug Davis <dug@us.ibm.com>
2014-10-12 12:59:46 -07:00
Lajos Papp 137bad4b48 docs: fixing docker.io api
Signed-off-by: Lajos Papp <lajos.papp@sequenceiq.com>
2014-10-12 09:05:58 +02:00
James Turnbull f1c319f77c Minor changes to SSHd example
Docker-DCO-1.1-Signed-off-by: James Turnbull <james@lovedthanlost.net> (github: jamtur01)
2014-10-11 16:30:36 -04:00
unclejack 7fa7c42ce2 Merge pull request #8508 from vbatts/vbatts-too_many_open_files
cleaner handling of client socket access
2014-10-11 11:16:23 +03:00
Jessie Frazelle 9f482a66ab Merge pull request #8393 from dmcgowan/provenance_pull_enhance
Make V2 code more defensive against malformed content
2014-10-10 17:19:59 -07:00
Victor Vieux 246ec5dd06 Merge pull request #8505 from crosbymichael/ps-name
Improve ps name parsing
2014-10-10 17:08:35 -07:00
Vincent Batts fb7ceeb170 cleaner handling of client socket access
In the go stdlib net/http Transport, the used connections are cached
when idled. This behaviour is intended for TCP connections and does not
behave correctly for unix sockets. Despite the
DefaultMaxIdleConnsPerHost being 2, the idled connections are held open
during a session. For large sessions like `docker rm $(docker ps -a -q)`
of thousands of containers, it will cause the client _and_ the server to
open too many fails and have failures.

Having keep alives not used for only unix sockets is a work around for
this stdlib issue.

Also this includes disabling compression when communicating over the
local unix socket too.

Signed-off-by: Vincent Batts <vbatts@redhat.com>
2014-10-10 19:58:49 -04:00
Derek McGowan 3be4551a91 Enable V2 pull flow
Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2014-10-10 16:09:56 -07:00
Derek McGowan 85fd8213af Update verification message
Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2014-10-10 16:04:29 -07:00
Derek McGowan 73a9089306 Support tarsum dev version to fix issue with mtime
Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2014-10-10 16:04:29 -07:00
Derek McGowan 15d5c7f10f Update manifest format to rename blobsums and use arrays of dictionaries
Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2014-10-10 16:04:29 -07:00
Derek McGowan 456f493659 Add status message for V2 pull
Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2014-10-10 16:04:29 -07:00
Derek McGowan 7d21ea6627 Update pull message and log
Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2014-10-10 16:04:28 -07:00
Derek McGowan a152f37674 Use direct registry url
Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2014-10-10 16:04:28 -07:00
Derek McGowan e8b8cf61a9 Make V2 code more defensive against malformed content
Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2014-10-10 16:04:28 -07:00
Doug Davis 7d1e197f25 Add some docs about which env vars are defined in new containers
@SvenDowideit FYI

Closes #3087

Signed-off-by: Doug Davis <dug@us.ibm.com>
2014-10-10 15:40:52 -07:00
Michael Crosby b10dfb7de3 Import ps name parsing for default name
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2014-10-10 22:18:25 +00:00
Brice Jaglin 4a5cefa173 on truncated output, show canonical name rather than first name
Docker-DCO-1.1-Signed-off-by: Brice Jaglin <bjaglin@teads.tv> (github: bjaglin)
2014-10-10 08:12:15 +02:00
Brice Jaglin 0099b5e68c reflect changes introduced in d2ffcd9 in docs
Docker-DCO-1.1-Signed-off-by: Brice Jaglin <bjaglin@teads.tv> (github: bjaglin)
2014-10-10 08:12:12 +02:00
Lei Jitang 5e6f16e342 Fix the bug of tag a existed tag name of a repository.
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2014-10-10 09:18:12 +08:00
Sven Dowideit 248ec5d74e Merge pull request #8384 from rhatdan/selinux-opts
Fix security-opt docs
2014-10-10 10:52:17 +10:00
Tianon Gravi 3b41439262 Merge pull request #8496 from jfrazelle/update-desktop-examples
Update desktop integration examples to be more awesome.
2014-10-09 18:44:03 -06:00
Jessica Frazelle 8aa468ef56 Update desktop integration examples to be more up to date.
Chromium > Iceweasel and cool new gparted example.

Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-10-09 17:13:13 -07:00
Victor Vieux 72d8d94284 Merge pull request #8497 from aluzzardi/disable-stable-ip
Disable stable IPs.
2014-10-09 15:54:33 -07:00
Victor Vieux 88a41aa7d1 Merge pull request #8470 from fgrehm/patch-3
docs: Remove `Detach` parameter from Exec Create example
2014-10-09 15:25:51 -07:00
Andrea Luzzardi 5b8379a434 Disable stable IPs.
Stable IPs causes some regressions in the way people use Docker, see GH#8493.

Reverting it for 1.3, we'll enable it back for the next release.

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2014-10-09 15:15:17 -07:00
Tibor Vass d095659c6e Merge pull request #8495 from jpetazzo/8494-fix-debian-frontend-in-getdockercom-script
Add -E flag to sudo (fixes #8494)
2014-10-09 18:05:18 -04:00
Michael Crosby 917529e45e Merge pull request #8482 from jfrazelle/8481-content-type-bump-v
Revert #8101 and #7886 (content-type:x-json-stream/line delimited json)
2014-10-09 14:57:15 -07:00
Jérôme Petazzoni e01e913d80 Add -E flag to sudo (fixes #8494)
Docker-DCO-1.1-Signed-off-by: Jérôme Petazzoni <jerome@docker.com> (github: jpetazzo)
2014-10-09 14:54:22 -07:00
Jessica Frazelle b66ac6a809 Revert "Fix line delimited JSON response"
This reverts commit d2f75a3040.

Conflicts:
	integration-cli/docker_api_events_test.go

Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-10-09 13:46:21 -07:00
Jessica Frazelle 4c6b7cd1b5 Revert "Change content-type for json stream to application/x-json-stream."
This reverts commit 10ab2089ce.

Conflicts:
	api/client/utils.go
	docs/sources/reference/api/docker_remote_api.md

Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-10-09 13:17:47 -07:00
Dan Walsh a260772e48 Fix security-opt docs
Docker-DCO-1.1-Signed-off-by: Dan Walsh <dwalsh@redhat.com> (github: rhatdan)
2014-10-09 15:18:28 -04:00
Fred Lifton 2f5f437bc1 Merge pull request #8419 from nhsiehgit/dockerfiletut
Dockerfiletut
2014-10-09 10:15:10 -07:00
Fred Lifton 950f271ee4 Merge pull request #8461 from SvenDowideit/copy-specific-files-from-context
Add a best practice to reduce cache invalidations
2014-10-09 10:03:50 -07:00
Michael Crosby 4eb812e042 Merge pull request #8457 from jfrazelle/pr_8455
Check /etc/resolv.conf every time for 127.* content
2014-10-08 16:21:14 -07:00
Jessica Frazelle dbe6c6651e cleanup resolve.conf code
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-10-08 15:15:51 -07:00
Michael Crosby 0486bd022e Merge pull request #8450 from dqminh/fix-proxy-exit
dont close proxy's stdout/stderr prematurely
2014-10-08 14:20:33 -07:00
Andrea Luzzardi d7bcc099be Merge pull request #8475 from cpuguy83/fix_create_phantom_volumes_on_container_restart
Fixes re-creating volume on (re)start
2014-10-08 13:58:56 -07:00
Andrea Luzzardi c417921f78 Merge pull request #8472 from cpuguy83/fix_volume_refs_on_daemon_restore
Restore volume refs after daemon restart
2014-10-08 13:58:30 -07:00
Nathan Hsieh 6a874cf711 added fixes to address comments
Signed-off-by: Nathan Hsieh <hsieh.nathan@gmail.com>
2014-10-08 13:46:44 -07:00
Nathan Hsieh c257dcc9a4 Squashed commit of the following:
commit 3f9e9185fe7ee51f2fe55f0fc0d4fffdc4f289dc
Author: Nathan Hsieh <hsieh.nathan@gmail.com>
Date:   Mon Oct 6 10:57:35 2014 -0700

    changed the title of back buttons

commit f86934424e85931ec293e711ceaa93ee920828fb
Author: Nathan Hsieh <hsieh.nathan@gmail.com>
Date:   Mon Oct 6 10:53:15 2014 -0700

    Finished level 2, refactored tests

commit 8f502bce05293cccaf200b69ce5f5826eee72484
Author: Nathan Hsieh <hsieh.nathan@gmail.com>
Date:   Mon Oct 6 08:52:37 2014 -0700

    stylized better and added level 2

commit 07b2276b346c34c0cc0faa57500c40e120e77888
Author: Nathan Hsieh <hsieh.nathan@gmail.com>
Date:   Fri Oct 3 18:17:29 2014 -0700

    broke tutorial tests styles

commit 35d84147dc2f65b0ffeea5faf304add903219b1e
Author: Nathan Hsieh <hsieh.nathan@gmail.com>
Date:   Fri Oct 3 17:23:48 2014 -0700

    structured test level1 md file

commit 808d01b0d55d67eb1017f290a29da6c7d38565f2
Author: Nathan Hsieh <hsieh.nathan@gmail.com>
Date:   Fri Oct 3 17:15:46 2014 -0700

    Modified files and integrated tutorial through new page

commit 0f0093f2882489c3eeb6f8870f2b8aa64dc939a3
Author: Nathan Hsieh <hsieh.nathan@gmail.com>
Date:   Thu Oct 2 14:34:44 2014 -0700

    more refactoring

commit 5a9b98e55ebd455ccf2c0ced20f984545a0b6d71
Author: Nathan Hsieh <hsieh.nathan@gmail.com>
Date:   Thu Oct 2 11:46:58 2014 -0700

    clean js code

commit af3bbd8d5e1dffdaa1780f83b909ff566906e513
Author: Nathan Hsieh <hsieh.nathan@gmail.com>
Date:   Thu Oct 2 11:26:39 2014 -0700

    level 1 cleanup

commit c4852a7766ab4fbd978d65c8352ace05eb427ef5
Author: Nathan Hsieh <hsieh.nathan@gmail.com>
Date:   Thu Oct 2 11:20:17 2014 -0700

    fixed up fill-in level1

commit 7f02d80942549dec9c05f784b777fcb32d5bb81b
Author: Nathan Hsieh <hsieh.nathan@gmail.com>
Date:   Wed Oct 1 17:45:42 2014 -0700

    added dockerfile tut, stylized lesson1 Questions

Signed-off-by: Nathan Hsieh <hsieh.nathan@gmail.com>
2014-10-08 13:46:44 -07:00
Nathan Hsieh 8ceb213b3e merged conflicting commits
Signed-off-by: Nathan Hsieh <hsieh.nathan@gmail.com>
2014-10-08 13:44:21 -07:00
Brian Goff c985302c5c Fixes re-creating volume on (re)start
When a container is restarted all the volume configs are parsed again.
Even if the volume was already handled in a previous start it was still
calling "FindOrCreateVolume" on the volume repo causing a new volume to
be created.

This wasn't being detected because as part of the mount initialization
it checks to see if the the _mount_ was already initialized, but this
happens after the parsing of the configs.
So a check is added during parsing to skip a volume which was already
created for that container.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2014-10-08 16:25:51 -04:00
Brian Goff 9acf7c765c Restore volume refs after daemon restart
Volume refs were not being restored on daemon restart.
This made it possible to remove a volume being used by other containers
after a daemon restart.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2014-10-08 14:17:27 -04:00
Daniel, Dao Quang Minh 3b9d88210e pass extra file to child process as status handler
When stdout/stderr is closed prematurely, the proxy's writes to stdout/stderr
(i.e. `log.Errorf/log.Printf`) will returns with EPIPE error, and go runtime
will terminate the proxy when stdout/stderr writes trigger 10 EPIPE errors.

instead of using stdout/stderr as the status handler, we pass an extra file to
the child process and write `0\n` or `1\nerror message` to it and close it
after. This allow the child process to handle stdout/stderr as normal.

Docker-DCO-1.1-Signed-off-by: Daniel, Dao Quang Minh <dqminh89@gmail.com> (github: dqminh)
2014-10-08 12:53:43 -04:00
Fabio Rehm 2fd0e8eb5f docs: Remove Detach parameter from Exec Create example
Signed-off-by: Fabio Rehm <fgrehm@gmail.com>
2014-10-08 10:31:12 -03:00
Victor Vieux 0d5daa4a8f Merge pull request #8463 from jfrazelle/fix-invalid-tag-test
Fix Tag Test for longer tags
2014-10-08 01:07:24 -07:00
Jessica Frazelle de32f48e66 Fix Tag Test for longer tags
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-10-07 19:37:08 -07:00
Victor Vieux 60908acff6 Merge pull request #8447 from burke/bump-tag-char-limit
Increase the tag length limit from 30 to 128
2014-10-07 18:31:35 -07:00
Sven Dowideit a36ba19cca Add a best practice to reduce cache invalidations
inspired by https://github.com/docker-training/docker-fundamentals/pull/206

Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>
2014-10-08 11:26:48 +10:00
Victor Vieux 7f22fc32d5 Merge pull request #8431 from aluzzardi/b-alloc-network-error-handling
Container#AllocateNetwork: Simplify error handling.
2014-10-07 18:21:28 -07:00
James Turnbull c2428ff865 Merge pull request #8437 from SvenDowideit/un-pto-sven-oct-2014
back from camping, and making fred the docs 'guy in charge'
2014-10-07 20:01:26 -04:00
Michael Crosby 989e064d6e Merge pull request #8459 from crosbymichael/entrypoint-parent
Allow child to overwrite entrypoint from parent
2014-10-07 16:57:44 -07:00
Jessie Frazelle 85da74ce5f Merge pull request #8451 from eparis/systemd
Fix system socket/service unit files
2014-10-07 16:54:20 -07:00
Jessica Frazelle acd511786e Test for check /etc/resolv.conf on every docker run for 127.* content.
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-10-07 16:51:51 -07:00
Michael Crosby 50fa9dffcf Allow child to overwrite entrypoint from parent
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2014-10-07 23:45:35 +00:00
Jessie Frazelle 12203e475d Merge pull request #8434 from tiborvass/ignore_invalid_Dockerfile_instructions
Ignore unknown dockerfile instructions
2014-10-07 14:45:51 -07:00
Dan Walsh 9ced509e6d Check /etc/resolv.conf every time for 127.* content
Currently if you start the docker -d on a system with 127.0.0.1 in /etc/resolv.conf
It will set the default dns to 8.8.8.8 8.8.4.4 permanently.

This causes a problem at boot on Fedora machines where NetworkManager has not
populated /etc/resolv.conf before docker gets started.

This fix checks /etc/resolv.conf on every docker run. And only populates
daemon.config.Dns  if the user specified it on the command line.

Docker-DCO-1.1-Signed-off-by: Dan Walsh <dwalsh@redhat.com> (github: rhatdan)
2014-10-07 16:19:02 -04:00
Eric Paris 053c3557b3 Fix system socket/service unit files
Two problems how they are today:

In the current systemd unit files it is impossible to have the
docker.service started at system boot.  Instead enableing docker.service
will actually enable docker.socket.  This is a problem, as that means
any container with --restart=always will not launch on reboot.  And of
course as soon as you log in and type docker ps, docker.service will be
launched and now your images are running.  Talk about a PITA to debug!
The fix is to just install docker.service when people ask docker.service
to be enabled.  If an admin wants to enable docker.socket instead, that
is fine and will work just as it does today.

The second problem is a common docker devel workflow, although not
something normal admins would hit.  In this case consider a dev doing
the following:

systemctl stop docker.service

docker -d
[run commands]
[^C]

systemctl start docker.service

Running docker -d (without -F fd://) will clean up the
/var/run/docker.sock when it exits.  Remember, you just ran the docker
daemon not telling it about socket actviation, so cleaning up its socket
makes sense!  The new docker, started by systemd will expect socket
activation, but the last one cleaned up the docker.sock.  So things are
just broken.  You can, today, work around this by restarting
docker.socket.  This fixes it by telling docker.socket that it is
PartOf=docker.service.  So when docker.service is
started/stopped/restarted docker.socket will also be
started/stopped/restarted.  So the above semi-common devel workflow will
be fine.  When docker.service is stopped, so is docker.socket,   docker
-d (without -F fd://) will create and delete /var/run/docker.sock.
Starting docker.service again will restart docker.socket, which will
create the file an all is happy in the word.

Signed-off-by: Eric Paris <eparis@redhat.com>
2014-10-07 14:09:08 -04:00
Burke Libbey c95b0e0292 Increase the tag length limit from 30 to 128
Signed-off-by: Burke Libbey <burke.libbey@shopify.com>
2014-10-07 11:29:47 -04:00
Sven Dowideit 9b5e6d40f5 back from camping, and making fred the docs 'guy in charge'
Docker-DCO-1.1-Signed-off-by: Sven Dowideit <SvenDowideit@docker.com> (github: SvenDowideit)
2014-10-07 15:54:30 +10:00
Sven Dowideit 7813f85e7d Merge pull request #8382 from jamtur01/cli
Multiple fixes to the cli.md document.
2014-10-07 15:07:57 +10:00
Sven Dowideit 8f58025b70 Merge pull request #8304 from davide-ceretti/chore/prettify-docs-update.py
Prettify docs-update.py
2014-10-07 14:30:24 +10:00
Sven Dowideit 40cad37f0a Merge pull request #8341 from unclejack/add_workdir_test
add test for workdir env vars and add docs
2014-10-07 14:27:32 +10:00
Tibor Vass 0a2c481c7f ignore invalid Dockerfile instructions and do not consider "docker-version" a Dockerfile instruction
Signed-off-by: Tibor Vass <teabee89@gmail.com>
2014-10-06 23:26:59 -04:00
James Turnbull 92a9b87a57 Merge pull request #8426 from proppy/patch-12
google: fix typo
2014-10-06 23:18:54 -04:00
Tibor Vass 9fe1dd3103 Add test for ignoring invalid dockerfile instructions
Signed-off-by: Tibor Vass <teabee89@gmail.com>
2014-10-06 23:14:25 -04:00
Andrea Luzzardi 300c51c3a4 Container#AllocateNetwork: Simplify error handling.
The defer logic was a little tricky and was hiding one bug: `err` was
being redefined (with `:=`) and thus it escaped the defer error checking
logic.

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2014-10-06 17:59:12 -07:00
Johan Euphrosine 0a056a31fa google: fix typo
Docker-DCO-1.1-Signed-off-by: Johan Euphrosine <proppy@google.com> (github: proppy)
2014-10-06 15:28:50 -07:00
Alexandr Morozov a650ab7f29 Merge pull request #8409 from unclejack/integcli_lint
integcli: lint fixes
2014-10-06 14:32:08 -07:00
unclejack c0e632246d integcli: lint fixes
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-10-06 23:15:17 +03:00
unclejack 9e45069e0a pkg/graphdb: some linting
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-10-06 22:57:27 +03:00
unclejack ae3b59c171 registry: lint
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-10-06 22:34:39 +03:00
unclejack d1a85078b5 pkg/timeutils: lint and add comments
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-10-06 22:27:56 +03:00
unclejack d202ff2ece pkg/units: lint
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-10-06 22:19:41 +03:00
unclejack 39fe2a3e4e pkg/truncindex: lint and add comments
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-10-06 22:00:58 +03:00
Victor Vieux 6157af8292 Merge pull request #8416 from LK4D4/fix_build_cache_test
Fix TestBuildCacheADD to check cache in out, not in id
2014-10-06 11:56:18 -07:00
Michael Crosby 128c52f583 Merge pull request #8417 from cpuguy83/8398_fix_automatic_data_copy_for_volumesfrom
volumes copying data unexpectedly
2014-10-06 11:43:41 -07:00
Victor Vieux 40070609da Merge pull request #8369 from vieux/add_test_rm
add test and move one from rm to rmi
2014-10-06 11:30:12 -07:00
Brian Goff e95b6fb648 Fix #8398 - volumes copying data unexpectedly
Prior to the volumes re-factor, data was not being copied on
volumes-from or host-mounted volumes.
After the re-factor, data was being copied for volumes-from.
This reverts this unintentional change in behavior.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2014-10-06 14:21:46 -04:00
Victor Vieux 3e473c08b4 update test
Signed-off-by: Victor Vieux <vieux@docker.com>
2014-10-06 18:18:25 +00:00
Victor Vieux 7bd482d570 Merge pull request #8370 from duglin/ParserIndent
Fix builder/parser so it keeps some whitespace on split lines.
2014-10-06 10:32:02 -07:00
Michael Crosby a761698700 Merge pull request #8391 from crosbymichael/disable-v2-registry
Remove registry v2 code path
2014-10-06 10:12:20 -07:00
Fred Lifton 3fc04f36e5 Merge pull request #8343 from duglin/Issue5278
Make fixed font sizes smaller per Issue #5278
2014-10-06 10:11:01 -07:00
Alexandr Morozov 21dff8cbec Fix TestBuildCacheADD to check cache in out, not in id
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-10-06 10:04:10 -07:00
Erik Hollensbe 115436e038 docker save: Do not save to a terminal.
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-10-06 09:50:40 -07:00
Victor Vieux 887d9238f5 Merge pull request #8408 from tonistiigi/8407-fix-host-header
Fix Host header on stream commands
2014-10-06 09:48:12 -07:00
Victor Vieux 166c56cabd Merge pull request #8413 from tonistiigi/build-content-type
Fix streaming JSON Content-type for postBuild
2014-10-06 09:38:52 -07:00
Tonis Tiigi 30d6ff99fc Fix streaming JSON Content-type for postBuild
See #8101

lineDelim is used by streamJSON() so it needs to be set
before its called.

Signed-off-by: Tõnis Tiigi <tonistiigi@gmail.com> (github: tonistiigi)
2014-10-06 19:20:10 +03:00
unclejack d29c7e51cf pkg/version: lint and add comments 2014-10-06 18:41:53 +03:00
Tonis Tiigi e457b21db3 Fix Host header on stream commands
Fixes #8407

Setting Host on URL only works if the Request does not
already have its Host property set.

Note that the API version was also swallowed.

Signed-off-by: Tõnis Tiigi <tonistiigi@gmail.com> (github: tonistiigi)
2014-10-06 17:04:27 +03:00
Doug Davis 9c201c5836 Make fixed font sizes smaller per Issue #5278
Closes #5278

Signed-off-by: Doug Davis <dug@us.ibm.com>
2014-10-06 06:49:33 -07:00
Dan Griffin e857716d2d Preserve extended attributes and acls on archlinux build
Failure to do this means that file capabilites are not preserved in the image.
Ping fails to work as a non-root user if cap_net_raw is capability is not set

Signed-off-by: Dan Griffin <dgriffin@peer1.com>
2014-10-06 09:58:33 +01:00
Doug Davis f440c6b224 Fix builder/parser so it keeps some whitespace on split lines.
If previous line ends with whitespace, or next line starts with whitepsace
we need to preserve a space otherwise things line:
RUN echo\
   hello
will appear as: RUN echohello

Noticed this while looking at #5744 because he had lines ending in &&\

Signed-off-by: Doug Davis <dug@us.ibm.com>
2014-10-03 20:33:12 -07:00
James Turnbull 44264f48e4 Merge pull request #8388 from merty/patch-1
Fixed a typo in "Installing Docker on Mac OS X"
2014-10-03 22:03:50 -04:00
James Turnbull 62391d68a4 Merge pull request #8360 from duglin/Issue5509
Add note to docs about lack of shell processing in JSON form - Issue 5509
2014-10-03 22:03:31 -04:00
James Turnbull 95e169a6a1 Merge pull request #8222 from fredlf/adding_official-repo-guidelines
Edits and fixes based on review.
2014-10-03 22:03:05 -04:00
Andrea Luzzardi 84d9fd37b0 Merge pull request #8392 from jfrazelle/pr_8389
Invalid mount mode for volumes in
2014-10-03 17:22:21 -07:00
Jessica Frazelle b10b458b6e Add test for invalid mount mode for volumes in.
Closes #8389.

Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-10-03 16:17:51 -07:00
Michael Crosby 1c62e0ae4e Remove registry v2 code path
As this feature requires more testing it is much safter to get the
underlying changes into the codebase first then enable the feature in
another release after proper testing and verification can be done.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2014-10-03 22:24:14 +00:00
Victor Vieux d152a93b5f Merge pull request #8297 from aluzzardi/f-stable-ip
Stable Networking: Keep the same network settings during the entire container lifecycle.
2014-10-03 14:19:46 -07:00
Brian Goff 007b4f6340 Fixes bad validMountMode check
Needed to check if the mode was invalid and return error, not valid and
return error.

This didn't get picked up because the existing integration-cli tests
were all either expecting errors when a valid mode was passed in (e.g.
"ro" passed in, we expected an error because it was testing write).  So
modified a test which was testing for "rw" to actually pass in "rw"
instead of assuming the "rw"

Docker-DCO-1.1-Signed-off-by: Brian Goff <bgoff@cpuguy83-mbp.home> (github: cpuguy83)
2014-10-03 16:55:39 -04:00
Andrea Luzzardi b669025949 Stable MAC addresses: Add support for MAC address restoring.
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2014-10-03 13:46:24 -07:00
Andrea Luzzardi f1087c5fcf Daemon: Restore network settings at startup.
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2014-10-03 13:46:24 -07:00
Andrea Luzzardi a487593729 Stable Networking: Keep the same network settings across container restarts.
This change will allocate network settings (IP and public ports) at
container creation rather than start and keep them throughout the
lifetime of the container (i.e. until it gets destroyed) instead of
discarding them when the container is stopped.

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2014-10-03 13:46:24 -07:00
Andrea Luzzardi deffc572ce Container: Add restore network functionality.
RestoreNetwork() allows the container to restore its NetworkSettings (IP
and public ports).

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2014-10-03 13:46:24 -07:00
Andrea Luzzardi ab4188c08d Container: Make allocateNetwork and releaseNetwork public.
Since we are moving network allocation outside of container scope (it
will be managed by create/destroy), those functions need to be
accessible from the outside.

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2014-10-03 13:46:24 -07:00
Andrea Luzzardi 103a4e0676 Network Allocation: Proper rollback in case of failure allocation.
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2014-10-03 13:46:24 -07:00
James Turnbull ee101c3b2c Multiple fixes to the cli.md document.
*. Fixed headings so the side menu will now be consistent. Some sections
had H3s that were displaying and others did not leaving the left menu
very mismatched.

* Fixed several spelling errors.

* Re-formatted several long lines and badly laid out paragraphs.

* Fixed several double backticks.

* Added backticks to several outputs and variables.

* Removed two issues that are no longer valid.

* Removed several double spaces and extra lines.

Docker-DCO-1.1-Signed-off-by: James Turnbull <james@lovedthanlost.net> (github: jamtur01)
2014-10-03 16:28:43 -04:00
Alexandr Morozov beff5067c8 Merge pull request #8371 from aluzzardi/f-consistent-mac
Support for consistent MAC address.
2014-10-03 13:28:03 -07:00
Andrea Luzzardi 88e21c6a75 Support for consistent MAC address.
Right now, MAC addresses are randomly generated by the kernel when
creating the veth interfaces.

This causes different issues related to ARP, such as #4581, #5737 and #8269.

This change adds support for consistent MAC addresses, guaranteeing that
an IP address will always end up with the same MAC address, no matter
what.

Since IP addresses are already guaranteed to be unique by the
IPAllocator, MAC addresses will inherit this property as well for free.

Consistent mac addresses is also a requirement for stable networking (#8297)
since re-using the same IP address on a different MAC address triggers the ARP
issue.

Finally, this change makes the MAC address accessible through docker
inspect, which fixes #4033.

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2014-10-03 13:22:38 -07:00
Mert Yazıcıoğlu 81cddaaa7d Fixed a typo in "Installing Docker on Mac OS X"
evironment -> environment
2014-10-03 23:18:40 +03:00
Michael Crosby 94da44cacf Merge pull request #8375 from fgrehm/patch-2
docs: Update `docker exec` examples
2014-10-03 11:30:37 -07:00
Michael Crosby 5a627e41ff Merge pull request #8324 from cpuguy83/6231_fix_chunked_encoding
Fix #6231 - Accept chunked encoding on start
2014-10-03 11:27:57 -07:00
Brian Goff 86bfb9bca6 Fix #6231 - Accept chunked encoding on start
Docker-DCO-1.1-Signed-off-by: Brian Goff <cpuguy83@gmail.com> (github: cpuguy83)
2014-10-03 14:18:25 -04:00
Michael Crosby 23dc2ca2d5 Merge pull request #8336 from kwk/improve_docs_with_note_about_registry_frontend_web_app
Improve docs with note about registry frontend web app
2014-10-03 11:00:32 -07:00
Michael Crosby eaaf9e3125 Merge pull request #8320 from dmcgowan/provenance_pull
Official image provenance pull flow
2014-10-03 10:56:54 -07:00
Michael Crosby 6deeb103cf Merge pull request #8372 from cpuguy83/change_volume_containers_to_private
Make volume.Containers private
2014-10-03 10:44:21 -07:00
Brian Goff ed55a2db06 Add more names
Docker-DCO-1.1-Signed-off-by: Brian Goff <bgoff@cpuguy83-mbp.home> (github: cpuguy83)
2014-10-03 10:17:42 -04:00
Doug Davis 98ceae1a84 Add note to docs about lack of shell processing in JSON form
Closes #5509

Signed-off-by: Doug Davis <dug@us.ibm.com>
2014-10-03 05:18:25 -07:00
Fabio Rehm 6480b30a99 docs: Update docker exec examples
Signed-off-by: Fabio Rehm <fgrehm@gmail.com>
2014-10-03 01:13:59 -03:00
Brian Goff c5e728c953 Make volume.Containers private
Also wrap access in mutex.
Makes sure we don't have any pontential for races in accessing this.
It also doesn't really need to be/shouldn't be in the config.json anyway

Docker-DCO-1.1-Signed-off-by: Brian Goff <bgoff@cpuguy83-mbp.home> (github: cpuguy83)
2014-10-02 20:46:17 -04:00
Derek McGowan 22e59009e4 Add comment for permission and fix wrong format variable
Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2014-10-02 17:41:57 -07:00
Victor Vieux c68e6b15a5 add test and move one from rm to rmi
Signed-off-by: Victor Vieux <vieux@docker.com>
2014-10-02 23:39:39 +00:00
Victor Vieux 06b74875b6 Merge pull request #8368 from vieux/fix_docker_rm
docker rm <unknown>
2014-10-02 16:30:37 -07:00
Jessie Frazelle 8a0733ce69 Merge pull request #8351 from kencochrane/8347_fix_broken_doc_build
Fixed issue with docs not getting built due to ssl error.
2014-10-02 15:58:18 -07:00
Victor Vieux 3eaa1c99c1 docker rm <unknown>
Signed-off-by: Victor Vieux <vieux@docker.com>
2014-10-02 22:52:37 +00:00
Victor Vieux b2ee63000e Merge pull request #8367 from crosbymichael/update-libcontainer-sep9
Update libconatiner to b3570267c7b7995d5d618974d8f
2014-10-02 15:41:06 -07:00
Michael Crosby 193654e3ef Update libconatiner to b3570267c7b7995d5d618974d8f
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2014-10-02 22:19:56 +00:00
Jessie Frazelle 45667fb1bb Merge pull request #8364 from tianon/bash-completion-filters
Optimize the bash completion even further
2014-10-02 15:00:01 -07:00
Victor Vieux 34f4144b7f Merge pull request #8358 from docker/6969-reponame-rest-api
Added validity checks for repo name and tag in build job
2014-10-02 14:22:57 -07:00
Tianon Gravi 0597b6445d Optimize the bash completion even further
The biggest/bestest change here is cutting down on the number of calls to Docker in the filtering helpers (`__docker_containers_running`, etc), especially calls to the really heavy `docker images`.

Signed-off-by: Andrew Page <admwiggin@gmail.com>
2014-10-02 15:13:37 -06:00
Fred Lifton 36db0a30fa Edits and fixes to Dockerfile Best Practices based on review feedback.
Docker-DCO-1.1-Signed-off-by: Fred Lifton <fred.lifton@docker.com> (github: fredlf)
2014-10-02 14:08:39 -07:00
Michael Scharf cbb81c30bd add bash completion support for pause and unpause
Signed-off-by: Michael Scharf <github@scharf.gr>
2014-10-02 14:18:47 -06:00
Jessie Frazelle f69a262464 Merge pull request #8213 from brahmaroutu/pull_status_2404
Print a status message when pull command is executed
2014-10-02 09:56:18 -07:00
Joffrey F aabba9801a Added validity checks for repo name and tag in build job.
Signed-off-by: Joffrey F <joffrey@docker.com>
2014-10-02 17:37:13 +02:00
Konrad Kleine e08f22cdb2 Typo: changed "Maintainers" to "maintainers"
Signed-off-by: Konrad Kleine <konrad.wilhelm.kleine@gmail.com>
2014-10-02 08:43:30 +02:00
Derek McGowan 7c88e8f13d Add provenance pull flow for official images
Add support for pulling signed images from a version 2 registry.
Only official images within the library namespace will be pull from the
new registry and check the build signature.

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2014-10-01 18:26:06 -07:00
Ken Cochrane 7f261ebe6c Fixed issue with docs not getting built due to ssl error.
Signed-off-by: Ken Cochrane <ken@docker.com>
2014-10-01 21:11:10 -04:00
Jessie Frazelle 7304c09ecc Merge pull request #8346 from juliantaylor/mkimage-debootstrap
fix help message for mkimage debootstrap with components
2014-10-01 17:47:26 -07:00
Srini Brahmaroutu ecff6303a3 Print a status message when pull command is executed
Using repo tag in the status message for better usability, as per review comments
Added documentation and Changed code to print Status after downloads are complete

Addresses #2404

Signed-off-by: Srini Brahmaroutu <srbrahma@us.ibm.com>
2014-10-01 22:55:29 +00:00
Michael Crosby 4c8b8861ec Merge pull request #8350 from erikh/add_erikh_maintainer_proxy
Add erikh as maintainer of pkg/proxy
2014-10-01 15:50:41 -07:00
Erik Hollensbe 10efa07fa2 Add erikh as maintainer of pkg/proxy
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-10-01 15:37:46 -07:00
Fred Lifton 23221c5566 Merge pull request #8337 from tjwebb123/patch-1
Update host_integration.md
2014-10-01 15:37:02 -07:00
Malte Janduda f5f4d2d9cb Implementing IPv6 functionality for ipallocator
Closes #6975

Signed-off-by: Malte Janduda <mail@janduda.net>
2014-10-02 00:25:02 +02:00
Julian Taylor 34672240b4 fix help message for mkimage debootstrap with components
debootstrap needs the suite as the second argument, for this the script
reorders arguments beginning with a minus but components separated by
space, as stated by the help message, is not handled and will lead to
the rootfs being passed as suite to debootstrap.
The poor mans solution is to fix the help message to pass the long
option as one argument.

Signed-off-by: Julian Taylor <jtaylor.debian@googlemail.com>
2014-10-01 23:18:23 +02:00
Derek McGowan 8a6c7100ea Update libtrust version
Updated to version of libtrust with the trust graph implementation

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2014-10-01 13:19:40 -07:00
Vincent Batts 61c6f206b0 registry: getting Endpoint ironned out
Signed-off-by: Vincent Batts <vbatts@redhat.com>
2014-10-01 13:19:40 -07:00
Fred Lifton 04251b3e54 Merge pull request #8316 from duglin/Issue4787
Add a note about using an open schema model - Issue #4787
2014-10-01 11:21:09 -07:00
Doug Davis c8f3151aa6 Add a note about using an open schema model
Closes: #4787

Signed-off-by: Doug Davis <dug@us.ibm.com>
2014-10-01 11:05:12 -07:00
Fred Lifton f852233a01 Merge pull request #8313 from duglin/Issue4877
Add missing "tag" parameter to tag API - Issue #4877
2014-10-01 10:34:57 -07:00
Alexandr Morozov 516c72d71b Merge pull request #8340 from unclejack/bump_go_to_1.3.3
bump Go to 1.3.3
2014-10-01 08:08:12 -07:00
unclejack 4424d15f99 Merge pull request #8302 from rafecolton/move_archive_package_to_pkg
Move archive package to pkg
2014-10-01 18:03:34 +03:00
Adrien Folie 2c5b5cfc92 Add ENV variables support to WORKDIR build command
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
Docker-DCO-1.1-Signed-off-by: Adrien Folie <folie.adrien@gmail.com> (github: folieadrien)

Conflicts:
	builder/builder.go
		This file has been deleted.
2014-10-01 17:34:36 +03:00
unclejack da34672de6 bump Go to 1.3.3
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-10-01 17:14:48 +03:00
tjwebb123 f10a08887e Update host_integration.md 2014-10-01 14:51:47 +01:00
Konrad Kleine 12fe99ae47 Add registry_api_client_libraries.md to mkdocs.yml
Signed-off-by: Konrad Kleine <konrad.wilhelm.kleine@gmail.com>
2014-10-01 15:32:21 +02:00
Konrad Kleine 3446735a3e Create registry_api_client_libraries.md
Signed-off-by: Konrad Kleine <konrad.wilhelm.kleine@gmail.com>
2014-10-01 15:20:49 +02:00
Andrea Luzzardi 3f2e4e94d7 Merge pull request #8266 from cpuguy83/fix_race_in_createing_volumes
Fix potential race in volume creation
2014-09-30 18:03:00 -07:00
Andrea Luzzardi d40ab6f123 Merge pull request #8299 from vieux/pr_7425
Add --security-opts options to allow user to customize container labels and apparmor profile
2014-09-30 17:53:11 -07:00
Fred Lifton 42b377904b Edits and fixes to Dockerfile Best Practices based on review feedback.
Docker-DCO-1.1-Signed-off-by: Fred Lifton <fred.lifton@docker.com> (github: fredlf)
2014-09-30 13:30:14 -07:00
James Turnbull 5e69f4a188 Merge pull request #8291 from mieciu/master
Source the bash_completion after installation
2014-09-30 15:55:25 -04:00
James Turnbull 1d199f2d85 Merge pull request #8286 from ClusterHQ/8285-volume-api-docs
Document Volumes and Binds
2014-09-30 15:53:41 -04:00
Victor Vieux 08547dff29 update tests
Signed-off-by: Victor Vieux <vieux@docker.com>
2014-09-30 19:10:03 +00:00
Michael Crosby d4e5fa5728 Merge pull request #8092 from vishh/exec_api_docs
Exec remote API documentation
2014-09-30 11:50:23 -07:00
Vishnu Kannan 021ecb1d13 Adding exec remote API documentation along with minor code cleanup.
Docker-DCO-1.1-Signed-off-by: Vishnu Kannan <vishnuk@google.com> (github: vishh)
2014-09-30 18:26:58 +00:00
Victor Vieux 226bc669aa update docs
Signed-off-by: Victor Vieux <vieux@docker.com>
2014-09-30 18:15:23 +00:00
Doug Davis ee0b64f7a7 Add missing "tag" parameter to tag API
Closes #4877

Signed-off-by: Doug Davis <dug@us.ibm.com>
2014-09-30 10:53:29 -07:00
Alexandr Morozov e32b54fe35 Merge pull request #8263 from jfrazelle/filter-status-name
Filter containers by status.
2014-09-30 10:40:02 -07:00
Davide Ceretti 17500eb188 Prettify docs-update.py
Remove commented code, use format for string concatenation, split long lines, fix how-to-run instructions
Signed-off-by: Davide Ceretti <dav.ceretti@gmail.com>
2014-09-30 17:00:15 +01:00
unclejack 1b6da6a6fe Merge pull request #8309 from ArikaChen/master
Fix typo:betweem->between and PtySlace->PtySlave
2014-09-30 16:20:31 +03:00
ArikaChen bfc9d8bbea Fix typo:betweem->between and PtySlace->PtySlave
Signed-off-by: Arika Chen <eaglesora@gmail.com>
2014-09-30 07:22:09 -04:00
Rafe Colton 30d5a42c1f Move archive package into pkg/archive
Now that the archive package does not depend on any docker-specific
packages, only those in pkg and vendor, it can be safely moved into pkg.

Signed-off-by: Rafe Colton <rafael.colton@gmail.com>
2014-09-29 23:23:36 -07:00
Rafe Colton 73f4bfed81 Move Matches() file path matching function into pkg/fileutils
This is the second of two steps to break the archive package's
dependence on utils so that archive may be moved into pkg. `Matches()`
is also a good candidate pkg in that it is small, concise, and not
specific to docker internals

Signed-off-by: Rafe Colton <rafael.colton@gmail.com>
2014-09-29 23:21:41 -07:00
Rafe Colton b845a62149 Move Go() promise-like func from utils to pkg/promise
This is the first of two steps to break the archive package's dependence
on utils so that archive may be moved into pkg.  Also, the `Go()`
function is small, concise, and not specific to the docker internals, so
it is a good candidate for pkg.

Signed-off-by: Rafe Colton <rafael.colton@gmail.com>
2014-09-29 23:16:27 -07:00
Jessica Frazelle ea09f03682 Filter containers by status.
A continuation of #7616.
Adds `docker ps --filter=status=(restarting|running|paused|stopped)` option.

Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-09-29 20:11:19 -07:00
Fred Lifton 8128339bc8 Merge pull request #8281 from dfarrell07/master
Doc update to clarify EXPOSE vs -p functionality.
2014-09-29 18:55:11 -07:00
James Turnbull 4b311e1bd2 Merge pull request #8280 from duglin/Issue3636
Add more info about when build cache is invalidated/used - Issue #3636
2014-09-29 21:52:42 -04:00
Daniel Farrell 5730abc167 Doc update to clarify EXPOSE vs -p functionality.
Signed-off-by: Daniel Farrell <dfarrell@redhat.com>
2014-09-29 20:59:12 -04:00
unclejack 35005595b9 Merge pull request #8296 from scollier/typo
Fixed simple typo
2014-09-30 03:48:48 +03:00
Victor Vieux c2c5e57a8e add apparmor:
Signed-off-by: Victor Vieux <vieux@docker.com>
2014-09-30 00:43:47 +00:00
Tianon Gravi 07179a7eb1 Merge pull request #8293 from crosbymichael/update-libcontainer-sep8
Update libcontainer to c744f6470e37be5ce1f1ae09b842c15c1bee120d
2014-09-29 18:09:25 -06:00
Dan Walsh 87e732a0f3 Add --security-opts options to allow user to customize security configuration
security-opts will allow you to customise the security subsystem.

For example the labeling system like SELinux will run on a container.

    --security-opt="label:user:USER"   : Set the label user for the container
    --security-opt="label:role:ROLE"   : Set the label role for the container
    --security-opt="label:type:TYPE"   : Set the label type for the container
    --security-opt="label:level:LEVEL" : Set the label level for the container
    --security-opt="label:disabled"    : Turn off label confinement for the container

Since we are passing a list of string options instead of a space separated
string of options, I will change function calls to use InitLabels instead of
GenLabels.  Genlabels interface is Depracated.

Docker-DCO-1.1-Signed-off-by: Dan Walsh <dwalsh@redhat.com> (github: rhatdan)
2014-09-30 00:06:22 +00:00
Victor Vieux 595b5bf06e Merge pull request #8295 from crosbymichael/type-exec-context
Strongly type exec driver context
2014-09-29 17:02:53 -07:00
Scott Collier 35aa3fd5f2 Fixed simple typo
Signed-off-by: Scott Collier <emailscottcollier@gmail.com>
2014-09-29 18:58:47 -05:00
Victor Vieux 999d4117f6 Merge pull request #8112 from dmcgowan/libtrust_key_management
Libtrust key management
2014-09-29 16:32:48 -07:00
Jessica Frazelle 6c60e8c784 Adding self to various maintainers files.
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-09-29 15:43:07 -07:00
Michael Crosby 32dca1a7b0 Strongly type exec driver context
This also removes dead code in the native driver for a past feature that
was never fully implemented.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2014-09-29 22:40:26 +00:00
Victor Vieux 7c1aee6291 Merge pull request #8289 from duglin/FixTestcaseFor8230
Fixes the new testcase for PR #8230
2014-09-29 15:33:51 -07:00
Przemek Hejman 9f59e2223d Source the bash_completion after installation
Signed-off-by: Przemek Hejman <przemyslaw.hejman@gmail.com>
2014-09-29 23:37:51 +02:00
Michael Crosby 532c29ef7d Update native driver to set RootFs
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2014-09-29 21:35:25 +00:00
Fred Lifton a7d61e0ffb Merge pull request #8210 from dastergon/improve_gentoodoc
improve docs for Gentoo Linux installation
2014-09-29 14:35:21 -07:00
Michael Crosby 392eec2075 Update libcontainer to c744f6470e37be5ce1f1ae09b84
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2014-09-29 21:23:42 +00:00
Doug Davis 83f0f46b7c Add more info about when build cache is invalidated/used - Issue #3636
Plus some edits as suggested by @jamtur01

Closes #3636

Signed-off-by: Doug Davis <dug@us.ibm.com>
2014-09-29 14:13:39 -07:00
Pavlos Ratis f90d201d88 improve docs for Gentoo Linux installation
Changes summary:
    * Added available USE flags table(description included).
    * Added some tips regarding the use of docker in the Gentoo environment.
    * Sorted out docker installation ways.
    * Added information about the newly created Gentoo Docker team.
    * Misc improvements

Signed-off-by: Pavlos Ratis <dastergon@gentoo.org>
2014-09-29 23:59:43 +03:00
Doug Davis 8b3fbac15c Fixes the new testcase for PR #8230
This new version makes sure that the same context is used for the two
builds run in the test.  If you don't use the same build then about 1/2 the
time the file copied into the container will look like a different file,
probably due to timestamp differences.  But reusing the same context we
re-use the same file on disk and therefore avoid the change in timestamps,
and we use the cache on the 2nd build.

Signed-off-by: Doug Davis <dug@us.ibm.com>
2014-09-29 13:35:09 -07:00
Jessie Frazelle 826439c537 Merge pull request #8273 from duglin/Issue7941
Fix error paring null JSON - Issue7941
2014-09-29 12:59:34 -07:00
Tibor Vass 670c8696a2 Merge pull request #8284 from erikh/fix_cmd_again
builder: Fix CMD to inject /bin/sh -c when provided with a non-json value
2014-09-29 15:56:16 -04:00
Erik Hollensbe 9f142bf9be builder: Fix CMD to inject /bin/sh -c when provided with a non-json value.
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-09-29 12:22:18 -07:00
Jean-Paul Calderone 8e70d553f9 Document Volumes and Binds
Signed-off-by: Jean-Paul Calderone <jean-paul@clusterhq.com>
2014-09-29 14:59:48 -04:00
Alexandr Morozov 6cd8602827 Merge pull request #8047 from rhatdan/RemoveLocalDns
Remove nameserver 127.0.0.1 line rather then dumping resolv.conf
2014-09-29 11:58:27 -07:00
Brian Goff 8d7c7bd2e3 Fix potential race in volume creation
Docker-DCO-1.1-Signed-off-by: Brian Goff <cpuguy83@gmail.com> (github: cpuguy83)
2014-09-29 14:56:04 -04:00
James Turnbull 2682393ce1 Merge pull request #8227 from SvenDowideit/list-container-events
The list of events that 'grep' told me about
2014-09-29 14:34:48 -04:00
James Turnbull 1dae56c893 Merge pull request #8245 from filbranden/patch-1
Update google.md to point to latest container-vm version
2014-09-29 14:30:24 -04:00
Erik Hollensbe 1cd6135972 Merge pull request #8230 from duglin/Issue6820
add wildcard support to COPY/ADD (part 2 of issue #6820)
2014-09-29 11:19:01 -07:00
Victor Vieux 22bd54be4a Merge pull request #8276 from dqminh/8262-validate-build-tag
Fix #8262: check tag's validity before building.
2014-09-29 10:57:54 -07:00
Michael Crosby 74dbea81d6 Merge pull request #8175 from hqhq/master
graph: add VirtualSize for inspect output
2014-09-29 10:50:28 -07:00
Vincent Batts dab061bb64 Merge pull request #8282 from proppy/patch-10
api/server/MAINTAINERS: back from vacation
2014-09-29 13:12:06 -04:00
Johan Euphrosine 8019eec681 api/server/MAINTAINERS: back from vacation
Docker-DCO-1.1-Signed-off-by: Johan Euphrosine <proppy@google.com> (github: proppy)
2014-09-29 10:03:07 -07:00
Erik Hollensbe 27c5269b4e Merge pull request #8274 from tianon/parallel-shellshock
Move the body of go_compile_test_dir into a file since GNU Parallel breaks on sourcing exported Bash functions thanks to the shellshock fixes
2014-09-29 09:34:36 -07:00
James Turnbull 6fec88f0b3 Merge pull request #8246 from brahmaroutu/doc_resize_tty_7840
Documenting Container Tty resize api
2014-09-29 12:29:32 -04:00
James Turnbull a9e31285b5 Merge pull request #8255 from rhatdan/execman
docker-exec man page is not created.
2014-09-29 12:20:14 -04:00
Dan Walsh a297d6ab8c Replace utils.CheckLocalDns with bytes.Contains line
Since RemoveLocalDns patch will  remove all localhost entries
from resolv.conf we no longer need anything more then
!bytes.Contains(resolvConf, []byte("nameserver")

To check for no nameserver entry in dns config.

Docker-DCO-1.1-Signed-off-by: Dan Walsh <dwalsh@redhat.com> (github: rhatdan)
2014-09-29 06:37:31 -04:00
Dan Walsh 65640994fd Remove nameserver 127.0.0.1 line rather then dumping resolv.conf
We have a bug report complaining about docker dumping the contents of the
hosts resolv.conf if it container 127.0.0.1.  They asked that instead
of dropping the file altogether, that we just remove the line.

This patch removes the 127.0.0.1 lines, if they exist and then
checks if any nameserver lines exist.

Docker-DCO-1.1-Signed-off-by: Dan Walsh <dwalsh@redhat.com> (github: rhatdan)
2014-09-29 06:37:31 -04:00
Daniel, Dao Quang Minh 8833d800bf check tag's validity before building.
When user passes an invalid tag to `docker build`
(i.e.  `docker build -t abcd:A0123456789B0123456789C0123456789 .`), check the
tag first and terminate-early so user can specify the tag again

Docker-DCO-1.1-Signed-off-by: Daniel, Dao Quang Minh <dqminh89@gmail.com> (github: dqminh)
2014-09-29 06:21:54 -04:00
Tianon Gravi 8ffdf6022e Move the body of go_compile_test_dir into a file since GNU Parallel breaks on sourcing exported Bash functions thanks to the shellshock fixes
Signed-off-by: Andrew Page <admwiggin@gmail.com>
2014-09-28 21:51:44 -06:00
Doug Davis a7cd25b8b6 Fix error paring null JSON - Issue7941
Closes #7941

Treat a null in JSON, when reading the config of a container, as if the
property was never included.  W/o this fix the null would be saved in the
property as a string with a value of "null".

Signed-off-by: Doug Davis <dug@us.ibm.com>
2014-09-28 19:51:00 -07:00
Michael Crosby d142b18aab Merge pull request #8260 from cpuguy83/8259_fix_bindmount_symlink_reuse
Fix #8259 - Can't reuse symlink'd bindmount
2014-09-26 16:37:56 -07:00
Derek McGowan ea6a480128 Add libtrust key identity management
Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2014-09-26 15:52:08 -07:00
Derek McGowan a049ac32d1 Vendor libtrust
Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2014-09-26 15:48:12 -07:00
Vincent Batts 92df943fbf daemon logging: unifying output and timestamps
A little refactor of the ./pkg/log so engine can have a logger instance

Signed-off-by: Vincent Batts <vbatts@redhat.com>
2014-09-26 14:44:46 -04:00
Brian Goff 882223c0f8 Fix #8259 - Can't reuse symlink'd bindmount
volumes.Get was not checking for symlinked paths meanwhile when adding a
new volume it was following the symlink.
So when trying to use a bind-mount that is a symlink, the volume is
added with the correct path, but when another container tries to use the
same volume it got a "Volume exists" error because volumes.Get returned
nil and as such attempted to create a new volume.

Docker-DCO-1.1-Signed-off-by: Brian Goff <cpuguy83@gmail.com> (github: cpuguy83)
2014-09-26 14:36:44 -04:00
Michael Crosby 0bb5f98731 Merge pull request #8233 from tiborvass/pr-7658
Fix Interactive container hangs when redirecting stdout
2014-09-26 11:31:29 -07:00
Victor Vieux bef8bad9d1 Merge pull request #8254 from unclejack/bump_go_to_1.3.2
bump Go to 1.3.2
2014-09-26 10:34:19 -07:00
Srini Brahmaroutu c7f3fdc629 Documenting Container Tty resize api
Addresses #7840

Signed-off-by: Srini Brahmaroutu <srbrahma@us.ibm.com>
2014-09-26 16:26:21 +00:00
Tibor Vass 07da2e03b1 Merge pull request #8224 from cpuguy83/7843_fix_start_attach_error_hang
Fix #7843 start -a can cause frozen term
2014-09-26 11:54:39 -04:00
Brian Goff 9ae9d7db57 Fix #7843
When doing `docker start -a` on a container that won't start, terminal
was getting stuck on the attach, even after container removal.

Docker-DCO-1.1-Signed-off-by: Brian Goff <cpuguy83@gmail.com> (github: cpuguy83)
2014-09-26 11:31:02 -04:00
Dan Walsh 0a8fb80d99 docker-exec man page is not created.
docker-exec.md needs to be renamed in order to build man page.
Should be docker-exec.1.md

Docker-DCO-1.1-Signed-off-by: Dan Walsh <dwalsh@redhat.com> (github: rhatdan)
2014-09-26 09:31:59 -04:00
unclejack 0f15221240 bump Go to 1.3.2
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-09-26 12:48:28 +03:00
James Turnbull 3151ecd7bb Merge pull request #8252 from SvenDowideit/sven-oct-2014-pto
comment out my MAINTAINER line: Gone Camping
2014-09-25 23:46:26 -07:00
Sven Dowideit afacaba79b Gone Camping
Docker-DCO-1.1-Signed-off-by: Sven Dowideit <SvenDowideit@docker.com> (github: SvenDowideit)
2014-09-26 14:28:39 +10:00
Doug Davis acd40d5079 add wildcard support to copy/add
Signed-off-by: Doug Davis <dug@us.ibm.com>
2014-09-25 20:44:51 -07:00
SvenDowideit 71e28f9d64 Add the 2 image events found using git grep 'Job("log"'
Docker-DCO-1.1-Signed-off-by: SvenDowideit <SvenDowideit@home.org.au> (github: SvenDowideit)
2014-09-26 11:55:36 +10:00
SvenDowideit 05060a7c94 The list of events that 'grep' told me about
docker(master) $ git grep 'LogEvent("' | sed 's/.*("//' | sed 's/").*//'
| sort | uniq | paste -s -d","
create,destroy,die,export,kill,pause,restart,start,stop,unpause

Docker-DCO-1.1-Signed-off-by: SvenDowideit <SvenDowideit@home.org.au> (github: SvenDowideit)
2014-09-26 11:25:36 +10:00
Sven Dowideit 6df533adb4 Merge pull request #8209 from brahmaroutu/doc_dockerignore_7724
Adding details on how to use .dockerignore file
2014-09-26 10:53:36 +10:00
Victor Vieux f721075283 Merge pull request #8237 from dmcgowan/tarsum_buffer_fix
tarsum: fix panic with dynamic buffer
2014-09-25 16:22:02 -07:00
Jessie Frazelle 0dfee56ca4 Merge pull request #8247 from aluzzardi/f-run-hostconfig
API: Provide the HostConfig during "run".
2014-09-25 16:09:55 -07:00
Derek McGowan 5cdf7f5077 pkg/tarsum: fix panic with dynamic buffer
When read is called on a tarsum with a two different read sizes, specifically the second call larger than the first, the dynamic buffer does not get reallocated causing a slice read error.

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2014-09-25 15:58:35 -07:00
Victor Vieux 0913009ebe Merge pull request #8191 from vieux/improve_error_exec_lxc
Improve error for docker exec & LXC
2014-09-25 15:58:21 -07:00
Andrea Luzzardi 1df87b9506 API: Provide the HostConfig during "run".
Currently, the HostConfig is only passed from the CLI to Docker only
when issuing a docker create, but not when doing a docker run.

In the near future, in order to allocate ports at creation time rather
than start time, we will need to have the HostConfig readily available
at container creation.

This PR makes the client always pass the HostConfig when creating a
container (regardless of whether it's for a run or create).

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2014-09-25 15:24:38 -07:00
Filipe Brandenburger 7c22b3d599 Update google.md to point to latest container-vm version
In order to match the version listed here:
https://cloud.google.com/compute/docs/containers/container_vms#starting_a_bare_container-vm_instance
2014-09-25 15:19:59 -07:00
Jessie Frazelle 1d8c66347e Merge pull request #8241 from vbatts/vbatts-devmapper_version
devmapper: include the version in `info`
2014-09-25 14:53:43 -07:00
Erik Hollensbe 993033d67a Merge pull request #8239 from erikh/hack_options
hack: TIMEOUT (for controlling test timeout) and forwarding of BUILDFLAGS to binary/dynbinary.
2014-09-25 14:36:00 -07:00
Jessie Frazelle 1156314589 Merge pull request #8243 from vieux/not_not
not not -> not
2014-09-25 14:35:26 -07:00
Erik Hollensbe aa129b356f hack: TIMEOUT (for controlling test timeout) and forwarding of
BUILDFLAGS to binary/dynbinary.

Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-09-25 14:25:43 -07:00
Victor Vieux d19d800898 not not -> not
Signed-off-by: Victor Vieux <vieux@docker.com>
2014-09-25 21:23:27 +00:00
Vincent Batts 5630d466b2 devmapper: include the version in info
Signed-off-by: Vincent Batts <vbatts@redhat.com>
2014-09-25 15:51:02 -04:00
Srini Brahmaroutu d7725ececa Adding details on how to use .dockerignore file
Addresses #7724

Signed-off-by: Srini Brahmaroutu <srbrahma@us.ibm.com>
2014-09-25 12:48:17 -07:00
Tibor Vass 1379c6ec50 Merge pull request #8193 from jfrazelle/8141-pull-all-image-aliases-for-id
Pull all image aliases for id
2014-09-25 15:22:46 -04:00
Fred Lifton d024a6a316 Merge pull request #8228 from SvenDowideit/latest-commandline-doc-changes
Updated output from the docker cli help
2014-09-25 12:03:10 -07:00
Tibor Vass 29a62ceefc Add DockerCli tests
Signed-off-by: Tibor Vass <teabee89@gmail.com>
2014-09-25 20:58:43 +02:00
Vojtech Vitek (V-Teq) d742c57f53 DockerCli: Check IsTerminal() for both STDIN and STDOUT
`docker events > /tmp/out` should not print control
characters to non-terminal STDOUT.

This addresses commit 26b4a4920a
without creating regression described in issue #6509.

Signed-off-by: Vojtech Vitek (V-Teq) <vvitek@redhat.com>
2014-09-25 20:58:24 +02:00
Victor Vieux e2728d9892 Merge pull request #8235 from duglin/Issue2515
Add checks for app/json - issue #2515
2014-09-25 11:56:31 -07:00
Jessica Frazelle 7d74be162c Pull all image aliases for id. Closes #8141.
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-09-25 11:48:49 -07:00
Victor Vieux 857b739e29 Merge pull request #8208 from estesp/7851-fix-hostname-fqdn
Provide full hostname with domainname to underlying container layer
2014-09-25 11:33:50 -07:00
Vojtech Vitek (V-Teq) 40c7b53791 Fix #6509: Interactive container hangs when redirecting stdout
Cli IsTerminal() SYS_IOCTL operation should be determined from STDIN,
not from STDOUT.

Signed-off-by: Vojtech Vitek (V-Teq) <vvitek@redhat.com>
2014-09-25 20:14:25 +02:00
Tibor Vass d369612b41 Merge pull request #7994 from erikh/parser_fix_volume_parsing
builder: Fix handling of VOLUME command where multiple volumes are specified in a space delimited list.
2014-09-25 12:45:48 -04:00
Erik Hollensbe a5ca549a18 builder: Fix handling of VOLUME command where multiple volumes are
specified in a space delimited list.

Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-09-25 09:44:19 -07:00
Doug Davis e2b8d4bd4a Add checks for app/json - issue #2515
Signed-off-by: Doug Davis <dug@us.ibm.com>
2014-09-25 08:54:48 -07:00
Vincent Batts 8e7aa44f0e devmapper: include dm_deps information in debug
Signed-off-by: Vincent Batts <vbatts@redhat.com>
2014-09-25 10:59:23 -04:00
Phil Estes 5239ba3d06 Provide full hostname with domainname to underlying container layer
Addresses #7851

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2014-09-25 09:23:39 -04:00
SvenDowideit cb6b196ab4 Updated output from the docker cli help
Docker-DCO-1.1-Signed-off-by: SvenDowideit <SvenDowideit@home.org.au> (github: SvenDowideit)
2014-09-25 16:07:55 +10:00
Sven Dowideit 4547b6d529 Merge pull request #8205 from sequenceiq/master
Fix code example formatting in best-practices article
2014-09-25 12:34:36 +10:00
Sven Dowideit 2431345639 Merge pull request #8212 from hugoduncan/patch-1
Fix quoting of TESTFLAGS in devenvironment.md
2014-09-25 12:34:12 +10:00
Tibor Vass 3fa0ed0142 Merge pull request #8195 from tiborvass/migrate-get.docker.io
Replace get.docker.io -> get.docker.com and test.docker.io -> test.docker.com
2014-09-24 19:06:09 -04:00
Tibor Vass 808257654a Replace get.docker.io -> get.docker.com and test.docker.io -> test.docker.com
Signed-off-by: Tibor Vass <teabee89@gmail.com>
2014-09-24 18:53:27 -04:00
Victor Vieux a936842208 Merge pull request #8207 from LK4D4/rewrite_more_fixtures_test
Rewrite more fixtures test to not use fixtures.
2014-09-24 15:07:03 -07:00
Andrea Luzzardi 4479d69d56 Merge pull request #8200 from aluzzardi/f-ipallocator-check-range
IPAllocator: Ensure the allocated IPs are within network range.
2014-09-24 14:29:39 -07:00
Andrea Luzzardi a471eb4d93 IPAllocator: Ensure the allocated IPs are within network range.
Since it is possible to request a specific IP, IPAllocator has to verify
that the request is within boundaries.

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2014-09-24 11:04:28 -07:00
unclejack f2fad5c290 Merge pull request #8173 from crosbymichael/update-mem-limit
Update memory limit for container
2014-09-24 20:55:25 +03:00
Hugo Duncan 7aa88a4ff6 Fix quoting of TESTFLAGS in devenvironment.md
Copy and pasting the example should now work, rather than TESTFLAGS being silently ignored.
2014-09-24 13:30:39 -04:00
Victor Vieux 75ecfdd63c Merge pull request #8182 from LK4D4/logjson_benchmark
pkg/logjson benchmark and test
2014-09-24 10:00:22 -07:00
Alexandr Morozov d302d92961 Rewrite TestContextTar tests to not use fixtures
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-09-24 17:09:18 +04:00
Alexandr Morozov 51a56399f6 Rewrite TestBuildWithInaccessibleFilesInContext to not use fixtures
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-09-24 17:09:14 +04:00
Alexandr Morozov 52cf331206 Rewrite TestBuildRm to not use fixtures
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-09-24 13:15:55 +04:00
Lajos Papp be4454c4f0 Fix code example formatting in best-practices article
Signed-off-by: Lajos Papp <lajos.papp@sequenceiq.com>
2014-09-24 10:45:56 +02:00
Alexandr Morozov ab4738b49f Rewrite TestBuildHistory to not use fixtures
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-09-24 12:38:48 +04:00
Alexandr Morozov 1625cbfc4c Rewrite TestBuildForceRm to not use fixtures
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-09-24 12:29:27 +04:00
Fred Lifton 8dd11c7175 Merge pull request #8197 from fredlf/adding_official-repo-guidelines
Docs for Official Repo release
2014-09-23 20:55:07 -07:00
Fred Lifton f68f5fd521 Merge pull request #8157 from SvenDowideit/sshd-pam-fix
Fix for user kicked off after login on some hosts
2014-09-23 20:42:27 -07:00
Fred Lifton a1609a7324 Merge pull request #8178 from SvenDowideit/systemd-example-moved
That Systemd example URL isn't there anymore
2014-09-23 20:41:13 -07:00
Fred Lifton 950eccab4a Revisions and edits based on feedback.
Docker-DCO-1.1-Signed-off-by: Fred Lifton <fred.lifton@docker.com> (github: fredlf)
2014-09-23 18:26:02 -07:00
Victor Vieux 827634d355 Merge pull request #7973 from LK4D4/persist_execdriver_dir
Persist execdriver dir
2014-09-23 16:01:03 -07:00
Fred Lifton 6747dfc803 Typo and formatting fixes. Copy edits.
Docker-DCO-1.1-Signed-off-by: Fred Lifton <fred.lifton@docker.com> (github: fredlf)
2014-09-23 15:51:17 -07:00
Tibor Vass b12f3a6cca Merge pull request #8192 from unclejack/lower_timeout_integ
integration: lower timeout for stop/restart tests
2014-09-23 18:46:58 -04:00
unclejack 6a5f09b752 integration: lower timeout for stop/restart tests
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-09-24 01:20:41 +03:00
Victor Vieux 81a643211b Merge pull request #8186 from duglin/ErrInCopyCache
Make sure COPY/ADD on dirs doesn't grab too many files
2014-09-23 15:16:57 -07:00
Tibor Vass 27567e5593 Merge pull request #8187 from erikh/builder_onbuild_output
builder: properly communicate onbuild trigger information during subsequent builds.
2014-09-23 18:04:59 -04:00
Victor Vieux ab30e19b96 Improve error for docker exec & LXC
Signed-off-by: Victor Vieux <vieux@docker.com>
2014-09-23 21:47:33 +00:00
Fred Lifton d9fd5f6199 Adding new Dockerfile Best Practices doc, and links thereto.
Docker-DCO-1.1-Signed-off-by: Fred Lifton <fred.lifton@docker.com> (github: fredlf)
2014-09-23 14:21:00 -07:00
Doug Davis cd329d062b Make sure COPY/ADD on dirs doesn't grab too many files
Add check for / first - per LK4D4's comment.
Add a comment to explain why we're adding a /

Signed-off-by: Doug Davis <dug@us.ibm.com>
2014-09-23 14:16:00 -07:00
Erik Hollensbe 8edacc673a builder: properly communicate onbuild trigger information during
subsequent builds.

Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-09-23 13:55:51 -07:00
Victor Vieux 42ec80bec0 Merge pull request #8101 from jfrazelle/6974-correct-ct-json-stream
Change content-type for json stream to application/x-json-stream.
2014-09-23 11:24:31 -07:00
Tibor Vass e3f1f0d354 Merge pull request #8170 from duglin/Issue7547
Allow user to change email/passwd via login - Issue 7547
2014-09-23 13:57:56 -04:00
Tibor Vass 5ce7ee61ef Merge pull request #8179 from erikh/parser_fix_cmd_null
Parser fix cmd null
2014-09-23 13:42:55 -04:00
Victor Vieux f2bc723bc6 Merge pull request #8181 from rhatdan/selinux_btrfs
--selinux-enabled flag should be ignored on Disabled SELinux systems
2014-09-23 10:31:19 -07:00
Michael Crosby 437fa0650e Merge pull request #8165 from duglin/Issue7309
If the Rename during an image delete fails, just delete the original dir  - Issue #7309
2014-09-23 10:28:48 -07:00
Dan Walsh 9e2eb0f1cc --selinux-enabled flag should be ignored on Disabled SELinux systems
On Fedora and RHEL we ship selinux-enabled flag in the docker.service config,
but if people setup the /var/lib/docker as btrfs and disable SELinux,
we should not block the daemon from running.

Docker-DCO-1.1-Signed-off-by: Dan Walsh <dwalsh@redhat.com> (github: rhatdan)
2014-09-23 13:21:25 -04:00
Victor Vieux 7e461915a6 Merge pull request #8168 from LK4D4/rewrite_fixture_tests
Rewrite some tests to not use fixtures
2014-09-23 10:02:59 -07:00
Tibor Vass 5c110b63dd Merge pull request #8127 from estesp/8107-fix-wait-error-return
Fix container wait error message to match server template for returning ...
2014-09-23 12:03:39 -04:00
Alexandr Morozov 2add198a7a Test for jsonlog.WriteLog
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-09-23 19:19:25 +04:00
Alexandr Morozov 0c899cefdd Rewrite TestBuildAddWholeDirToRoot to not use fixtures
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-09-23 18:58:32 +04:00
Alexandr Morozov 570f1153b9 Rewrite TestBuildAddEtcToRoot to not use fixtures
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-09-23 18:58:28 +04:00
Tibor Vass 9941b03af1 Merge pull request #8172 from vbatts/vbatts-devmapper_fix_devicset_status_devices
devmapper: `docker info` devices hard coded
2014-09-23 10:28:31 -04:00
Alexandr Morozov 81c9927f8f Benchmark for jsonlog.WriteLog
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-09-23 18:24:18 +04:00
Alexandr Morozov c58391bbd0 Rewrite TestBuildAddDirContentToExistDir to not use fixtures
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-09-23 15:15:58 +04:00
Alexandr Morozov 2d802d7f23 Rewrite TestBuildAddDirContentToRoot to not use fixtures
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-09-23 15:15:58 +04:00
Alexandr Morozov 139b6ed3aa Rewrite TestAddSingleFileToNonExistDir to not use fixtures
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-09-23 15:15:58 +04:00
Alexandr Morozov 6bb44b6d74 Rewrite TestAddSingleFileToExistDir to not use fixtures
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-09-23 15:15:58 +04:00
Alexandr Morozov 5e2ea69606 Rewrite TestAddSingleFileToWorkdir to not use fixtures
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-09-23 15:15:58 +04:00
Alexandr Morozov 682fbe0134 Rewrite TestAddSingleFileToRoot to not use fixtures
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-09-23 15:15:09 +04:00
Alexandr Morozov 3824ec62e8 Rewrite TestBuildSixtySteps to not use fixtures
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-09-23 15:15:09 +04:00
Erik Hollensbe d1613e1d59 builder: integration-cli test for the previous commit.
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-09-22 23:18:46 -07:00
Erik Hollensbe 1e93639aed builder: Appropriately initialize the Cmd in runconfig.
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-09-22 23:10:05 -07:00
Sven Dowideit 46319a5c33 That URL isn't there anymore
Docker-DCO-1.1-Signed-off-by: Sven Dowideit <SvenDowideit@docker.com> (github: SvenDowideit)
2014-09-23 15:04:00 +10:00
Doug Davis 86a3a9a282 if the Rename during an image delete fails, just delete the original dir
Signed-off-by: Doug Davis <dug@us.ibm.com>
2014-09-22 18:47:20 -07:00
Tianon Gravi 3ea5a20776 Merge pull request #8094 from smerrill/feature/avoid-docker-start-woes
Try to avoid issues when the Docker daemon restarts or stops on RHEL/CentOS 6
2014-09-22 19:06:51 -06:00
Qiang Huang ec000cbf30 graph: add VirtualSize for inspect output
Currently inspect output just shows Size info, and that usally be
very small and even 0 which is confusing.

Fixes #8016

Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2014-09-23 08:42:32 +08:00
Sven Dowideit 513f5a358a Merge pull request #8156 from SvenDowideit/tedyoung-patch-1
Misc. fixes and formatting clean-up
2014-09-23 10:16:05 +10:00
Sven Dowideit ab43ad7d5f Apply @tedyoung's changes to the entire set of API docs.
Docker-DCO-1.1-Signed-off-by: Sven Dowideit <SvenDowideit@docker.com> (github: SvenDowideit)
2014-09-23 10:09:49 +10:00
Ted M. Young f304d4b190 Misc. fixes and formatting clean-up
Cleaned up and corrected some invalid "example responses".
Added some missing double-quotes for examples that resulted in invalid JSON.
Other general cleanup of stray characters and typos.

Docker-DCO-1.1-Signed-off-by: Ted M. Young <tedyoung@gmail.com> (github: SvenDowideit)
2014-09-23 10:09:49 +10:00
Victor Vieux 99caa68a46 Merge pull request #7564 from unclejack/integcli-add_utils
integration cli: add some utility functions and use them
2014-09-22 17:00:01 -07:00
Sven Dowideit 60f6b0299a Merge pull request #8123 from dcro/docs-clarifications
Updated the documentation to to clarify random port mapping when using -...
2014-09-23 09:57:19 +10:00
Michael Crosby 9b755412ab Update memory limit for container
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2014-09-22 21:41:14 +00:00
Vincent Batts 636e8561a8 devmapper: resizepool hardcodes files as well
Signed-off-by: Vincent Batts <vbatts@redhat.com>
2014-09-22 17:03:31 -04:00
Vincent Batts 7e9ba22dc3 devmapper: docker info devices hard coded
If `--storage-opt dm.datadev=/dev/loop0 --storage-opt
dm.metadatadev=/dev/loop1 ` were provided, the information was not
reflected in the information output.

Closes: #7137

Signed-off-by: Vincent Batts <vbatts@redhat.com>
2014-09-22 16:40:20 -04:00
Alexandr Morozov 4778d7d52d Merge pull request #8125 from somaopensource/8102-fix
Check whether net.ParseIP returned nil or not
2014-09-22 23:00:25 +04:00
Doug Davis e315493b0c Allow user to change email/passwd via login
Signed-off-by: Doug Davis <dug@us.ibm.com>
2014-09-22 11:58:09 -07:00
Alexandr Morozov 652cd6a842 Test on execdriver dir behavior
Signed-off-by: Alexandr Morozov <lk4d4math@gmail.com>
2014-09-22 22:49:21 +04:00
Alexandr Morozov 623ebf203b Persistent directory for container in execdriver
This is needed for persistent namespaces

Signed-off-by: Alexandr Morozov <lk4d4math@gmail.com>
2014-09-22 22:48:26 +04:00
unclejack 06d0853682 Merge pull request #8169 from unclejack/avoid_attach_alloc
daemon/attach: avoid mem alloc for interface
2014-09-22 21:29:50 +03:00
unclejack 950bfe4193 daemon/attach: avoid mem alloc for interface
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-09-22 21:17:50 +03:00
Victor Vieux 350b1cf6ea Merge pull request #5956 from vbatts/vbatts-tarsum_hashes
tarsum: allow for generic hashes
2014-09-22 11:11:25 -07:00
unclejack c6965e3e45 integcli: add & use dockerCmdWithTimeout & InDir
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-09-22 21:02:51 +03:00
Victor Vieux 28e308c25e Merge pull request #7942 from estesp/7747-stderr-stdout-bug
Fix gh#7747: filter bare newline output and log client pull to stdout
2014-09-22 10:53:34 -07:00
unclejack 5d1cb9d005 integcli: add util to fetch container status
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-09-22 20:34:57 +03:00
unclejack 97b50e0f29 integcli: consolidate cmd exit code processing
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-09-22 20:32:50 +03:00
Jessica Frazelle 10ab2089ce Change content-type for json stream to application/x-json-stream.
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-09-22 10:29:56 -07:00
Tibor Vass ac75835931 Merge pull request #8109 from unclejack/avoid_jsonlog_alloc
daemon/logs: avoid JSONLog struct alloc in loop
2014-09-22 12:53:31 -04:00
unclejack c8f5c686a5 Merge pull request #8166 from unclejack/integcli_pull_scratch
integcli: pull scratch for pull test
2014-09-22 19:16:30 +03:00
unclejack 77d29847e2 integcli: pull scratch for pull test
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-09-22 19:03:19 +03:00
unclejack d2c104c3a0 daemon/logs: lower allocations in loop
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-09-22 18:57:28 +03:00
unclejack 473bb5274c pkg/jsonlog: avoid JSONLog allocation in loop
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-09-22 18:57:28 +03:00
Tibor Vass 9c7d975614 Merge pull request #8159 from LK4D4/fix_goroutine_leak_in_logs
Fix goroutine leak in logs following
2014-09-22 11:16:48 -04:00
Alexandr Morozov 1df4255102 Merge pull request #8164 from unclejack/fix_utils_race
integcli: fix race in runCommandWithStdoutStderr
2014-09-22 19:14:40 +04:00
unclejack c69896d8a0 integcli: fix race in runCommandWithStdoutStderr
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-09-22 17:53:12 +03:00
Tibor Vass 3c03506cc2 Merge pull request #8121 from bbinet/cleanup-hello-world-container
Automatically clean up hello-world container with --rm
2014-09-22 10:52:50 -04:00
unclejack 9fb34ae571 Merge pull request #6101 from LK4D4/ip_range_#4986
Implement allocating IPs from CIDR within bridge network
2014-09-22 17:09:16 +03:00
Alexandr Morozov 5ad82d3ea6 Merge pull request #8137 from jfrazelle/8135-event-log-die-start-fail
After container fails to start, log the event die.
2014-09-22 12:47:04 +04:00
Oh Jinkyun c2dc4245f1 Check whether net.ParseIP returned nil or not
This is fix of #8102

Signed-off-by: Oh Jinkyun <tintypemolly@gmail.com>
2014-09-22 16:52:23 +09:00
Alexandr Morozov a7ee201ee8 Close logs pipes and catch write errors
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-09-22 10:55:46 +04:00
Alexandr Morozov fd3f2e175f Change unused WriteCloser to Writer
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-09-22 10:54:58 +04:00
Dan Cotora a8775d2f9a Doc update to clarify random port mapping on docker run -P
Signed-off-by: Dan Cotora <d@bluevision.ro>
2014-09-22 08:39:09 +03:00
SvenDowideit 7faa43d707 Fix for user kicked off after login on some hosts
Docker-DCO-1.1-Signed-off-by: SvenDowideit <SvenDowideit@home.org.au> (github: SvenDowideit)
2014-09-22 13:33:38 +10:00
Sven Dowideit 27226d47c1 Merge pull request #8124 from jyrkiput/patch-1
Fix detaching from attached container
2014-09-22 09:28:10 +10:00
Sven Dowideit 23fdbbfee4 Merge pull request #8151 from shazow/sort-exec-docs
Cleanup: Fixed cli docs' command header sorting
2014-09-22 09:21:38 +10:00
Andrey Petrov c5805c8772 Cleanup: Fix cli docs: Sorted command headers.
Signed-off-by: Andrey Petrov <andrey.petrov@shazow.net>
2014-09-20 18:10:11 -07:00
Alexandr Morozov e7a9662974 Merge pull request #7972 from cpuguy83/split_volumes_from_daemon
Split volumes out from daemon
2014-09-20 16:23:20 +04:00
Alexandr Morozov f8c998c605 Merge pull request #8144 from crosbymichael/reduce-logging
This reduces the amount of logging in the integration tests
2014-09-20 11:17:03 +04:00
Michael Crosby 8a9e827216 This reduces the amount of logging in the integration tests
There were a new areas in the brige driver that did not need to have log
output.  Those were removed.  Also set the engine's logging to false
when running the integration tests.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2014-09-19 17:30:37 -07:00
Jessica Frazelle d64d55eca8 After container fails to start, log the event die.
Fixes #8135.

Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-09-19 16:06:49 -07:00
Jessie Frazelle 11446d30f7 Merge pull request #8139 from aluzzardi/fix-drone-integration-goenv
Fix drone integration
2014-09-19 16:05:52 -07:00
Brian Goff 45407cf00a Split volumes out from daemon
Docker-DCO-1.1-Signed-off-by: Brian Goff <cpuguy83@gmail.com> (github: cpuguy83)
2014-09-19 17:47:47 -05:00
Andrea Luzzardi 07cedaab86 Drone Config: Disable integration-cli/docker_cli_exec_test as it breaks.
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2014-09-19 15:40:48 -07:00
Andrea Luzzardi 72fe4c8daa Drone Config: Use AUTO_GOPATH instead of hacking around.
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2014-09-19 15:20:35 -07:00
Jessie Frazelle ba726d9148 Merge pull request #8129 from vbatts/vbatts-archive_comments
archive: adding comment to exported functions
2014-09-19 14:36:52 -07:00
Tianon Gravi 77193089d8 Merge pull request #8130 from aluzzardi/f-drone-integration
Add drone.io configuration
2014-09-19 14:59:40 -06:00
Tibor Vass 7fafe170cf Merge pull request #8133 from crosbymichael/update-libcontainer-sep7
Update libcontainer to 185328a42654f6dc9a41814e578
2014-09-19 14:58:51 -04:00
Michael Crosby 63c8b8bf30 Merge pull request #8131 from unclejack/fix_perm_detection
integcli: fix permission detection for aufs
2014-09-19 11:55:56 -07:00
Jessie Frazelle a8e964ebb2 Merge pull request #8134 from LK4D4/prefix_naming_cli
Prefix naming integration-cli tests
2014-09-19 11:54:04 -07:00
Michael Crosby c41bc79098 Merge pull request #8118 from tiborvass/merge-8031
FIX 6613:launch docker fail with space named drive (squashed commits from 8031)
2014-09-19 11:44:43 -07:00
Michael Crosby 2531fba389 Update libcontainer to 185328a42654f6dc9a41814e578
Mac address support to the netlink pkg.
Cgroup performance and memory issues.
Netlink refactoring.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2014-09-19 11:21:44 -07:00
Erik Hollensbe 41f2b3c6bc Merge pull request #8128 from bfirsh/two-level-cli-commands
Add support for multiple level CLI commands
2014-09-19 11:14:36 -07:00
Alexandr Morozov 2e2422b0eb Use prefix naming for rmi tests
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-09-19 22:11:54 +04:00
Alexandr Morozov cc54b77fce Use prefix naming for rm tests
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-09-19 22:11:54 +04:00
Alexandr Morozov 1ddd013b19 Use prefix naming for restart tests
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-09-19 22:11:54 +04:00
Alexandr Morozov 00b82fcab6 Use prefix naming for ps tests
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-09-19 22:11:54 +04:00
Alexandr Morozov 6e8c9e7bee Use prefix naming for port tests
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-09-19 22:11:54 +04:00
Alexandr Morozov b6325907e9 Use prefix naming for links tests
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-09-19 22:11:54 +04:00
Alexandr Morozov 27a27b7388 Use prefix naming for create tests
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-09-19 22:11:54 +04:00
Alexandr Morozov 66cd3640f1 Use prefix naming for build tests
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-09-19 22:11:50 +04:00
unclejack 1a0347ff1d integcli: fix permission detection for aufs
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-09-19 21:08:57 +03:00
Vincent Batts 0fe56ce1b9 archive: adding comment to exported functions
Signed-off-by: Vincent Batts <vbatts@redhat.com>
2014-09-19 14:02:12 -04:00
Andrea Luzzardi ed072ed71d Add drone.io configuration
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2014-09-19 11:00:28 -07:00
Alexandr Morozov f312f784e1 Use prefix naming for attach tests
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-09-19 21:56:25 +04:00
Alexandr Morozov 3812a6a846 Use prefix naming for inspect tests
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-09-19 21:56:25 +04:00
Alexandr Morozov 9720078f9e Use prefix naming for events test
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-09-19 21:56:25 +04:00
Alexandr Morozov aa536b27a7 Use prefix naming for docker_cli_run_test.go
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-09-19 21:56:24 +04:00
Ben Firshman e1b968f198 Add support for multiple level CLI commands
E.g. "docker groups create" will attempt to call the function
CmdGroupsCreate

Signed-off-by: Ben Firshman <ben@firshman.co.uk>
2014-09-19 10:43:50 -07:00
Phil Estes be6bce6ab8 Fix container wait error message to match server template for returning 404
Addresses #8107

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com>
2014-09-19 13:33:00 -04:00
Jyrki Puttonen 1d2a1598c5 Fix detaching from attached container
Text was copied from man-pages https://raw.githubusercontent.com/docker/docker/master/docs/man/docker-attach.1.md

Signed-off-by: Jyrki Puttonen <jyrkiput@gmail.com>
2014-09-19 19:34:05 +03:00
Guillaume Dufour acea488eb6 FIX 6613:launch docker fail with space named drive
Signed-off-by: Guillaume Dufour <guillaume.duff@gmail.com>
Signed-off-by: Tibor Vass <teabee89@gmail.com>
2014-09-19 12:07:53 -04:00
Erik Hollensbe e91de29e08 Merge pull request #8076 from duglin/MultiCopyAdd
Add support for copy/add with multiple src files
2014-09-19 09:01:29 -07:00
Bruno Binet d78936b418 Automatically clean up hello-world container with --rm
Signed-off-by: Bruno Binet <bruno.binet@gmail.com>
2014-09-19 12:22:39 +02:00
Sven Dowideit 39ed048aab Merge pull request #8091 from jfrazelle/exec-main-manpage
Add docker-exec to main manpage
2014-09-19 16:17:11 +10:00
James Turnbull 742eb7e001 Merge pull request #8116 from SvenDowideit/use-boot2docker-shellinit
boot2docker shellinit will set any and all env vars needed.
2014-09-19 00:46:15 -04:00
Doug Davis 05b8a1eb36 Add support for copy/add with multiple src files
Part one of solution for issue #6820

Signed-off-by: Doug Davis <dug@us.ibm.com>
2014-09-18 20:12:13 -07:00
Michael Crosby 72e9015591 Merge pull request #7694 from eyakubovich/master
Add an option to disable IP masquerading
2014-09-18 18:33:45 -07:00
Michael Crosby d5537e0f03 Merge pull request #6950 from jfrazelle/6831-check-flag-centos6.5
Fix duplicate iptables rules
2014-09-18 17:51:15 -07:00
Sven Dowideit 82aa895c6d Merge pull request #8061 from SvenDowideit/document-image-tarball-format
Add a little description of the image tarball format.
2014-09-19 10:32:13 +10:00
Jessie Frazelle 031231b5ed Merge pull request #8111 from acroca/master
Grammar fix
2014-09-18 17:27:24 -07:00
Sven Dowideit 7797572249 boot2docker shellinit will set any and all env vars needed.
Docker-DCO-1.1-Signed-off-by: Sven Dowideit <SvenDowideit@docker.com> (github: SvenDowideit)
2014-09-19 10:20:12 +10:00
Albert Callarisa 4e11902d05 'an file' -> 'a file' grammar fix
Signed-off-by: Albert Callarisa Roca <albert@acroca.com>
2014-09-19 08:12:33 +08:00
Alexandr Morozov e909bbccc3 Merge pull request #8115 from vishh/exec_panic_fix
Initialize execStore while restoring a container from checkpoint.
2014-09-19 02:22:51 +04:00
Jessica Frazelle 42dafe4bd8 test for panic on daemon restart
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-09-18 21:54:42 +00:00
Vishnu Kannan 003afaf1ce Initialize execStore while restoring a container from checkpoint.
Docker-DCO-1.1-Signed-off-by: Vishnu Kannan <vishnuk@google.com> (github: vishh)
2014-09-18 21:40:53 +00:00
Vincent Batts 4e9925d780 tarsum: allow for alternate block ciphers
Not breaking the default cipher and algorithm for calculating checksums,
but allow for using alternate block ciphers during the checksum
calculation.

Docker-DCO-1.1-Signed-off-by: Vincent Batts <vbatts@redhat.com> (github: vbatts)
2014-09-18 10:34:58 -04:00
Steven Merrill 640d2ef6f5 Try to avoid issues when the Docker daemon restarts.
This change will allow the Docker daemon's init script to wait up to 5
minutes before being forcibly terminated by the initscript. Many
non-trivial containers will take more than the default 3 seconds to
stop, which can result in containers whose rootfs is still mounted and
will not restart when the daemon starts up again, or worse, orphan
processes that are still running.

Signed-off-by: Steven Merrill <steven.merrill@gmail.com>
2014-09-18 08:21:00 -04:00
unclejack db5edfb748 Merge pull request #8105 from LK4D4/build_test_little_fix
Little fixes in cli build tests
2014-09-18 10:32:10 +03:00
Alexandr Morozov 184fe67bbc Add Build prefix to Copy tests
Now we can do "-run TestBuild" to test all build-tests and "-run
TestBuildCopy" for test all copy-tests

Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-09-18 09:09:10 +04:00
Alexandr Morozov aa0449c813 Fix logDone message for TestCopySingleFileToExistDir
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-09-18 09:02:05 +04:00
Frederick F. Kautz IV 3bb12d390a Adding additional documentation for fixed-cidr networking
Docker-DCO-1.1-Signed-off-by: Frederick F. Kautz IV <fkautz@alumni.cmu.edu> (github: fkautz)

Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-09-18 08:48:24 +04:00
Sven Dowideit db9f8ba55c Add a little description of the image tarball format.
Docker-DCO-1.1-Signed-off-by: Sven Dowideit <SvenDowideit@docker.com> (github: SvenDowideit)
2014-09-18 10:40:55 +10:00
Sven Dowideit e9b5acba4b Merge pull request #8081 from abh1nav/master
Update remote_api_client_libraries.md
2014-09-18 10:24:53 +10:00
Sven Dowideit c7c78acf81 Merge pull request #8025 from davidpelaez-forks/docs-fix
Improved X-Registry-Auth content instructions
2014-09-18 09:54:25 +10:00
Michael Crosby f8be5f586f Merge pull request #8097 from erikh/builder_maintainers
Add a new MAINTAINERS file for the builder.
2014-09-17 15:42:34 -07:00
Erik Hollensbe 1ff1befd12 Add a new MAINTAINERS file for the builder.
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-09-17 15:36:04 -07:00
Michael Crosby 77d30e7112 Merge pull request #8041 from unclejack/lower_allocations_broadcastwriter
lower the number of allocations in broadcastwriter
2014-09-17 15:26:44 -07:00
Tibor Vass 12f522ac65 Merge pull request #8095 from jfrazelle/cp-parse-subcommand-rebase
Removed runconfig.ParseSubcommand
2014-09-17 18:04:28 -04:00
Oh Jinkyun 9aa71549d6 Removed runconfig.ParseSubcommand
Removed runconfig.ParseSubcommand, changed it to runconfig.Parse and editted related tests and modules

Signed-off-by: Oh Jinkyun <tintypemolly@gmail.com>
2014-09-17 14:38:22 -07:00
unclejack 458b019e62 Merge pull request #7889 from vbatts/vbatts-tarsum_name_collision
tarsum: name collision fix
2014-09-17 21:59:39 +03:00
Jessica Frazelle fc75ade4f8 Add docker-exec to main manpage
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-09-17 11:46:49 -07:00
Vincent Batts c5e6362c53 tarsum: name collision fix
If a tar were constructed with duplicate file names, then depending on
the order, it could result in same tarsum.

Signed-off-by: Vincent Batts <vbatts@redhat.com>
2014-09-17 14:37:46 -04:00
Alexandr Morozov c171cf0cc3 Merge pull request #8088 from unclejack/integcli-keep_permissions
integcli: run inaccessible context test in tmpdir
2014-09-17 22:06:26 +04:00
unclejack be924087eb integcli: run build tests in tmpdir
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-09-17 20:05:33 +03:00
Tibor Vass 8b97e2c287 Merge pull request #8084 from unclejack/improve_stdcopy
stdwriter: improve perf by avoiding buffer growth
2014-09-17 12:47:00 -04:00
Jessie Frazelle 129da8f842 Merge pull request #8085 from tianon/hack-install-location
Add "hack/install.sh" to the "PRs welcome" note in the end of the install script
2014-09-17 09:20:33 -07:00
unclejack 2f6b1d7f4e Merge pull request #6 from LK4D4/benchmark_for_8084
Benchmark for StdWriter.Write
2014-09-17 18:39:46 +03:00
Alexandr Morozov 55cac6c942 Benchmark for StdWriter.Write
Signed-off-by: Alexandr Morozov <lk4d4@docker.com>
2014-09-17 19:24:07 +04:00
unclejack 277aa9c674 stdcopy: improve perf by avoiding buffer growth
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-09-17 18:06:17 +03:00
unclejack 1f03e60c2a move stdcopy to pkg/stdcopy
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-09-17 18:06:17 +03:00
Tianon Gravi adb6910095 Add "hack/install.sh" to the "PRs welcome" note in the end of the install script
Also, simplified the output method by using `cat >&2 <<EOF ...` instead of multiple lines of `echo >&2 '...'`.

Signed-off-by: Andrew Page <admwiggin@gmail.com>
2014-09-17 08:09:39 -06:00
Tianon Gravi 459b403c2f Merge pull request #8083 from unclejack/install_apparmor
hack/install.sh: install apparmor when enabled
2014-09-17 08:05:29 -06:00
unclejack 9851e8c4c1 use custom marshalling for JSONLog
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-09-17 17:03:54 +03:00
Tianon Gravi bcf7ca0731 Merge pull request #8080 from SvenDowideit/test-for-ext4-fs-kernel-options
It seems that we need these 2 options enabled for both aufs and devicema...
2014-09-17 08:01:20 -06:00
unclejack 9ae3134dc9 add the timeutils package
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-09-17 14:30:08 +03:00
unclejack 9619ce9dd1 hack/install.sh: install apparmor when enabled
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-09-17 12:13:31 +03:00
Abhinav Ajgaonkar ad65930d0b Update remote_api_client_libraries.md
Ordering all clients alphabetically, by language.
Including all available languages in `page_keywords`.

Signed-off-by: Abhinav Ajgonkar <abhinav316@gmail.com>
2014-09-17 03:42:57 -04:00
Sven Dowideit b7259dc6d4 It seems that we need these 2 options enabled for both aufs and devicemapper drivers when running on EXT4 - so test for them
Docker-DCO-1.1-Signed-off-by: Sven Dowideit <SvenDowideit@docker.com> (github: SvenDowideit)
2014-09-17 17:03:58 +10:00
Tianon Gravi 41e625eb7c Merge pull request #8001 from jfrazelle/fix-key-for-test-release-ubuntu
use correct apt-key for test.docker.io/ubuntu
2014-09-17 00:06:57 -06:00
Fred Lifton b03f506303 Merge pull request #8073 from ClusterHQ/7743-restart-policy-api-doc
Add some documentation for the RestartPolicy feature.
2014-09-16 20:06:55 -07:00
Eugene Yakubovich 4dc4d56db9 Add an option to disable IP masquerading
For the cases where --bip option is used it is sometimes best to disable
IP masquerading as the provided bridge IP range may be routable.

Signed-off-by: Eugene Yakubovich <eugene.yakubovich@coreos.com>
2014-09-16 20:00:15 -07:00
David Pelaez 8c2b170c6e Improved X-Registry-Auth content instructions
Hi,

this is a small contribution to fix some slightly unprecise information about the `X-Registry-Auth` header required to pull from private registries through the remote API. After a lot of trial and I error I managed to find that the documentation indications had this issues:

* Apparently single quotes cannot be used and double quotes (regular JSON) is required.
* Also the `auth` key must be passed even if empty or a 403 will result.
* It was not clear what the `serveraddress` had to be.

I added some small clarifications for anyone taking a look at the docs to keep them from the problems I've encountered. Hope this is helpful.

Thanks to all the contributors for bringing so much awesomeness to the linux world. :)

Signed-off-by: David Pelaez Tamayo <hello@davidpelaez.me>
2014-09-16 19:20:47 -05:00
Jessie Frazelle f98a1f1f7d Merge pull request #8019 from thockin/add-host
Allow extra lines in /etc/hosts
2014-09-16 17:19:16 -07:00
Tim Hockin 68e48b65a6 Allow extra lines in /etc/hosts
This adds a --add-host host:ip flag which appends lines to /etc/hosts.  This is needed in places where you want the container to get a different name resolution than it would through DNS.  This was submitted before as #5525, closed, and now I am re-opening.  It has come up 2 or 3 times in the last couple days.

Signed-off-by: Tim Hockin <thockin@google.com>
2014-09-16 23:38:23 +00:00
Alexandr Morozov ca39a3e36b Merge pull request #7110 from tiborvass/merge-6907
Docker create (rebase of 6907)
2014-09-17 03:23:50 +04:00
Tibor Vass 37b3b34afa Merge pull request #7989 from jlhawn/graphdriver_differ_refactor
Refactor use of graphdriver.Differ
2014-09-16 18:58:38 -04:00
Alexandr Morozov ffbd8fe5b9 Merge pull request #8068 from jfrazelle/cleanup-various-fix-me-refs
Cleanup various fix me refs
2014-09-17 02:54:54 +04:00
Tibor Vass e49c701092 Resolve conflicts with restart policies
Signed-off-by: Tibor Vass <teabee89@gmail.com>
2014-09-16 18:40:25 -04:00
SvenDowideit 22eb3a3a50 add 'docker create' man page
Docker-DCO-1.1-Signed-off-by: SvenDowideit <SvenDowideit@home.org.au> (github: SvenDowideit)
2014-09-16 18:40:25 -04:00
Tibor Vass 1ec283c3eb Add create to contrib/completion
Signed-off-by: Tibor Vass <teabee89@gmail.com>
2014-09-16 18:40:25 -04:00
Tibor Vass 7c85cf5f39 docs fix
Docker-DCO-1.1-Signed-off-by: Tibor Vass <teabee89@gmail.com> (github: tiborvass)
2014-09-16 18:40:24 -04:00
Alexander Larsson b0cb37fd3b integration-cli: Add docker create tests
Docker-DCO-1.1-Signed-off-by: Alexander Larsson <alexl@redhat.com> (github: alexlarsson)

Docker-DCO-1.1-Signed-off-by: Tibor Vass <teabee89@gmail.com> (github: tiborvass)
2014-09-16 18:40:24 -04:00
Alexander Larsson 3a90004f3c Add "docker create" support
This exposes the already existing "create container" operation.  It is
very similar to "docker run -d" except it doesn't actually start the
container, but just prepares it. It can then be manually started using
"docker start" at any point.

Docker-DCO-1.1-Signed-off-by: Alexander Larsson <alexl@redhat.com> (github: alexlarsson)

Conflicts:
	api/client/commands.go
	runconfig/parse.go
	server/container.go

Docker-DCO-1.1-Signed-off-by: Tibor Vass <teabee89@gmail.com> (github: tiborvass)
2014-09-16 18:40:24 -04:00
Tibor Vass 9c3eedae89 Merge pull request #8074 from unclejack/add_exec_help
add exec to the commands list
2014-09-16 18:17:08 -04:00
unclejack fccb026221 add exec to the commands list
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-09-17 01:13:43 +03:00
Alexandr Morozov ed957232a1 Merge pull request #8055 from cpuguy83/7792_fix_volume_mount_ordering
Fix #7792 - Order mounts
2014-09-17 02:13:35 +04:00
Josh Hawn 09ad65ebd5 graphdriver interface name change, typo fix
Signed-off-by: Josh Hawn <josh.hawn@docker.com>
2014-09-16 15:10:32 -07:00
Josh Hawn dee6b481fe Refactor use of graphdriver.Differ
Some graphdrivers are Differs and type assertions are made
in various places throughout the project. Differ offers some
convenience in generating/applying diffs of filesystem layers
but for most graphdrivers another code path is taken.

This patch brings all of the logic related to filesystem
diffs in one place, and simplifies the implementation of some
common types like Image, Daemon, and Container.

Signed-off-by: Josh Hawn <josh.hawn@docker.com>
2014-09-16 15:10:32 -07:00
Alexandr Morozov eb21197c6b Merge pull request #8035 from duglin/Issue7965
Add timeout to client - fix for #7965
2014-09-17 01:55:48 +04:00
Brian Goff 0a3211f131 Fix #7792 - Order mounts
Docker-DCO-1.1-Signed-off-by: Brian Goff <cpuguy83@gmail.com> (github: cpuguy83)
2014-09-16 14:51:06 -07:00
Jean-Paul Calderone d758da386a Add some documentation for the RestartPolicy feature.
Signed-off-by: Jean-Paul Calderone <jean-paul@clusterhq.com>
2014-09-16 17:40:56 -04:00
Jessie Frazelle 51b26853ef Merge pull request #7976 from duglin/Issue7902
Fix for issue 7902 - add trailing zeros to timestamps so logs align
2014-09-16 13:55:03 -07:00
Tianon Gravi 3ff8d45b35 Merge pull request #8070 from jfrazelle/exec-autocompletions
Add exec to autocompletions
2014-09-16 14:07:42 -06:00
Jessica Frazelle c9c004d700 Add exec to autocompletions
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-09-16 13:01:10 -07:00
Alexandr Morozov 00fd008170 Merge pull request #8062 from vishh/run_in_phase2
Add support for 'docker exec' - phase 2
2014-09-16 23:56:12 +04:00
Vincent Batts 0a6fd743ea Merge pull request #8063 from jlhawn/tarsum_empty_tar_archive
tarsum: correct close and finish reads
2014-09-16 15:41:28 -04:00
Vishnu Kannan c786a8ee5e Adding docker exec support in CLI.
Fixed a bug in daemon that resulted in accessing of a closed pipe.

Docker-DCO-1.1-Signed-off-by: Vishnu Kannan <vishnuk@google.com> (github: vishh)
2014-09-16 19:24:25 +00:00
Tibor Vass f88e2e8b99 Merge pull request #8054 from estesp/6830-fix-json-strings
Proper JSON handling of strings that could be represented as other types
2014-09-16 15:11:25 -04:00
Tibor Vass 28f09f0632 Merge pull request #8059 from estesp/8057-refactor-regexp-to-package-var
Refactor all pre-compiled regexp to package level vars
2014-09-16 15:04:23 -04:00
Phil Estes 1b0b1ec657 Proper JSON handling of strings that could be represented as other types
Addresses #6830

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2014-09-16 13:51:02 -04:00
Jessica Frazelle 23b2c39a40 Return errors in NewDaemonFromDirectory instead of calling Fatal
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-09-16 10:42:59 -07:00
Jessica Frazelle 67c254a60a DisableNetworkBidge doesn't need to be public anymore
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-09-16 10:37:50 -07:00
Doug Davis cd7a5f5c09 Fix for issue 7902.
Use utils.RFC3339NanoFixed ("2006-01-02T15:04:05.000000000Z07:00")
instead of time.RFC3339Nano to format our log timestamps - this way
things are aligned, in particular the nano seconds are padded with zeros

Signed-off-by: Doug Davis <dug@us.ibm.com>
2014-09-16 10:28:37 -07:00
Phil Estes 4119c9d7d9 Refactor all pre-compiled regexp to package level vars
Addresses #8057

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com>
2014-09-16 12:57:44 -04:00
Tibor Vass 23bb6513a0 Merge pull request #8026 from tonistiigi/validate-context-error-handling
Improve ValidateContextDirectory error handling.
2014-09-16 12:44:55 -04:00
Josh Hawn bc956c6b79 Correct tarsum finish logic
Tarsum now correctly closes the internal TarWriter which appends
a block of 1024 zeros to the end of the returned archive.

Signed-off-by: Josh Hawn <josh.hawn@docker.com>
2014-09-16 09:34:21 -07:00
Tonis Tiigi a8914293fb Improve ValidateContextDirectory error handling.
- Errors sent to the walker callback functions were ignored. This meant that
  one could get a panic when calling methods on a nil FileInfo object. For
  example when the file did not exists any more.

- Lstat calls inside walker callback are reduntant because walker already calls
  Lstat and passes the result to the callback.

- Error returned from filepath.Rel() can never be EACCES because it compares
  strings and does not care about actual files.

- If Matched() returns error then ValidateContextDirectory() must return error.
  Currently it still kept walking although the outcome was already known. 

- Function will now fail in case of unknown error(not EACCES nor ENOENT).
  Previous implementation did not make a clear decision about this (but 
  panicked because of the issues above).

Signed-off-by: Tõnis Tiigi <tonistiigi@gmail.com> (github: tonistiigi)
2014-09-16 19:17:34 +03:00
unclejack 4da86f88a0 Merge pull request #5977 from vbatts/vbatts-tarsum_xattrs
tarsum: include xattr headers in to the checksum
2014-09-16 18:07:03 +03:00
James Turnbull b645589071 Merge pull request #8056 from SvenDowideit/use-sudo-docker-everywhere
Consistently use 'sudo docker' in examples
2014-09-16 08:43:58 -04:00
James Turnbull b040ba99d0 Merge pull request #8060 from SvenDowideit/missing-t-in-get-api-eg
Added missing 't' from the end of the /images/{{id}}/get eg.
2014-09-16 08:43:26 -04:00
Sven Dowideit 4352ea7b0a Added missing 't' from the end of the /images/{{id}}/get eg.
Docker-DCO-1.1-Signed-off-by: Sven Dowideit <SvenDowideit@docker.com> (github: SvenDowideit)
2014-09-16 15:27:44 +10:00
Tianon Gravi 0954fb32a4 Merge pull request #8013 from unclejack/fix_testimportdisplay
integ-cli: fix TestImportDisplay & add FileServer
2014-09-15 22:36:51 -06:00
Sven Dowideit fc9a3b1c1b Consistently use 'sudo docker' in examples
Docker-DCO-1.1-Signed-off-by: Sven Dowideit <SvenDowideit@docker.com> (github: SvenDowideit)
2014-09-16 11:49:05 +10:00
Fred Lifton 023241614e Merge pull request #8034 from michaljemala/patch-1
The default name of the bridge created is called 'docker0'.
2014-09-15 17:32:57 -07:00
Doug Davis f013aa7f96 Add a timeout when trying to connect to the server, otherwise sometimes it just hangs
Signed-off-by: Doug Davis <dug@us.ibm.com>
2014-09-15 17:30:38 -07:00
Sven Dowideit 602dc6865b Merge pull request #8030 from SvenDowideit/add-help-if-selinux-is-out-of-date
Help new users if their SELinux is not-upgraded yet.
2014-09-16 10:19:29 +10:00
Sven Dowideit a3f51da98a Help new users if their SELinux is not-upgraded yet.
Docker-DCO-1.1-Signed-off-by: Sven Dowideit <SvenDowideit@docker.com> (github: SvenDowideit)
2014-09-16 10:18:50 +10:00
Sven Dowideit 2f65ed0968 Merge pull request #8036 from unclejack/kernel_version_requirement
docs: change kernel version requirement
2014-09-16 10:14:02 +10:00
Sven Dowideit 62b86613e8 Merge pull request #8037 from unclejack/shrink_docs_images
docs: shrink images
2014-09-16 10:13:03 +10:00
Vishnu Kannan 39030382c4 Adding state to exec commands to prevent multiple starts of a single exec command.
Docker-DCO-1.1-Signed-off-by: Vishnu Kannan <vishnuk@google.com> (github: vishh)
2014-09-15 23:14:04 +00:00
Vishnu Kannan bfebdfde78 Splitting the exec remote API into two separate APIs inorder to support resizing of tty sessions.
1. /container/<name>/exec - Creates a new exec command instance in the daemon and container '<name>'. Returns an unique ID for each exec command.
2. /exec/<name>/start - Starts an existing exec command instance. Removes the exec command from the daemon once it completes.

Adding /exec/<name>/resize to resize tty session of an exec command.

Docker-DCO-1.1-Signed-off-by: Vishnu Kannan <vishnuk@google.com> (github: vishh)
2014-09-15 22:56:47 +00:00
unclejack 9e5592d6a1 integ-cli: fix TestImportDisplay & add FileServer
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-09-16 01:54:21 +03:00
Tibor Vass 8b18a2da54 Merge pull request #8051 from jfrazelle/image-tag-can-be-one-letter-test-update
Update integration-cli tests to allow one-letter tag as valid
2014-09-15 18:25:59 -04:00
Jessica Frazelle 985fae256f Update integration-cli tests to allow one-letter tag as valid.
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-09-15 15:17:50 -07:00
Jessie Frazelle 09982d0f97 Merge pull request #8049 from unclejack/fix_tag_validation
graph: validate tags properly & add unit tests
2014-09-15 14:32:02 -07:00
unclejack ada883b198 graph: validate tags properly & add unit tests
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-09-16 00:13:54 +03:00
Fred Lifton 4b0bb71627 Merge pull request #8023 from nerab/patch-1
Append instead of replace file contents
2014-09-15 13:54:41 -07:00
Vincent Batts 0ecafb8a69 tarsum: version the addition of xattrs
Now that TarSum can be versioned, move the addition of xattr headers in
to the next version of TarSum

Signed-off-by: Vincent Batts <vbatts@redhat.com>
2014-09-15 16:08:05 -04:00
Fred Lifton c892423209 Merge pull request #8005 from SvenDowideit/document-sshd-env-vars
Document how to pass ENV vars to the user's shell
2014-09-15 12:44:56 -07:00
Fred Lifton fd501d4b3a Merge pull request #8044 from brahmaroutu/container_copy_6107
Change the copy command Content-Type header to x-tar
2014-09-15 12:06:48 -07:00
Vincent Batts 448c8ecb0f tarsum: include xattr headers in to the checksum
this is to enhance the tarsum algorithm, but _MUST_ be done in lock step
with the same for docker-registry. (PR will be cited)

Docker-DCO-1.1-Signed-off-by: Vincent Batts <vbatts@redhat.com> (github: vbatts)
2014-09-15 15:05:01 -04:00
Alexandr Morozov fbae71326c Merge pull request #8020 from erikh/rewrite_hosts_files
Links v2: Mutable network files
2014-09-15 23:03:30 +04:00
Srini Brahmaroutu 788e4acaa3 Change the copy command Content-Type header to x-tar
Addresses #6107

Signed-off-by: Srini Brahmaroutu <srbrahma@us.ibm.com>
2014-09-15 10:45:06 -07:00
Vishnu Kannan 0029180f7f Removing 'exec' feature from the CLI until the docker daemon supports resizing of
tty sessions for exec'ed commands.

Docker-DCO-1.1-Signed-off-by: Vishnu Kannan <vishnuk@google.com> (github: vishh)
2014-09-15 17:06:07 +00:00
Vishnu Kannan 669561c2aa Address review comments.
Docker-DCO-1.1-Signed-off-by: Vishnu Kannan <vishnuk@google.com> (github: vishh)
2014-09-15 17:00:00 +00:00
Vishnu Kannan d980589de6 Adding integration tests for docker exec feature.
Docker-DCO-1.1-Signed-off-by: Vishnu Kannan <vishnuk@google.com> (github: vishh)
2014-09-15 16:59:59 +00:00
Vishnu Kannan e1818d2a69 Update cli.md to include 'docker exec' feature.
Docker-DCO-1.1-Signed-off-by: Vishnu Kannan <vishnuk@google.com> (github: vishh)
2014-09-15 16:59:05 +00:00
Vishnu Kannan d130c10ab7 Fix bug in attach handling for docker exec. Add docs for 'docker exec' feature.
Docker-DCO-1.1-Signed-off-by: Vishnu Kannan <vishnuk@google.com> (github: vishh)
2014-09-15 16:59:05 +00:00
Vishnu Kannan e1cf95b593 Import nsenter in docker.
Docker-DCO-1.1-Signed-off-by: Vishnu Kannan <vishnuk@google.com> (github: vishh)
2014-09-15 16:59:05 +00:00
Vishnu Kannan 985d579586 Adding 'exec' command to remote API and CLI.
Docker-DCO-1.1-Signed-off-by: Vishnu Kannan <vishnuk@google.com> (github: vishh)
2014-09-15 16:59:03 +00:00
Vishnu Kannan 5130fe5d38 Adding support for docker exec in daemon.
Docker-DCO-1.1-Signed-off-by: Vishnu Kannan <vishnuk@google.com> (github: vishh)
2014-09-15 16:57:52 +00:00
Vishnu Kannan f3c767d798 Adding Exec method to native execdriver.
Modified Attach() method to support docker exec.

Docker-DCO-1.1-Signed-off-by: Vishnu Kannan <vishnuk@google.com> (github: vishh)
2014-09-15 16:57:52 +00:00
Alexandr Morozov 88a786d3c4 Merge pull request #8038 from unclejack/failed_build_context_cleanup
clean up the context when a build fails
2014-09-15 17:50:50 +04:00
unclejack 31c0039022 clean up the context when a build fails
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-09-15 16:01:23 +03:00
unclejack a10a86d437 Merge pull request #7698 from tamsky/tune2fs_base_filesystem
use tune2fs to disable ext4 mount counts and mount intervals
2014-09-15 15:42:52 +03:00
unclejack 0619512582 docs: change kernel version requirement
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-09-15 15:15:55 +03:00
unclejack 90dcc7c840 docs: shrink images
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-09-15 14:46:29 +03:00
Michal Jemala 140229677a The default name of the bridge created is called 'docker0'. 2014-09-15 12:10:46 +01:00
unclejack c751e1739d Merge pull request #8010 from LK4D4/fix_ps_s_hang_#7999
Fix ps -s hang
2014-09-15 13:54:29 +03:00
Sven Dowideit 0658be89d0 Merge pull request #8028 from SvenDowideit/ekristen-patch-1
HTTP Status 201 not 200
2014-09-15 11:00:05 +10:00
Erik Kristensen c4db3b8075 HTTP Status 201 not 200
The http status should be 201 not 200.

Docker-DCO-1.1-Signed-off-by: Erik Kristensen <erik@erikkristensen.com> (github: SvenDowideit)
2014-09-15 10:58:45 +10:00
Sven Dowideit 0c5a7ad577 Merge pull request #8008 from dwgebler/master
fixes incorrect environment variable labeling in container linking guide
2014-09-15 10:51:38 +10:00
Nicholas E. Rabenau 81357e12e7 Append instead of replace file contents
I think the `DOCKER_OPTS` should be appended to `/etc/default/docker` and not replace the entire contents.
2014-09-13 22:26:40 +02:00
Erik Hollensbe 09b700288e Allow /etc/hosts and /etc/resolv.conf to be updated both outside and
inside the container.

Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-09-13 11:27:34 -07:00
Tibor Vass 23f490427f Merge pull request #7983 from vbatts/vbatts-tarsum_switch_names
tarsum: TarSum should be the interface
2014-09-12 17:01:35 -04:00
unclejack da4dba2e8c Merge pull request #8014 from jfrazelle/8012-prevent-container-names-starting-dash
Ensure container names start with a-zA-Z0-9
2014-09-12 23:15:16 +03:00
Michael Crosby 63a1548688 Merge pull request #8004 from duglin/Issue6447
Fix parsing of proto/port - issue 6447
2014-09-12 12:00:57 -07:00
Doug Davis 658a9d0f47 Fix parsing of proto/port
Signed-off-by: Doug Davis <dug@us.ibm.com>
2014-09-12 11:39:14 -07:00
Michael Crosby a96811272a Merge pull request #7934 from LK4D4/fix_double_allocation
Fix error propagation from userland-proxy
2014-09-12 11:39:10 -07:00
Jessica Frazelle aa2af817be Ensure container names start with a-zA-Z0-9
Closes #8012.

Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-09-12 10:45:07 -07:00
Fred Lifton 64ecef59af Merge pull request #7986 from abh1nav/master
Update remote_api_client_libraries.md
2014-09-12 10:37:00 -07:00
Fred Lifton 1501adad29 Merge pull request #7987 from SvenDowideit/stop-hurting-blackrosezys-eyes
Yep, its been hurting my eyes too - and you've finally inspired me to fi...
2014-09-12 10:35:30 -07:00
James Turnbull 127f72d3ba Merge pull request #8011 from fsouza/fix-typo-remote-api
docs/reference/api: fix typo in docs
2014-09-12 13:26:24 -04:00
Francisco Souza fe5b72e7bb docs/reference/api: fix typo in docs
Signed-off-by: Francisco Souza <f@souza.cc>
2014-09-12 13:57:43 -03:00
Alexandr Morozov a612d85916 Merge pull request #8009 from unclejack/better_run_test_debug
integ-cli: better debug output for run & import
2014-09-12 18:38:46 +04:00
unclejack 3ec564bfda integ-cli: better debug output for run & import
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-09-12 16:51:21 +03:00
James Turnbull b6b85a58fd Merge pull request #7998 from duglin/Issue5701
Add notes about single-quotes (for issue 5701)
2014-09-12 07:41:31 -04:00
David Gebler 78fe117076 Signed-off-by: David Gebler <davidgebler@gmail.com>
modified:   userguide/dockerlinks.md
    fixes incorrect environment variable labeling in container linking guide
2014-09-12 11:04:40 +01:00
Alexandr Morozov 41cbce8c00 Test for docker ps -s
Signed-off-by: Alexandr Morozov <lk4d4math@gmail.com>
2014-09-12 11:45:50 +04:00
Alexandr Morozov 82bdd88e9c Use unlocked version of changes for GetImage
Fixes #7999

Signed-off-by: Alexandr Morozov <lk4d4math@gmail.com>
2014-09-12 11:44:51 +04:00
Alexandr Morozov 555ce0cb54 Use defined variable
Signed-off-by: Alexandr Morozov <lk4d4math@gmail.com>
2014-09-12 11:42:12 +04:00
Alexandr Morozov 41e9e93e27 Fix my own comments from #7927
Signed-off-by: Alexandr Morozov <lk4d4math@gmail.com>
2014-09-12 10:05:07 +04:00
Erik Hollensbe 3b6a29b81a Fix an issue where already allocated ports would not trigger an error.
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-09-12 09:51:14 +04:00
Tibor Vass 3109fc9537 Add Test for port allocation bug (port already in use by other programs than docker)
Signed-off-by: Tibor Vass <teabee89@gmail.com>
2014-09-12 09:51:14 +04:00
Sven Dowideit 0517099a91 Document how to pass ENV vars to the user's shell
As this is a somewhat common question.

Docker-DCO-1.1-Signed-off-by: Sven Dowideit <SvenDowideit@docker.com> (github: SvenDowideit)
2014-09-12 13:34:01 +10:00
Sven Dowideit df8dbfa45d Override prettyPrint's colour choice (red) for strings in quotes.
I've moved the docs.css to last so it can tweak any existing css, and
then set that to the same grey colour used for 'normal' text.

While testing I found and fixed an over-zealous line wrap.

Docker-DCO-1.1-Signed-off-by: Sven Dowideit <SvenDowideit@docker.com> (github: SvenDowideit)
2014-09-12 11:10:07 +10:00
Michael Crosby 32b5d145fa Merge pull request #7963 from jfrazelle/7845-remove-image-fail-dont-untag
Failing to remove an image, will not remove the image name/tag.
2014-09-11 18:06:18 -07:00
Sven Dowideit 990da301cf Merge pull request #7988 from markotibold/patch-1
Fixed a typo
2014-09-12 10:41:12 +10:00
Sven Dowideit c0783dfceb Merge pull request #7991 from laktek/master
Fixed a typo in docs (outpu -> output).
2014-09-12 10:40:16 +10:00
Sven Dowideit 6941931daa Merge pull request #8000 from estesp/7985-networkport-doc-changes
Match docs to actual port range used in code.
2014-09-12 10:18:03 +10:00
Michael Crosby d9c7c1a7da Merge pull request #7957 from bfirsh/consistent-help-messages
Consistent help messages
2014-09-11 15:25:28 -07:00
Jessica Frazelle 440eb7fee8 use correct apt-key for test.docker.io/ubuntu
Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-09-11 15:22:36 -07:00
Michael Crosby 98e409172c Merge pull request #7996 from estesp/7943-validate-tagnames
Validate tag names similar to repository name validation; add tests
2014-09-11 15:19:50 -07:00
Jessie Frazelle 2d4e43b26b Merge pull request #7959 from crosbymichael/update-libcontainer-sep6
Update libcontainer to 84ad9386a0240acb7475429a835
2014-09-11 14:59:24 -07:00
Phil Estes 46eb4140c9 Validate tag names similar to repository name validation; add tests
Addresses #7943

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2014-09-11 17:52:36 -04:00
Phil Estes d6f4b2ebb4 Match docs to actual port range used in code.
Addresses #7985

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2014-09-11 17:20:01 -04:00
Jessica Frazelle b2efdc538d Removing an image that fails, also removes the image name/tag.
Fixes #7845 and #7801, and a real pain point I had :)

Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
2014-09-11 11:29:25 -07:00
Michael Crosby ed7fb3bbda Merge pull request #7202 from timbot/add-registry-mirror-flag
Add daemon flag to specify public registry mirrors
2014-09-11 11:11:01 -07:00
Michael Crosby 08f1a91ccd Merge pull request #7806 from erikh/fix_cmd_handling_in_parser
Fix cmd and entrypoint handling in parser
2014-09-11 10:42:22 -07:00
Jessie Frazelle e550fc532c Merge pull request #7984 from vbatts/vbatts-engine_env_comments
engine.Env: comments and tests for Get()
2014-09-11 10:19:58 -07:00
Doug Davis b47a2fbdc5 Add notes about single-quotes
Signed-off-by: Doug Davis <dug@us.ibm.com>
2014-09-11 10:19:07 -07:00
Erik Hollensbe 91bed43621 builder: Fix an error check being done at the wrong spot in run
dispatcher

Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-09-11 06:00:24 -07:00
Erik Hollensbe 576416c99a move entrypoint integration-cli test for blank entrypoint to separate function
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-09-11 06:00:24 -07:00
Erik Hollensbe 92f885d7bd Do not populate path to prevent runconfig merge conflict; remove
autoConfig seeding of entrypoint.

Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-09-11 06:00:24 -07:00
Erik Hollensbe 78a847a47a evaluator: ensure entrypoint stays blank if set blank while CMD is set.
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-09-11 06:00:24 -07:00
Erik Hollensbe ac107995ae builder: Fix entrypoint and cmd semantics in evaluator. Test c/o @cnf
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-09-11 06:00:24 -07:00
Erik Hollensbe 3a6d1228a8 builder: Fix a small bug that could improperly cache.
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-09-11 06:00:24 -07:00
Erik Hollensbe 6b322ad2d3 builder/parser: fix handling of empty strings as the only argument.
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-09-11 06:00:24 -07:00
Erik Hollensbe 234f0e4f79 builder/parser/dumper: Handle newlines appropriately.
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-09-11 06:00:24 -07:00
Lakshan Perera 7b1fdd6c04 Fixed a typo in docs (outpu -> output).
Signed-off-by: Lakshan Perera <lakshan@laktek.com>
2014-09-11 09:09:59 +00:00
Abhinav Ajgaonkar c7310b6463 Update remote_api_client_libraries.md
Adding docker rust client lib.

Signed-off-by: Abhinav Ajgonkar <abhinav316@gmail.com>
2014-09-11 03:04:35 -04:00
Marko Tibold ef3920278e Fixed typo 2014-09-11 08:55:45 +02:00
Vincent Batts 6e0bc06018 engine.Env: comments and tests for Get()
Signed-off-by: Vincent Batts <vbatts@redhat.com>
2014-09-10 22:20:49 -04:00
Vincent Batts ec01eb653d tarsum: TarSum is not the interface
don't export the exsisting TarSum struct and call the interface 'TarSum'
instead.

Signed-off-by: Vincent Batts <vbatts@redhat.com>
2014-09-10 21:56:20 -04:00
Sven Dowideit 2d1c8bd786 Merge pull request #7975 from passy/patch-2
Fix link for configuring automated builds
2014-09-11 09:16:41 +10:00
Michael Crosby 48fe9c1082 Merge pull request #7689 from vbatts/vbatts-tarsum_versioning
TarSum: versioning
2014-09-10 15:08:36 -07:00
Fred Lifton dd5657ffd1 Merge branch 'adding_official-repo-guidelines' of https://github.com/fredlf/docker into adding_official-repo-guidelines
Conflicts:
	docs/sources/docker-hub/official_repos.md

Docker-DCO-1.1-Signed-off-by: Fred Lifton <fred.lifton@docker.com> (github: fredlf)
2014-09-10 14:30:19 -07:00
Fred Lifton a2ba4d56eb Fixes a couple small typos
Docker-DCO-1.1-Signed-off-by: Fred Lifton <fred.lifton@docker.com> (github: fredlf)
2014-09-10 14:26:03 -07:00
Fred Lifton 0164cf0e9c Merge pull request #1 from yosifkit/adding_official-repo-guidelines
Fix formatting, change to markdown block for long
2014-09-10 14:25:36 -07:00
Joe Ferguson bcb9378c5b Fix formatting, change to markdown block for long
Signed-off-by: Joe Ferguson <joe@infosiftr.com>
2014-09-10 14:46:11 -06:00
Vincent Batts 747f89cd32 TarSum: versioning
This introduces Versions for TarSum checksums.
Fixes: https://github.com/docker/docker/issues/7526

It preserves current functionality and abstracts the interface for
future flexibility of hashing algorithms. As a POC, the VersionDev
Tarsum does not include the mtime in the checksum calculation, and would
solve https://github.com/docker/docker/issues/7387 though this is not a
settled Version is subject to change until a version number is assigned.

Signed-off-by: Vincent Batts <vbatts@redhat.com>
2014-09-10 15:41:52 -04:00
Pascal Hartig ecbc8de249 Fix link for configuring automated builds 2014-09-10 21:08:05 +02:00
Michael Crosby 25f7840993 Merge pull request #7955 from LK4D4/ignore_delete_err_on_unmap_#7954
Deallocate port before trying to delete iptables chain
2014-09-09 17:41:26 -07:00
Michael Crosby f9c345ddfa Merge pull request #7897 from LK4D4/refactoring_net_mode
Add IsPrivate method for NetworkMode
2014-09-09 14:20:59 -07:00
Alexandr Morozov 080ca86191 Add IsPrivate method for NetworkMode
This method indicates that container using private network stack

Signed-off-by: Alexandr Morozov <lk4d4math@gmail.com>
2014-09-10 00:46:43 +04:00
Alexandr Morozov 2e7cf6b0ce Deallocate port before trying to delete iptables chain
Fixes #7954
Signed-off-by: Alexandr Morozov <lk4d4math@gmail.com>
2014-09-10 00:40:46 +04:00
Vincent Batts 197f9b1e2b Merge pull request #7921 from unclejack/increase_tarsum_buffer_size
pkg/tarsum: make buffer size dynamic
2014-09-09 16:10:02 -04:00
Tim Smith 69a75c673c Add daemon flag to specify public registry mirrors
Adds support for a --registry-mirror=scheme://<host>[:port]
daemon flag. The flag may be present multiple times. If
provided, mirrors are prepended to the list of endpoints used
for image pull. Note that only mirrors of the public
index.docker.io registry are supported, and image/tag resolution
is still performed via the official index.

Docker-DCO-1.1-Signed-off-by: Tim Smith <timbot@google.com> (github: timbot)
2014-09-09 19:03:38 +00:00
Michael Crosby b5a4c70455 Merge pull request #7960 from vbatts/vbatts-tarsum_debugf_not_infof
tarsum: use Debugf, not Infof
2014-09-09 11:51:36 -07:00
Jessie Frazelle 2a832f617b Merge pull request #7948 from SvenDowideit/add-more-port-specification-doc
add -p PORT as a valid format specification
2014-09-09 11:43:25 -07:00
Jessie Frazelle 971240696f Merge pull request #7660 from rhatdan/selinux-volumes
Change default label of container volumes to shared SELinux Label
2014-09-09 11:16:19 -07:00
Vincent Batts 6a8cae3e03 tarsum: use Debugf, not Infof
Signed-off-by: Vincent Batts <vbatts@redhat.com>
2014-09-09 14:07:20 -04:00
Michael Crosby c604dc292e Update libcontainer to 84ad9386a0240acb7475429a835
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2014-09-09 11:05:58 -07:00
Jessie Frazelle 49c32189c0 Merge pull request #7958 from dqminh/fix-lxc-template-console
fix console attribute in lxc template
2014-09-09 11:00:48 -07:00
Daniel, Dao Quang Minh 4b3b54ca38 fix console attribute in lxc template
commit 4aa5da278f moves `Console` from Command to
ProcessConfig, but missed the change in lxc_template. Therefore creating a
container with tty using lxc driver with fail with error

template: lxc:60:20: executing "lxc" at <.Console>: Console is not a field of
struct type struct { *execdriver.Command; AppArmor bool; ProcessLabel string; MountLabel string }

This changes lxc_console template to refers to `.ProcessConfig.Console`

Docker-DCO-1.1-Signed-off-by: Daniel, Dao Quang Minh <dqminh89@gmail.com> (github: dqminh)
2014-09-09 13:51:13 -04:00
Ben Firshman fec81690cc Consolidate documentation for -H option
Signed-off-by: Ben Firshman <ben@firshman.co.uk>
2014-09-09 10:12:03 -07:00
James Turnbull 1ed467a9ae Merge pull request #7953 from SvenDowideit/reformat-api-docs
Reformat the API docs so I can read them
2014-09-09 12:52:26 -04:00
Jessie Frazelle 17314e2fe8 Merge pull request #7951 from taohu/typo
typo fix: immediatly -> immediately
2014-09-09 09:44:51 -07:00
Dan Walsh 73617e5e18 Change default label of container volumes to shared SELinux Label
Since these will be shared between containers we want to label
them as svirt_sandbox_file_t:s0.  That will allow multiple containers
to write to them.

Currently we are allowing container domains to read/write all content in
/var/lib/docker because of container volumes.  This is a big security hole
in our SELinux story.

This patch will allow us to tighten up the security of docker containers.

Docker-DCO-1.1-Signed-off-by: Dan Walsh <dwalsh@redhat.com> (github: rhatdan)
2014-09-09 08:18:20 -04:00
Sven Dowideit f36dfbdcaf Reformat the API docs so I can read them
Docker-DCO-1.1-Signed-off-by: Sven Dowideit <SvenDowideit@docker.com> (github: SvenDowideit)
2014-09-09 16:17:38 +10:00
Hu Tao fcc7ec8073 typo fix: immediatly -> immediately
Signed-off-by: Hu Tao <hutao@cn.fujitsu.com>
2014-09-09 01:16:19 -04:00
Fred Lifton f1095b801e Merge pull request #7949 from SvenDowideit/remove-doubled-up-page-heading
Make the side bar about in-document navigation by removing the duplicated h1
2014-09-08 20:50:06 -07:00
Sven Dowideit 1f25bfea2d Make the side bar about in-document navigation by removing the duplicated h1
Docker-DCO-1.1-Signed-off-by: Sven Dowideit <SvenDowideit@docker.com> (github: SvenDowideit)
2014-09-09 11:44:51 +10:00
Sven Dowideit e4d2a8231a add -p PORT as a valid format specification
Docker-DCO-1.1-Signed-off-by: Sven Dowideit <SvenDowideit@docker.com> (github: SvenDowideit)
2014-09-09 11:16:02 +10:00
Fred Lifton 5b6c4051d5 More format wrestling.
Docker-DCO-1.1-Signed-off-by: Fred Lifton <fred.lifton@docker.com> (github: fredlf)
2014-09-08 17:32:29 -07:00
Fred Lifton 5fea2b5be3 More format fixes.
Docker-DCO-1.1-Signed-off-by: Fred Lifton <fred.lifton@docker.com> (github: fredlf)
2014-09-08 16:30:39 -07:00
Ben Firshman d128d9e669 Add instructions on how to get help on commands
Signed-off-by: Ben Firshman <ben@firshman.co.uk>
2014-09-08 16:09:16 -07:00
Ben Firshman f3ed7b601f Print consistent help with options and commands
These commands now all output the same thing:

 - docker
 - docker help
 - docker --help
 - docker -h

Signed-off-by: Ben Firshman <ben@firshman.co.uk>
2014-09-08 16:08:50 -07:00
Fred Lifton bb8ea1fdc1 Merge pull request #7931 from jamtur01/device
Added --device flag to run reference
2014-09-08 14:33:56 -07:00
Fred Lifton 577066fb45 Merge pull request #7930 from jamtur01/nformat
Very minor formatting update for docs/sources/articles/networking.md
2014-09-08 14:28:29 -07:00
Fred Lifton 10e4ca760c Merge pull request #7929 from SvenDowideit/doc-tar-stream
Sven Dowideit 	Update export, copy and build API to say 'TAR STREAM' for all versions.
2014-09-08 14:27:45 -07:00
Michael Crosby 85314e7e58 Merge pull request #7759 from unclejack/pull_latest_by_default
make docker pull only the latest tag by default
2014-09-08 13:43:21 -07:00
Fred Lifton a899b8a63e Format and typo fixes
Docker-DCO-1.1-Signed-off-by: Fred Lifton <fred.lifton@docker.com> (github: fredlf)
2014-09-08 12:36:52 -07:00
Tibor Vass d7e29a2cc8 Merge pull request #7891 from tlipinski/master
Allows installation on Linux Mint Debian Edition
2014-09-08 14:44:07 -04:00
Fred Lifton eb8d0c1ccf Revisions based on feedback.
Docker-DCO-1.1-Signed-off-by: Fred Lifton <fred.lifton@docker.com> (github: fredlf)
2014-09-08 11:43:09 -07:00
Jessie Frazelle 7bb5ec3be6 Merge pull request #7862 from Gandi/bugfixes/segfault-registry-session
Fix SEGFAULT if dns resolv error
2014-09-08 11:38:34 -07:00
Tomasz Lipinski 021722cf7a Allows installation on Linux Mint Debian Edition
Otherwise platform won't be detected

Signed-off-by: Tomasz Lipinski <me@tlipinski.net>
2014-09-08 20:38:02 +02:00
Jessie Frazelle f7429a2121 Merge pull request #7871 from vincentbernat/update/zsh-completion-1
zsh: update zsh completion for docker command
2014-09-08 11:25:55 -07:00
Tibor Vass 43eab4034b Merge pull request #7938 from unclejack/make_run_test_verbose
integ-cli: increase verbosity for mem & cpu test
2014-09-08 14:10:58 -04:00
Michael Crosby 18edea2a6f Merge pull request #7609 from ewindisch/max_imgname
Restrict length of repository names
2014-09-08 11:06:54 -07:00
Michael Crosby 11700512b9 Merge pull request #7920 from unclejack/fix_layer_permissions
ensure correct permissions are set for directories
2014-09-08 10:51:50 -07:00
unclejack 05a76477e6 integ-cli: increase verbosity for mem & cpu test
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-09-08 20:46:45 +03:00
unclejack cc5fb986b0 integ-cli: test correct directory permissions
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-09-08 20:02:40 +03:00
Alexandr Morozov 2360d4a440 Merge pull request #7886 from jfrazelle/7047-json-line-delim
Fix line delimited JSON response
2014-09-08 20:47:21 +04:00
Jessica Frazelle d2f75a3040 Fix line delimited JSON response
For GET /events, line delimit JSON.
Fixes #7047

Signed-off-by: Jessica Frazelle <jfrazelle@users.noreply.github.com>

Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jfrazelle@users.noreply.github.com> (github: )
2014-09-08 09:41:26 -07:00
Tibor Vass 68e07f3fa0 Merge pull request #7914 from jfrazelle/7802-backwards-compat-state
fixes #7802, when api version 1.11 is `json.Marshal`ing the container st...
2014-09-08 12:39:55 -04:00
Tianon Gravi 60ab9eaf4a Merge pull request #7868 from baloo/patch-1
Switch TESTFLAGS to use `-test.run` instead of `-run`
2014-09-08 10:34:49 -06:00
Jessica Frazelle f49c3f287b fixes #7802, when api version 1.11 is json.Marshaling the container struct
Signed-off-by: Jessica Frazelle <jfrazelle@users.noreply.github.com>

Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jfrazelle@users.noreply.github.com> (github: )
2014-09-08 09:30:33 -07:00
Leszek Kowalski 691bbf6a29 Include directories that contain changes inside them when calculating diff. Fixes #6722
Docker-DCO-1.1-Signed-off-by: Leszek Kowalski <github@leszekkowalski.pl> (github: ljk)
2014-09-08 19:11:48 +03:00
James Turnbull 8f0034c3ee Merge pull request #7933 from ahmetalpbalkan/doc-remote_api_client_libraries.md
add C# docker client library link to remote API client libraries doc
2014-09-08 07:25:24 -04:00
Ahmet Alp Balkan cde53c51b5 add C# docker client library link
Signed-off-by: Ahmet Alp Balkan <ahmetalpbalkan@gmail.com>
2014-09-07 23:29:04 -07:00
James Turnbull 9e34c42d20 Added --device flag to run reference
Docker-DCO-1.1-Signed-off-by: James Turnbull <james@lovedthanlost.net> (github: jamtur01)
2014-09-07 23:17:14 -04:00
James Turnbull 1ce3e22efc Very minor formatting update for docs/sources/articles/networking.md
Docker-DCO-1.1-Signed-off-by: James Turnbull <james@lovedthanlost.net> (github: jamtur01)
2014-09-07 22:39:37 -04:00
Sven Dowideit 77fa306d63 Update export, copy and build API to sat 'TAR STREAM' for all versions.
Docker-DCO-1.1-Signed-off-by: Sven Dowideit <SvenDowideit@docker.com> (github: SvenDowideit)
2014-09-08 11:54:21 +10:00
Mustafa Akın b9e889c309 Update docker_remote_api_v1.14.md
It is a tar stream, you should mention that somehow.

Here is the proof:

```
	host:~$ docker run -t -i ubuntu:14.04 bash
	root@c39be4c7b7c8:/# echo "my file contents" > abc
	root@c39be4c7b7c8:/# cat abc
	my file contents
	root@c39be4c7b7c8:/# exit
	host:~$ curl -H "Content-Type: application/json" -d '{"Resource":"/abc"}' http://localhost:4500/containers/c39be4c7b7c8/copy
	abc0100644000000000000000000000002112402102531007674 0ustar0000000000000000my file contents
	host:~$ curl -H "Content-Type: application/json" -d '{"Resource":"/abc"}' http://localhost:4500/containers/c39be4c7b7c8/copy > response_content
	  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
	                                 Dload  Upload   Total   Spent    Left  Speed
	100  2067  100  2048  100    19  56968    528 --:--:-- --:--:-- --:--:-- 58514
	host:~$ tar xvf response_content
	abc
	host:~$ cat abc
	my file contents
```

Docker-DCO-1.1-Signed-off-by: Mustafa Akın <mustafa91@gmail.com> (github: SvenDowideit)
2014-09-08 11:52:27 +10:00
Sven Dowideit 4b3ee6c106 Merge pull request #7908 from nhsiehgit/issue363imgfix
added a css fix for the image bug issue
2014-09-08 11:10:03 +10:00
Jessica Frazelle f3a68ffa39 Fix duplicate iptables rules
If iptables version is < 1.4.11, try to delete the rule vs. checking if it exists. Fixes #6831.

Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jfrazelle@users.noreply.github.com> (github: jfrazelle)
2014-09-07 15:12:19 -07:00
unclejack 7ef3440750 pkg/tarsum: add dynamic buffer sizing
This commit makes tarsum buffer allocation dynamic. This change
is required to avoid allocating memory excessively after the archive
buffering changes.

Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-09-06 17:39:43 +03:00
Phil Estes b5184d3c24 Fix gh#7747 - filter bare newline output and log client pull to stdout
Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2014-09-06 01:06:18 -04:00
Marc Tamsky d229821501 use tune2fs to disable ext4 mount counts and mount intervals
Signed-off-by: Marc Tamsky <mtamsky@gmail.com> (github: tamsky)
2014-09-05 19:32:39 -07:00
Nathan Hsieh e44bdd612b added a css fix for the image bug issue
Docker-DCO-1.1-Signed-off-by: Nathan Hsieh <hsieh.nathan@gmail.com>
(github: nhsiehgit)
2014-09-05 10:48:51 -07:00
Tianon Gravi 38186084b3 Merge pull request #7893 from tianon/travis-run-tests
Update Travis to also run the test suite
2014-09-05 09:19:38 -06:00
James Turnbull 712702aa79 Merge pull request #7894 from SvenDowideit/use-local-jquery
Use a local copy of jquery so that the docs work in China, and offline too.
2014-09-05 08:51:09 -04:00
Arthur Gautier 3e6c69e5a1 Fix SEGFAULT if dns resolv error
Per registry.doRequest, res and client might be nil in case of error
For example, dns resolution errors, /etc/docker/certs.d perms, failed
loading of x509 cert ...
This will make res.StatusCode and res.Body SEGFAULT.

Signed-off-by: Arthur Gautier <baloo@gandi.net>
2014-09-05 13:40:06 +02:00
Sven Dowideit 5fe94f0d91 Use a local copy of jquery so that the docs work in China, and offline too.
Docker-DCO-1.1-Signed-off-by: Sven Dowideit <SvenDowideit@docker.com> (github: SvenDowideit)
2014-09-05 11:48:34 +10:00
Fred Lifton 58e8987837 Adding first draft of Official Repo Guidelines
Docker-DCO-1.1-Signed-off-by: Fred Lifton <fred.lifton@docker.com> (github: fredlf)
2014-09-04 18:09:00 -07:00
Victor Vieux b0cff06c97 Merge pull request #7883 from LK4D4/fix_build_race
Fix race between dispatchers.run and toDisk
2014-09-04 17:32:46 -07:00
Sven Dowideit 03fdc7d2c1 Merge pull request #7890 from fredlf/docs-cherry-pick-update-process
Changes to Sven's cherry pick process
2014-09-05 09:58:18 +10:00
Tianon Gravi 068b9ac4d2 Update Travis to also run the test suite
Signed-off-by: Andrew Page <admwiggin@gmail.com>
2014-09-04 17:20:02 -06:00
Tibor Vass 1a2a4f61ab Merge pull request #7878 from LK4D4/fix_net_for_none
Don't initialize network for 'none' mode
2014-09-04 15:30:03 -07:00
Tianon Gravi d3b5bf5d24 Merge pull request #7763 from jamtur01/kate
Add syntax highlighting file for KDE's "Kate" editor
2014-09-04 15:28:11 -06:00
Fred Lifton b23daef3ec Changes to Sven's cherry pick process
Added content and revised after walk-through

Docker-DCO-1.1-Signed-off-by: Fred Lifton <fred.lifton@docker.com> (github: fredlf)
2014-09-04 13:32:16 -07:00
James Turnbull f7c0ac9a8b Merge pull request #7873 from jankeromnes/patch-1
Update SSH demo to ubuntu 14.04
2014-09-04 15:45:55 -04:00
Jan Keromnes 98f57d1c39 Update SSH demo to ubuntu 14.04
Signed-off-by: Jan Keromnes <janx@linux.com>
2014-09-04 20:27:41 +02:00
James Turnbull bc26aa7b50 Merge pull request #7876 from nhsiehgit/typofix
small typo. wrapping cut code snippet
2014-09-04 12:37:07 -04:00
Alexandr Morozov f17410da5e Fix race between dispatchers.run and toDisk
Signed-off-by: Alexandr Morozov <lk4d4math@gmail.com>
2014-09-04 19:43:28 +04:00
Alexandr Morozov ba24820284 Don't initialize network for 'none' mode
Fixes #7837

Signed-off-by: Alexandr Morozov <lk4d4math@gmail.com>
2014-09-04 09:50:58 +04:00
Sven Dowideit dbe1123607 Merge pull request #7828 from vieux/update_api_docs
Remote api docs for POST /containers/create were out of sync with runconfig/config.go
2014-09-04 13:05:06 +10:00
Sven Dowideit e1907bafb7 Merge pull request #7858 from somaopensource/typo-fix
Dockerfile documentation typo and content fix
2014-09-04 13:03:04 +10:00
Michael Crosby d9fc61066d Merge pull request #7864 from unclejack/fix_panic_registry_session
registry/session: fix panic in GetRemoteImageLayer
2014-09-03 18:17:03 -07:00
Nathan Hsieh adc9a14db4 small typo. fixed broken code snippet
Docker-DCO-1.1-Signed-off-by: Nathan Hsieh <hsieh.nathan@gmail.com> (github: nhsiehgit)
2014-09-03 17:53:45 -07:00
Victor Vieux 68c256cd40 Merge pull request #7875 from tiborvass/fix-integration-panic
Fix panic in integration-cli
2014-09-03 17:33:04 -07:00
Tibor Vass 39310448da handle empty envvars for DOCKER_GRAPHDRIVER and DOCKER_EXECDRIVER in daemon test framework
Signed-off-by: Tibor Vass <teabee89@gmail.com>
2014-09-03 17:14:19 -07:00
Tibor Vass defe01daf8 fix race in daemon test framework
Signed-off-by: Tibor Vass <teabee89@gmail.com>
2014-09-03 17:14:19 -07:00
Victor Vieux affef9e785 Merge pull request #7865 from cure/master
fix typos in error messages
2014-09-03 16:03:20 -07:00
Tibor Vass 782cde2c0f Merge pull request #7818 from thomasleveil/completion-docker-build
Add --force-rm to docker build command completion
2014-09-03 14:44:13 -07:00
James Turnbull a3326c3469 Merge pull request #7850 from fredlf/add_cherrypick_process
Add cherrypick process
2014-09-03 17:33:49 -04:00
Vincent Bernat dc2eab2cf4 zsh: update zsh completion for docker command
zsh completion is updated with the content of
felixr/docker-zsh-completion.

The major change since the last merge is the removal of use of
sed/awk. This should help a lot OSX users who previously had to install
gawk and gsed.

Docker-DCO-1.1-Signed-off-by: Vincent Bernat <vincent@bernat.im> (github: vincentbernat)
2014-09-03 22:30:11 +02:00
Ward Vandewege a447894946 fix typos in error messages
Signed-off-by: Ward Vandewege <ward@jhvc.com> (github: cure)
2014-09-03 13:12:10 -04:00
Arthur Gautier 2a7770a712 The correct option for go test is -test.run not -run 2014-09-03 19:06:25 +02:00
unclejack 6ba5d67a51 docker build: pull just latest if tag uspecified
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-09-03 18:32:47 +03:00
SvenDowideit 82b0c3e59c add a little documentation for docker pull
Docker-DCO-1.1-Signed-off-by: SvenDowideit <SvenDowideit@home.org.au> (github: SvenDowideit)
2014-09-03 18:32:41 +03:00
unclejack 9c08364a41 add --all-tags to pull & pull latest by default
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-09-03 18:03:14 +03:00
unclejack 9c413e3e6f registry/session: fix panic in GetRemoteImageLayer
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-09-03 17:26:56 +03:00
Thomas LÉVEIL 40f0bf7564 Add --force-rm to docker build command completion
Signed-off-by: Thomas LEVEIL <thomasleveil@gmail.com>
2014-09-03 14:26:16 +02:00
Oh Jinkyun 476f1df36f Dockerfile documentation typo and content fix
Signed-off-by: Oh Jinkyun <tintypemolly@gmail.com>
2014-09-03 19:28:01 +09:00
Alexandr Morozov 58dc474e65 Merge pull request #7542 from unclejack/refactor_archive_buffering
Refactor archive buffering
2014-09-03 12:39:14 +04:00
unclejack 84d76e556b archive: use pooled bufio readers and writers
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-09-03 11:37:03 +03:00
unclejack 2d2016b81b pkg/pool: add pools for bufio readers & writers
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-09-03 11:36:39 +03:00
unclejack bd130e72a0 pkg/ioutils: add ReaderErrWrapper to readers
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-09-03 11:36:21 +03:00
unclejack c93b9e81c0 pkg/ioutils: add NewBufReaderWithDrainbufAndBuffer
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-09-03 11:36:21 +03:00
unclejack 7b6f34057c pkg/ioutils: add WriteCloserWrapper
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-09-03 11:36:21 +03:00
unclejack 76212635b5 move some io related utils to pkg/ioutils
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-09-03 11:36:21 +03:00
unclejack 2da75f7079 Merge pull request #7315 from vieux/add_pb
add progress bar to ADD
2014-09-03 11:00:31 +03:00
Tibor Vass 426fbee810 Merge pull request #7800 from djbk/master
Cleanup: Typo in job.go
2014-09-02 17:47:18 -07:00
Fred Lifton 23cf3f7407 Adding Docs Deploy process to Docs ReadMe
Additions and revisions to Sven's cherry-pick process doc.

Docker-DCO-1.1-Signed-off-by: Fred Lifton <fred.lifton@docker.com> (github: fredlf)
2014-09-02 17:44:36 -07:00
Byung Kang cc84ec3f61 Cleanup: Typo in job.go
Signed-off-by: Byung Kang <byungk91@gmail.com>
2014-09-02 19:37:14 -05:00
Victor Vieux 4e40d09a2b Add a progress bar for ADD <url> <dst>
Signed-off-by: Victor Vieux <vieux@docker.com>
2014-09-03 00:17:08 +00:00
Jessie Frazelle f74b901da6 Merge pull request #7839 from LK4D4/embed_state_to_container
Use State as embedded to Container
2014-09-02 15:18:32 -07:00
Alexandr Morozov e0339d4b88 Use State as embedded to Container
Signed-off-by: Alexandr Morozov <lk4d4math@gmail.com>
2014-09-03 00:01:11 +04:00
unclejack 6db078dea7 Merge pull request #7191 from tiborvass/test-daemon
Add Daemon restart test along with Daemon utils
2014-09-02 22:40:23 +03:00
Victor Vieux 6eef7de396 Merge pull request #7842 from unclejack/build_delete_context
clean up context on build completion & add test
2014-09-02 12:19:47 -07:00
Tibor Vass ca24e91408 Merge pull request #7765 from erikh/test_unit_testflags
hack/make: fix test-unit target to propogate TESTFLAGS properly
2014-09-02 12:18:40 -07:00
Tibor Vass a9971a89cc Add TestDaemonRestartWithRunningContainersPorts
Docker-DCO-1.1-Signed-off-by: Tibor Vass <teabee89@gmail.com> (github: tiborvass)
2014-09-02 12:13:21 -07:00
Erik Hollensbe 9a2d4e9273 hack/make: fix test-unit target to propogate TESTFLAGS properly
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-09-02 12:10:47 -07:00
Tibor Vass 054b921a2c Add Daemon test utils
Docker-DCO-1.1-Signed-off-by: Tibor Vass <teabee89@gmail.com> (github: tiborvass)
2014-09-02 10:58:36 -07:00
unclejack 1858746978 clean up context on build completion & add test
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-09-02 17:35:25 +03:00
Alexandr Morozov 5f6b420f91 Merge pull request #7833 from crosbymichael/mem-test
Add more error info to TestDockerRunEchoStdoutWithMemoryLimit
2014-09-02 07:51:04 +04:00
Michael Crosby c0a5ec75c5 Add more error info to TestDockerRunEchoStdoutWithMemoryLimit
This test fails on my CI server often so we need more info when it does
happen with this test.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2014-09-01 17:09:52 -07:00
Victor Vieux 0704010313 Merge pull request #7832 from crosbymichael/fix-nat-test
Make nat test less racy and accurate
2014-09-01 16:57:26 -07:00
Michael Crosby 72652c5973 Make nat test less racy and accurate
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2014-09-01 16:54:32 -07:00
Michael Crosby ca63cceae5 Merge pull request #7830 from crosbymichael/update-libcontainer-sep1
Update libcontainer to version 55430d0db7c6bb1198c0bb573a9700a859d5ec26
2014-09-01 16:13:38 -07:00
Victor Vieux 40cc889a7c Merge pull request #7780 from unclejack/disallow_dns_with_net_host
disallow net=host and net=container with links and dns
2014-09-01 15:32:08 -07:00
Michael Crosby 688741df31 Update mount struct with reference
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2014-09-01 15:18:30 -07:00
Michael Crosby cf31787cd0 Update libcontainer to 55430d0db7c6bb1198c0bb573a9
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2014-09-01 15:18:25 -07:00
Michael Crosby 7ff488e741 Merge pull request #7829 from crosbymichael/process-config
Refactor exec drivers for multi process
2014-09-01 14:41:24 -07:00
Vishnu Kannan 3a7e07355a Rename 'StdConfig' to 'StreamConfig'.
Docker-DCO-1.1-Signed-off-by: Vishnu Kannan <vishnuk@google.com> (github: vishh)
2014-09-01 14:31:01 -07:00
Vishnu Kannan 4aa5da278f Refactoring execdriver.Command and Container structs to support 'docker exec' and other
similar features in the future.

Docker-DCO-1.1-Signed-off-by: Vishnu Kannan <vishnuk@google.com> (github: vishh)
2014-09-01 14:30:16 -07:00
James Turnbull 9ffb0f76f2 Merge pull request #7819 from SvenDowideit/debian-wheezy-notes
Debian wheezy notes - minor md tweaks
2014-09-01 15:45:47 -04:00
Victor Vieux 2d8695761d more updates
Signed-off-by: Victor Vieux <vieux@docker.com>
2014-09-01 18:41:42 +00:00
Michael Crosby efc6c9ba2f Merge pull request #7825 from LK4D4/move_integration_to_cli
Move integration to cli
2014-09-01 11:38:57 -07:00
Anand Patil eac6a5d789 v1.13 and 1.14 api docs now match runconfig/config.go 2014-09-01 18:33:13 +00:00
Michael Crosby 388ed88042 Merge pull request #7812 from erikh/fix_top
docker top: fix command when multiple arguments are supplied
2014-09-01 11:31:38 -07:00
Michael Crosby ec87846908 Merge pull request #7809 from LK4D4/use_increment
Use increment operator
2014-09-01 11:16:25 -07:00
Michael Crosby ac69b661ee Merge pull request #7791 from SvenDowideit/mflag-Visit-returns-nil-flag
fs.Visit() returns nil flag
2014-09-01 11:13:32 -07:00
Victor Vieux 09d3670907 Merge pull request #7814 from erikh/fix_parser_env
Fix panic when `ENV ARG=ARG` is used.
2014-09-01 11:03:21 -07:00
Alexandr Morozov 195cee9983 Move TestRunCidFileCheckIDLength to integration-cli
Signed-off-by: Alexandr Morozov <lk4d4math@gmail.com>
2014-09-01 20:15:20 +04:00
Alexandr Morozov 8892320835 Move TestRunCidFileCleanupIfEmpty to integration-cli
Signed-off-by: Alexandr Morozov <lk4d4math@gmail.com>
2014-09-01 19:55:39 +04:00
Sven Dowideit 2aaa8892e3 Merge pull request #7820 from SvenDowideit/eik3-exit-doc-patch
alternative to `exit` command: `CTRL-D`
2014-08-31 20:39:23 -07:00
Eike Herzbach c0c525b3d1 alternative to exit command: CTRL-D
Docker-DCO-1.1-Signed-off-by: Eike Herzbach <eike@herzbach.net> (github: eik3)
2014-09-01 13:38:25 +10:00
Sven Dowideit ead942156c document the cherry-pick process I'm using to make docs updates
Docker-DCO-1.1-Signed-off-by: Sven Dowideit <SvenDowideit@docker.com> (github: SvenDowideit)
2014-09-01 11:32:52 +10:00
Sven Dowideit 2852037018 Try to go for 80-char lines and a little md wrangling.
Docker-DCO-1.1-Signed-off-by: Sven Dowideit <SvenDowideit@docker.com> (github: SvenDowideit)
2014-09-01 09:55:53 +10:00
Vishal Doshi d27f1bb000 Update debian.md
Add some instructions for Debian 7 (aka Wheezy/Stable)

Signed-off-by: Vishal Doshi <vishal.doshi@gmail.com>
2014-09-01 00:50:49 +05:30
James Turnbull 014471ad39 Merge pull request #7751 from dchen1107/master
Bump containervm version to the latest one: 20140826
2014-08-31 14:16:22 -04:00
James Turnbull a25594c867 Merge pull request #7805 from nzwsch/patch-1
Update nodejs_web_app.md
2014-08-31 14:14:40 -04:00
Alexandr Morozov c8999dc326 Merge pull request #7817 from cnf/fix_cli_top_test_priv
Fixed error check using the wrong error value
2014-08-31 19:24:33 +04:00
Frank Rosquin d93c95a332 Fixed error check using the wrong error value
errorOut was using the err from the previous test.
same as #7816 but on TestTopPrivileged, which I missed last time

Signed-off-by: Frank Rosquin <frank.rosquin@gmail.com>
2014-08-31 16:35:38 +02:00
Alexandr Morozov d301146c4b Merge pull request #7816 from cnf/fix_cli_top_test
fixed error check using the wrong error value
2014-08-31 18:28:29 +04:00
Frank Rosquin 82c536aacd fixed error check using the wrong error value
errorOut was using the err from the previous test.

Signed-off-by: Frank Rosquin <frank.rosquin@gmail.com>
2014-08-31 16:21:53 +02:00
Erik Hollensbe d7dd35bbd6 Add a test for the multiple arguments passed to docker top
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-08-31 05:53:05 -07:00
Erik Hollensbe a0255ba502 Fix panic when ENV ARG=ARG is used.
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-08-31 05:39:36 -07:00
Erik Hollensbe 394a6d3154 docker top: fix command when multiple arguments are supplied
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-08-31 01:18:15 -07:00
Alexandr Morozov 16e850fe3e Use increment operator
Signed-off-by: Alexandr Morozov <lk4d4math@gmail.com>
2014-08-30 21:43:48 +04:00
nzwsch 2d1ec162be Update nodejs_web_app.md 2014-08-30 16:02:47 +09:00
Victor Vieux 280b64bc7b Merge pull request #7775 from LK4D4/merge_state_lock
Merge Container and State mutexes
2014-08-29 11:25:21 -07:00
Michael Crosby 8b74ac6717 Merge pull request #7795 from LK4D4/style_fixes
Some more style fixes
2014-08-29 10:59:37 -07:00
Victor Vieux 9c0b851e4c Merge pull request #6628 from SvenDowideit/6501-list-all-docker-ports
List all ports when calling `docker port container`
2014-08-29 10:57:20 -07:00
Alexandr Morozov b101022dbe Implement allocating IPs from CIDR within bridge network
Fixes #4986

Signed-off-by: Alexandr Morozov <lk4d4math@gmail.com>
2014-08-29 16:21:07 +04:00
Alexandr Morozov 42dd48315f More ipallocator refactoring
Now x1.5 faster

Signed-off-by: Alexandr Morozov <lk4d4math@gmail.com>
2014-08-29 16:20:49 +04:00
Alexandr Morozov 114838cbda Some more style fixes
Signed-off-by: Alexandr Morozov <lk4d4math@gmail.com>
2014-08-29 15:21:28 +04:00
Alexandr Morozov 517ba44e37 Merge Container and State mutexes
Resolved all deadlocks and fixed race between kill and
monitor.resetContainer
Fixes #7600

Signed-off-by: Alexandr Morozov <lk4d4math@gmail.com>
2014-08-29 12:56:04 +04:00
SvenDowideit 4e340cedec List all ports when calling docker port container
Docker-DCO-1.1-Signed-off-by: SvenDowideit <SvenDowideit@home.org.au> (github: SvenDowideit)
2014-08-29 18:31:51 +10:00
Sven Dowideit f1934e5979 fs.Visit() returns nil flag
Signed-off-by: Sven Dowideit <SvenDowideit@docker.com>
2014-08-29 15:38:03 +10:00
Victor Vieux 6eaac7d571 Merge pull request #5518 from vbatts/vbatts-save_many
docker save: ability to save multiple images
2014-08-28 18:40:28 -07:00
Vincent Batts 79501dcd4f save many: adding an integration-cli test
Signed-off-by: Vincent Batts <vbatts@redhat.com>
2014-08-28 21:33:13 -04:00
James Turnbull f1a42fb609 Merge pull request #7789 from SvenDowideit/add-css-for-strong-tag
Give the <strong> tag some CSS (the .content-body resets it)
2014-08-28 18:12:54 -07:00
Fred Lifton d420b2cce0 Merge pull request #7786 from psftw/volume_removal
Be more explicit about volume lifecycle
2014-08-28 18:11:28 -07:00
SvenDowideit 7de977368c Give the <strong> tag some CSS (the .content-body resets it)
Docker-DCO-1.1-Signed-off-by: SvenDowideit <SvenDowideit@home.org.au> (github: SvenDowideit)
2014-08-29 11:08:56 +10:00
Sven Dowideit 2bf41be514 Merge pull request #7769 from fredlf/1.2.0_release-notes
Adding release notes to docs home
2014-08-28 17:37:15 -07:00
Fred Lifton 810c231b91 Fixed typos based on feedback.
Docker-DCO-1.1-Signed-off-by: Fred Lifton <fred.lifton@docker.com> (github: fredlf)
2014-08-28 17:29:09 -07:00
Vincent Batts e64131d1bf docker save: ability to save multiple images
Now from a single invocation of `docker save`, you can specify multiple
images to include in the output tar, or even just multiple tags of a
particular image/repo.

```
> docker save -o bundle.tar busybox ubuntu:lucid ubuntu:saucy fedora:latest
> tar tf ./bundle.tar | wc -l
42
> tar xOf ./bundle.tar repositories
{"busybox":{"latest":"2d8e5b282c81244037eb15b2068e1c46319c1a42b80493acb128da24b2090739"},"fedora":{"latest":"58394af373423902a1b97f209a31e3777932d9321ef10e64feaaa7b4df609cf9"},"ubuntu":{"lucid":"9cc9ea5ea540116b89e41898dd30858107c1175260fb7ff50322b34704092232","saucy":"9f676bd305a43a931a8d98b13e5840ffbebcd908370765373315926024c7c35e"}}
```

Further, this fixes the bug where the `repositories` file is not created
when saving a specific tag of an image (e.g. ubuntu:latest)

document multi-image save and updated API docs

Docker-DCO-1.1-Signed-off-by: Vincent Batts <vbatts@redhat.com> (github: vbatts)
2014-08-28 20:22:33 -04:00
Sven Dowideit 31d2701377 Merge pull request #7749 from hollietealok/master
Doc: Resizing Boot2Docker Volume with VirtualBox
2014-08-28 16:08:29 -07:00
Hollie Teal 0f8d461ed7 Final tweaks.
Signed-off-by: Hollie Teal <hollie@docker.com>
2014-08-28 13:51:38 -07:00
Peter Salvatore bfa3d5fa72 Be more explicit about volume removal
Signed-off-by: Peter Salvatore <peter@psftw.com>
2014-08-28 16:44:41 -04:00
Hollie Teal ce73a3bcf7 Added changes brought up in PR discussion.
Signed-off-by: Hollie Teal <hollie@docker.com>
2014-08-28 11:04:53 -07:00
Alexandr Morozov bc41261de0 Merge pull request #7782 from somaopensource/graph_remove_fixme
graph: remove obsolete comments
2014-08-28 20:03:16 +04:00
Daehyeok.Mun 59d58352df graph: remove obsolete comments
Graph.Get function already returns nil when the image doesn't exist so
following comment is obsolete.
FIXME: return nil when the image doesn't exist, instead of an error

Signed-off-by: Daehyeok.Mun <daehyeok@gmail.com>
2014-08-29 00:22:26 +09:00
unclejack 3256050ed4 deny net host + dns and links with container net
Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
2014-08-28 16:58:54 +03:00
unclejack d244e8c379 Merge pull request #7774 from somaopensource/graph_fixme
graph: change argument order of Register function
2014-08-28 16:36:23 +03:00
Daehyeok.Mun 35df24c8e6 graph: change argument order of Register function
This commit is patch for following comment
FIXME: pass img as first argument

Signed-off-by: Daehyeok.Mun <daehyeok@gmail.com>
2014-08-28 20:06:07 +09:00
unclejack 22b585e0fc Merge pull request #7294 from erikh/fix_multiple_attach_test
Fix multiple attach test.
2014-08-28 13:38:28 +03:00
Victor Vieux d9f8d3ea9f Merge pull request #7461 from erikh/rewrite_dockerfile_parser
Cleanup: Refactor Dockerfile parser
2014-08-27 23:22:47 -07:00
Victor Vieux a26fc6cae8 Merge pull request #7772 from LK4D4/log_dones
Add logDone logs where it's missing
2014-08-27 22:46:54 -07:00
Alexandr Morozov 3c984a6d15 Add logDone logs where it's missing
Signed-off-by: Alexandr Morozov <lk4d4math@gmail.com>
2014-08-28 09:25:57 +04:00
Michael Crosby 334dca15b0 Merge pull request #7647 from ewindisch/erw-tarsum-maintainer
Add Eric Windisch to MAINTAINER for tarsum
2014-08-27 20:00:19 -07:00
Michael Crosby 2a5e29adc6 Merge pull request #7677 from erikh/update_hosts_linked_containers
Update /etc/hosts when linked container is restarted
2014-08-27 19:54:09 -07:00
Michael Crosby 77eefbc688 Merge pull request #7672 from cpuguy83/cleanup_volumes_from
Cleanup: applyVolumesFrom
2014-08-27 19:43:16 -07:00
Michael Crosby 345e3811fe Merge pull request #7767 from vieux/move_some_tests
Move some tests
2014-08-27 19:28:31 -07:00
Erik Hollensbe 2ef1dec7e8 builder: Refactors according to @tiborvass's comments
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-08-27 18:52:30 -07:00
Erik Hollensbe 305f735080 builder: several fixups from comments
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-08-27 18:52:30 -07:00
Erik Hollensbe a1522ec01c builder: move the evaluator package code directly into builder
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-08-27 18:52:30 -07:00
Erik Hollensbe cb51681a6d builder: Fix handling of ENV references that reference themselves, plus tests.
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-08-27 18:52:30 -07:00
Erik Hollensbe 1ae4c00a19 builder: fix references to jobs in daemon, make builder a first class
package referring to evaluator

Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-08-27 18:52:30 -07:00
Erik Hollensbe 3dfe5ddfb9 builder: Remove spurious .gitignores
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-08-27 18:52:30 -07:00
Erik Hollensbe 248f4c4f75 builder/parser: Rewrite Parse() to use := instead of var
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-08-27 18:52:30 -07:00
Erik Hollensbe 135f54ccbf builder: Remove blankNode(), use &Node{} instead.
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-08-27 18:52:30 -07:00
Erik Hollensbe 21b15ac920 builder: handle certain classes of JSON errors gracefully
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-08-27 18:52:30 -07:00
Erik Hollensbe 4122a981ae builder: negative test support, fix for shykes's broken dockerfile
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-08-27 18:52:30 -07:00
Erik Hollensbe 3f5f6b038f builder: comments / documentation
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-08-27 18:52:30 -07:00
Erik Hollensbe d6c0bbc3cb builder: add command handling to evaluator.
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-08-27 18:52:30 -07:00
Erik Hollensbe bb36902db6 builder: rewrote NewBuildFile according to tibor's comments
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-08-27 18:52:29 -07:00
Erik Hollensbe 22c46af4b3 builder: parser and beginnings of the evaluator
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-08-27 18:52:29 -07:00
Fred Lifton 1c3b732f8a Adding release notes to docs home
This is a temporary solution until we have a dedicated release notes page with automated content.

Docker-DCO-1.1-Signed-off-by: Fred Lifton <fred.lifton@docker.com> (github: fredlf)
2014-08-27 18:34:19 -07:00
Erik Hollensbe f6a2fc4c33 Update networking doc with clarified text regarding links usage
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-08-27 18:23:41 -07:00
Erik Hollensbe 9f09ef18a4 pkg/networkfs/etchosts: tests for Update method
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-08-27 18:23:41 -07:00
Erik Hollensbe 925a3254e7 pkg/graphdb: tests for Parents and Children
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-08-27 18:23:41 -07:00
Victor Vieux 450740c891 Update /etc/hosts when linked container is restarted
Docker-DCO-1.1-Signed-off-by: Victor Vieux <vieux@docker.com> (github: vieux)
2014-08-27 18:23:41 -07:00
Victor Vieux 2b538bd555 remove auth_test.go
Signed-off-by: Victor Vieux <vieux@docker.com>
2014-08-28 00:28:54 +00:00
Victor Vieux 5b27fbc0e2 move TestEntrypoint & TestBindMounts
Signed-off-by: Victor Vieux <vieux@docker.com>
2014-08-28 00:25:10 +00:00
Victor Vieux 96e1c99fb4 Merge pull request #7708 from SvenDowideit/programatic-usage-options
add the [OPTIONS] string automatically if there are flags defined
2014-08-27 16:40:17 -07:00
Victor Vieux eb9379c5d0 move TestKillDifferentUser
Signed-off-by: Victor Vieux <vieux@docker.com>
2014-08-27 23:34:37 +00:00
Sven Dowideit 7c27c7a096 Merge pull request #7766 from fredlf/update_b2d_upgrading
Updating B2D upgrade instructions for 1.2.0.
2014-08-27 15:53:48 -07:00
SvenDowideit 8c6c4a12b7 add the [OPTIONS] string automatically if there are flags defined
Signed-off-by: SvenDowideit <SvenDowideit@home.org.au>

Docker-DCO-1.1-Signed-off-by: SvenDowideit <SvenDowideit@home.org.au> (github: SvenDowideit)
2014-08-28 08:50:50 +10:00
Victor Vieux 0cb672e6a9 Merge pull request #7762 from LK4D4/skip_delete_no_chain_#6904
Skip "no chain" error on deleting chain in Unmap
2014-08-27 14:43:57 -07:00
Fred Lifton 3304d4e984 Updating B2D upgrade instructions for 1.2.0.
Docker-DCO-1.1-Signed-off-by: Fred Lifton <fred.lifton@docker.com> (github: fredlf)
2014-08-27 14:16:29 -07:00
Michael Crosby e0db426ff6 Merge pull request #7764 from vieux/revert
Revert "--help option and help command should print to stdout not stderr"
2014-08-27 12:02:02 -07:00
Victor Vieux 2e489073d9 Revert "--help option and help command should print to stdout not stderr"
This reverts commit 61b129d818.

Signed-off-by: Victor Vieux <vieux@docker.com>
2014-08-27 18:59:13 +00:00
Hollie Teal 77ca0ae9de Added Fred's suggestions.
Signed-off-by: Hollie Teal <hollie@docker.com>
2014-08-27 11:49:26 -07:00
Michael Crosby 835800fcd5 Merge pull request #7686 from guywithnose/trancateNames
Truncate the names list on ps
2014-08-27 11:46:28 -07:00
Robert Bittle d2ffcd986f Truncate the names list on ps
Signed-off-by: Robert Bittle <guywithnose@gmail.com>
2014-08-27 14:24:49 -04:00
Victor Vieux 76fd51a478 Merge pull request #6052 from rhatdan/help
--help option and help command should print to stdout not stderr
2014-08-27 11:17:16 -07:00
James Turnbull 7458a82e0b Added Syntax highlighting file for the KDE Kate Editor
Docker-DCO-1.1-Signed-off-by: James Turnbull <james@lovedthanlost.net> (github: jamtur01)
2014-08-27 11:16:51 -07:00
Eric Windisch 0bd1c05e5c Restrict repository names from matching hexadecimal strings
To avoid conflicting with layer IDs, repository names must
not be tagged with names that collide with hexadecimal strings.

Signed-off-by: Eric Windisch <eric@windisch.us>
2014-08-27 13:46:10 -04:00
Alexandr Morozov bd049b3800 Skip "no chain" error on deleting chain in Unmap
Fixes #6904
Signed-off-by: Alexandr Morozov <lk4d4math@gmail.com>
2014-08-27 20:24:27 +04:00
Michael Crosby 1385b2d293 Merge pull request #7740 from LK4D4/registry_style
Style fixes for registry/registry.go
2014-08-26 18:02:11 -07:00
Brian Goff 7495fbc0e3 Cleanup: applyVolumesFrom
Docker-DCO-1.1-Signed-off-by: Brian Goff <cpuguy83@gmail.com> (github: cpuguy83)
2014-08-26 20:52:58 -04:00
Dawn Chen 9cd77818bb Bump containervm version to the latest one: 20140826 2014-08-26 16:59:21 -07:00
Hollie Teal 161cc21f24 Final changes.
Signed-off-by: Hollie Teal <hollie@docker.com>
2014-08-26 14:01:10 -07:00
James Turnbull 4fe6115fb1 Merge pull request #7741 from LK4D4/bump_docs_to_1.15
Bump docs and api to 1.15
2014-08-26 13:44:05 -07:00
James Turnbull 5b6c25f751 Merge pull request #7735 from SvenDowideit/lxcconf-api-docs
Lxcconf api docs
2014-08-26 13:43:48 -07:00
Michael Crosby b458dd1dfb Merge pull request #7745 from LK4D4/fix_docker_host_panic
Fix panic for DOCKER_HOST without ://
2014-08-26 11:23:30 -07:00
Tibor Vass c4a190db0c Merge pull request #7744 from LK4D4/fix_race_cleanup_start_#6904
Fix race condition between cleanup and Start
2014-08-26 14:17:11 -04:00
Michael Crosby 55f7dd8198 Merge pull request #7642 from LK4D4/style_fixes
Style fixes for daemon package
2014-08-26 10:59:05 -07:00
Michael Crosby 89f64712fa Merge pull request #7702 from LK4D4/fix_panic_on_bad_device_#7701
Handle error from GetDevice early
2014-08-26 10:53:40 -07:00
Alexandr Morozov 12ff89a390 Fix race condition between cleanup and Start
There was problem when Start might be before cleanup

Fixes #6904

Signed-off-by: Alexandr Morozov <lk4d4math@gmail.com>
2014-08-26 20:57:12 +04:00
Alexandr Morozov 660cc4a267 Fix panic for DOCKER_HOST without ://
Signed-off-by: Alexandr Morozov <lk4d4math@gmail.com>
2014-08-26 20:32:10 +04:00
Tibor Vass 63ed18ad11 Merge pull request #7615 from crosbymichael/fix-utils-panic
Fix panic in validate context for build
2014-08-26 10:30:42 -04:00
Alexandr Morozov e261618b24 Bump docs and api to 1.15
Signed-off-by: Alexandr Morozov <lk4d4math@gmail.com>
2014-08-26 13:08:50 +04:00
Alexandr Morozov 45a2923874 Style fixes for registry/registry.go
Signed-off-by: Alexandr Morozov <lk4d4math@gmail.com>
2014-08-26 12:28:40 +04:00
Alexandr Morozov 698392cb51 Remove redundant elses
Signed-off-by: Alexandr Morozov <lk4d4math@gmail.com>
2014-08-26 09:28:54 +04:00
Alexandr Morozov 1ba15b8aca Use ++ instead of += 1
Signed-off-by: Alexandr Morozov <lk4d4math@gmail.com>
2014-08-26 09:27:07 +04:00
SvenDowideit b0edced87f Fix the other API docs to use an array of key/values
as per #7706

Docker-DCO-1.1-Signed-off-by: SvenDowideit <SvenDowideit@home.org.au> (github: SvenDowideit)
2014-08-26 11:36:25 +10:00
getvictor 216ab880f9 Updating LxcConf to match Docker command line
I've changed LxcConf on a previous API document. Not sure why it keeps getting changed back. I'm seeing Docker 1.2.0 command-line calls are still using the array of key/values.

Docker-DCO-1.1-Signed-off-by: getvictor <victor@victoreda.com> (github: SvenDowideit)
2014-08-26 11:36:25 +10:00
Sven Dowideit a05d8d4f4f Merge pull request #7733 from Djelibeybi/oraclelinux-docs
Oracle Linux docs
2014-08-25 18:14:36 -07:00
Avi Miller fcad8ee83a Add Oracle Linux specific documentation for installation of Docker from Oracle Linux repositories on Oracle Linux 6 and 7.
Signed-off-by: Avi Miller <avi.miller@oracle.com>
2014-08-26 11:10:09 +10:00
Sven Dowideit 849086d3d9 Merge pull request #7732 from SvenDowideit/ubuntu-backported-kernel
Ubuntu backported kernel
2014-08-25 17:16:34 -07:00
SvenDowideit 93d574298d small word change
Docker-DCO-1.1-Signed-off-by: SvenDowideit <SvenDowideit@home.org.au> (github: SvenDowideit)
2014-08-26 10:15:12 +10:00
Hollie Teal 1d1bb2ae45 Image additions and copy changes.
Signed-off-by: Hollie Teal <hollie@docker.com>
2014-08-25 16:50:55 -07:00
Sven Dowideit 97c7b0115b Merge pull request #7603 from kuon/centos7
Added manual installation instruction for Centos7 and note about firewalld.
2014-08-25 16:49:09 -07:00
Michael Crosby b0abd6de63 Merge pull request #7574 from crosbymichael/update-restart-docs
Update flag usages and docs for max restart count
2014-08-25 16:26:06 -07:00
Michael Crosby 2bdfbab23d Merge pull request #7622 from rajdeepd/master
Added Test case for Engine shutdown
2014-08-25 15:57:11 -07:00
Michael Crosby 228eda4fd5 Merge pull request #7629 from LK4D4/fix_follow_hang_on_stop
Fix logs -f hanging on stopped containers
2014-08-25 15:24:20 -07:00
Michael Crosby 7556a42453 Merge pull request #7716 from coolljt0725/master
Fix the bug of docker import command when import a image with a tag use format 'URL|- [REPOSITORY[:TAG]]'
2014-08-25 15:11:50 -07:00
Lei Jitang 7e72ed70f9 add docker import test with a tag. Fixes #7714
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2014-08-26 15:51:22 +08:00
Lei Jitang 79cf839527 Fix the bug of docker import command when import a image with a tag use format 'URL|- [REPOSITORY[:TAG]]'.Fixes #7714
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2014-08-26 15:51:22 +08:00
Michael Crosby cd776cdd77 Fix panic in validate context for build
Fixes #7611

Signed-off-by: Michael Crosby <michael@docker.com>
2014-08-25 14:25:31 -07:00
Tibor Vass 34438efffe Merge pull request #7659 from somaopensource/soma
daemon: rename from "delete" job to "rm"
2014-08-25 15:54:14 -04:00
Michael Crosby 321df7fd61 Merge pull request #7649 from tianon/vendor-optional-go
Optionalize the "hg clone" of Go, since it takes forever
2014-08-25 12:00:23 -07:00
Victor Vieux d1544a0930 Merge pull request #7683 from LK4D4/fix_build_hang_pipe_#7680
Skip permissions check on named pipes
2014-08-25 12:00:11 -07:00
Alexandr Morozov 07f2e79486 Skip permissions check on named pipes
Fixes #7680

Signed-off-by: Alexandr Morozov <lk4d4math@gmail.com>
2014-08-25 22:59:53 +04:00
Victor Vieux e1defe71c3 Merge pull request #7691 from carmstrong/patch-1
Fix typo for --restart deprecation
2014-08-25 11:13:27 -07:00
Michael Crosby 2c9789bbf7 Merge pull request #7725 from erikh/fix_registry_test
fix return values in registry mock service
2014-08-25 10:56:00 -07:00
Erik Hollensbe e81b686924 fix return values in registry mock service
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-08-25 10:29:38 -07:00
James Turnbull bef33cf88a Merge pull request #7700 from jamtur01/relnotes
Removed deprecated release notes
2014-08-25 07:13:11 -07:00
Nicolas Goy d4a53a7bce Added manual installation instruction for Centos7.
Added a note about firewalld.

Signed-off-by: Nicolas Goy <kuon@goyman.com>
2014-08-25 04:00:11 +02:00
Alexandr Morozov 17b95ecb08 Handle error from GetDevice early
Also more verbose error.

Fixes panic from #7701

Signed-off-by: Alexandr Morozov <lk4d4math@gmail.com>
2014-08-24 14:09:30 +04:00
James Turnbull df38eb4d43 Removed deprecated release notes
Docker-DCO-1.1-Signed-off-by: James Turnbull <james@lovedthanlost.net> (github: jamtur01)
2014-08-23 20:01:41 -04:00
Hollie Teal e4ff140fdd Additional formatting and markdown changes to B2D volume resize doc
Signed-off-by: Hollie Teal <hollie@docker.com>
2014-08-22 18:19:58 -07:00
Hollie Teal db3db49e9c Initial commit: Increase Boot2Docker Volume + images
Signed-off-by: Hollie Teal <hollie@docker.com>
2014-08-22 17:06:28 -07:00
Chris Armstrong ef9a5926e9 Fix typo for --restart deprecation
Signed-off-by: Chris Armstrong <chris@opdemand.com>
2014-08-22 12:56:43 -07:00
James Turnbull 6bc773b2c1 Merge pull request #7684 from averagehuman/patch-1
Update usingdocker.md
2014-08-22 13:16:33 -04:00
averagehuman fe845c4da8 Update usingdocker.md
Minor rewording and removal of unnecessary apostrophe.
2014-08-22 17:48:26 +01:00
Tianon Gravi 651f521e17 Merge pull request #7632 from erikh/fix_check_config
fix check-config.sh to check for CGROUP_PERF
2014-08-22 11:42:08 -05:00
Victor Vieux 094cd7040b Merge pull request #7638 from vivekdasgupta/minor-fixes
Fix data space reporting from Kb/Mb to KB/MB
2014-08-22 11:40:49 -05:00
Victor Vieux bd7c7febb9 Merge pull request #7668 from docker/merge_release_v1.2.0
Merge release v1.2.0
2014-08-22 11:18:48 -05:00
Erik Hollensbe 01094c1568 Fix multiple attach test.
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-08-22 03:58:05 -07:00
Victor Vieux 61b309f0d2 Change version to 1.2.0-dev 2014-08-21 15:55:00 -04:00
Victor Vieux 380aef2dc1 Merge remote-tracking branch 'origin/release' 2014-08-21 15:54:02 -04:00
Dan Walsh 61b129d818 --help option and help command should print to stdout not stderr
--help and help are successful commands so output should not go to error.

QE teams have requested this change, also users doing docker help | less
or docker run --help | less would expect this to work.

Usage statement should only be printed when the user asks for it.
Errors should print error message and then suggest the docker COMMAND --help
command to see usage information.

The current behaviour causes the user to have to search for the error message
and sometimes scrolls right off the screen.  For example a error on a
"docker run" command is very difficult to diagnose.

Finally erros should always exit with a non 0 exit code, if the user
makes a CLI error.

Docker-DCO-1.1-Signed-off-by: Dan Walsh <dwalsh@redhat.com> (github: rhatdan)
2014-08-21 15:35:20 -04:00
Victor Vieux 7649264eb8 Merge pull request #7644 from vieux/bump_v1.2.0
Bump v1.2.0
2014-08-21 14:32:00 -05:00
Hollie Teal c87d9a1de6 Clean up typos in hub_registry_spec.md
Couple of instances of incorrect articles (e.g. "an Docker Hub").
2014-08-21 11:04:25 -07:00
Vivek Dasgupta a327d9b91e Fix data space reporting from Kb/Mb to KB/MB
Docker-DCO-1.1-Signed-off-by: Vivek Dasgupta <vdasgupt@redhat.com> (github: vivekdasgupta)
2014-08-21 21:03:44 +05:30
limsy 239e932485 daemon: rename from "delete" job to "rm"
This commit fixes following FIXMEs:

// FIXME: rename "delete" to "rm" for consistency with the CLI command
// FIXME: rename ContainerDestroy to ContainerRm for consistency with the CLI command

Signed-off-by: lim seong yeol <seongyeol37@gmail.com>
2014-08-21 19:58:26 +09:00
dragon788 27f44b9bb1 Add link to Ubuntu notes about LTSEnablementStack
When running Ubuntu with a graphical environment, the kernel version MUST match the Xorg version. Only installing the suggested packages above breaks Unity for anything other than 2D mode (in VMware and probably native).
Signed-off-by: Ethan Spoelstra <ewspoelstra@computerphreaks.com>
2014-08-20 22:23:34 -05:00
Tianon Gravi 78c6882567 Optionalize the "hg clone" of Go, since it takes forever (now, to update our Go version too, we need to explicitly "./hack/vendor.sh --go")
Signed-off-by: Andrew Page <admwiggin@gmail.com>
2014-08-20 14:17:11 -06:00
Eric Windisch cd71f92a7f Add Eric Windisch to MAINTAINER for tarsum
This code is vital to the security of the project and it is important
we assure it is well-maintained and guarded.

I am vested in assuring this code maintains security and
provides as much compatibility as possible between releases.

Signed-off-by: Eric Windisch <eric@windisch.us>
2014-08-20 11:19:46 -07:00
Alexandr Morozov f04ef96e07 Test for following logs for stopped container
Signed-off-by: Alexandr Morozov <lk4d4math@gmail.com>
2014-08-20 20:02:56 +04:00
Erik Hollensbe ce3c1f376c fix check-config.sh to check for CGROUP_PERF
Docker-DCO-1.1-Signed-off-by: Erik Hollensbe <github@hollensbe.org> (github: erikh)
2014-08-20 13:37:39 +00:00
Alexandr Morozov badf8247af Fix logs -f hanging on stopped containers
Fixes #7020

Signed-off-by: Alexandr Morozov <lk4d4math@gmail.com>
2014-08-19 22:23:02 +04:00
Rajdeep Dua 0800f8cc19 Added Test case for Engine shutdown
Docker-DCO-1.1-Signed-off-by: Rajdeep Dua <dua_rajdeep@yahoo.com> (github: rajdeepd)
2014-08-19 04:59:13 -07:00
Michael Crosby 5ad4879d2a Update flag usages and docs for max restart count
Signed-off-by: Michael Crosby <michael@docker.com>
2014-08-13 18:24:33 -07:00
mschurenko 56fa079906 add --releasever=/ to mkimage-yum.sh
I didn't realize the commit required a Docker-DCO so it failed the travis-ci build. So I removed the commit from my forked repo. Now it looks like there is a pull request with no commit. So here it is again:

Needed to add '--releasever=/' flag to run yum groupinstall on Centos7 (didn't try on anything else). This snippet from yum man page explains why:

```
Note: You may also want to use the option --releasever=/ when creating the installroot as otherwise the $releasever value is taken from the rpmdb within the installroot (and thus.  will  be  empty,  before  creation).
```

Docker-DCO-1.1-Signed-off-by: Matt Schurenko <matt.schurenko@gmail.com> (github: mschurenko)
2014-07-12 12:15:42 -07:00
843 changed files with 53004 additions and 16070 deletions
Executable
+14
View File
@@ -0,0 +1,14 @@
image: dockercore/docker
env:
- AUTO_GOPATH=1
- DOCKER_GRAPHDRIVER=vfs
- DOCKER_EXECDRIVER=native
script:
# Setup the DockerInDocker environment.
- hack/dind
# Tests relying on StartWithBusybox make Drone time out.
- rm integration-cli/docker_cli_daemon_test.go
- rm integration-cli/docker_cli_exec_test.go
# Validate and test.
- hack/make.sh validate-dco validate-gofmt
- hack/make.sh binary cross test-unit test-integration-cli test-integration
+1
View File
@@ -4,6 +4,7 @@
.vagrant*
bin
docker/docker
*.exe
.*.swp
a.out
*.orig
+29 -1
View File
@@ -1,8 +1,10 @@
# Generate AUTHORS: hack/generate-authors.sh
# Generate AUTHORS: project/generate-authors.sh
# Tip for finding duplicates (besides scanning the output of AUTHORS for name
# duplicates that aren't also email duplicates): scan the output of:
# git log --format='%aE - %aN' | sort -uf
#
# For explanation on this file format: man git-shortlog
<charles.hooper@dotcloud.com> <chooper@plumata.com>
<daniel.mizyrycki@dotcloud.com> <daniel@dotcloud.com>
@@ -29,6 +31,7 @@ Andy Smith <github@anarkystic.com>
<victor.vieux@docker.com> <dev@vvieux.com>
<victor.vieux@docker.com> <victor@docker.com>
<victor.vieux@docker.com> <vieux@docker.com>
<victor.vieux@docker.com> <victorvieux@gmail.com>
<dominik@honnef.co> <dominikh@fork-bomb.org>
<ehanchrow@ine.com> <eric.hanchrow@gmail.com>
Walter Stanish <walter@pratyeka.org>
@@ -54,6 +57,7 @@ Jean-Baptiste Dalido <jeanbaptiste@appgratis.com>
<proppy@google.com> <proppy@aminche.com>
<michael@docker.com> <michael@crosbymichael.com>
<michael@docker.com> <crosby.michael@gmail.com>
<michael@docker.com> <crosbymichael@gmail.com>
<github@developersupport.net> <github@metaliveblog.com>
<brandon@ifup.org> <brandon@ifup.co>
<dano@spotify.com> <daniel.norberg@gmail.com>
@@ -63,10 +67,13 @@ Jean-Baptiste Dalido <jeanbaptiste@appgratis.com>
<sjoerd-github@linuxonly.nl> <sjoerd@byte.nl>
<solomon@docker.com> <solomon.hykes@dotcloud.com>
<solomon@docker.com> <solomon@dotcloud.com>
<solomon@docker.com> <s@docker.com>
Sven Dowideit <SvenDowideit@home.org.au>
Sven Dowideit <SvenDowideit@home.org.au> <SvenDowideit@fosiki.com>
Sven Dowideit <SvenDowideit@home.org.au> <SvenDowideit@docker.com>
Sven Dowideit <SvenDowideit@home.org.au> <¨SvenDowideit@home.org.au¨>
Sven Dowideit <SvenDowideit@home.org.au> <SvenDowideit@users.noreply.github.com>
Sven Dowideit <SvenDowideit@home.org.au> <sven@t440s.home.gateway>
unclejack <unclejacksons@gmail.com> <unclejack@users.noreply.github.com>
<alexl@redhat.com> <alexander.larsson@gmail.com>
Alexandr Morozov <lk4d4math@gmail.com>
@@ -97,3 +104,24 @@ Matthew Heon <mheon@redhat.com> <mheon@mheonlaptop.redhat.com>
<andrew.weiss@outlook.com> <andrew.weiss@microsoft.com>
Francisco Carriedo <fcarriedo@gmail.com>
<julienbordellier@gmail.com> <git@julienbordellier.com>
<ahmetb@microsoft.com> <ahmetalpbalkan@gmail.com>
<lk4d4@docker.com> <lk4d4math@gmail.com>
<arnaud.porterie@docker.com> <icecrime@gmail.com>
<baloo@gandi.net> <superbaloo+registrations.github@superbaloo.net>
Brian Goff <cpuguy83@gmail.com>
<cpuguy83@gmail.com> <bgoff@cpuguy83-mbp.home>
<ewindisch@docker.com> <eric@windisch.us>
<frank.rosquin+github@gmail.com> <frank.rosquin@gmail.com>
Hollie Teal <hollie@docker.com>
<hollie@docker.com> <hollie.teal@docker.com>
<hollie@docker.com> <hollietealok@users.noreply.github.com>
<huu@prismskylabs.com> <whoshuu@gmail.com>
Jessica Frazelle <jess@docker.com> Jessie Frazelle <jfrazelle@users.noreply.github.com>
<jess@docker.com> <jfrazelle@users.noreply.github.com>
<konrad.wilhelm.kleine@gmail.com> <kwk@users.noreply.github.com>
<tintypemolly@gmail.com> <tintypemolly@Ohui-MacBook-Pro.local>
<estesp@linux.vnet.ibm.com> <estesp@gmail.com>
<github@gone.nl> <thaJeztah@users.noreply.github.com>
Thomas LEVEIL <thomasleveil@gmail.com> Thomas LÉVEIL <thomasleveil@users.noreply.github.com>
<oi@truffles.me.uk> <timruffles@googlemail.com>
<Vincent.Bernat@exoscale.ch> <bernat@luffy.cx>
-30
View File
@@ -1,30 +0,0 @@
# Note: right now we don't use go-specific features of travis.
# Later we might automate "go test" etc. (or do it inside a docker container...?)
language: go
go:
# This should match the version in the Dockerfile.
- 1.3.1
# Test against older versions too, just for a little extra retrocompat.
- 1.2
# Let us have pretty experimental Docker-based Travis workers.
# (These spin up much faster than the VM-based ones.)
sudo: false
# Disable the normal go build.
install:
- export DOCKER_BUILDTAGS='exclude_graphdriver_btrfs exclude_graphdriver_devicemapper' # btrfs and devicemapper fail to compile thanks to a couple missing headers (which we can't install thanks to "sudo: false")
- export AUTO_GOPATH=1
before_script:
- env | sort
script:
- hack/make.sh validate-dco
- hack/make.sh validate-gofmt
- ./hack/make.sh dynbinary
- DOCKER_CLIENTONLY=1 ./hack/make.sh dynbinary
# vim:set sw=2 ts=2:
+180 -59
View File
@@ -1,69 +1,87 @@
# This file lists all individuals having contributed content to the repository.
# For how it is generated, see `hack/generate-authors.sh`.
# For how it is generated, see `project/generate-authors.sh`.
Aanand Prasad <aanand.prasad@gmail.com>
Aaron Feng <aaron.feng@gmail.com>
Aaron Huslage <huslage@gmail.com>
Abel Muiño <amuino@gmail.com>
Abhinav Ajgaonkar <abhinav316@gmail.com>
Abin Shahab <ashahab@altiscale.com>
Adam Miller <admiller@redhat.com>
Adam Singer <financeCoding@gmail.com>
Aditya <aditya@netroy.in>
Adrian Mouat <adrian.mouat@gmail.com>
Adrien Folie <folie.adrien@gmail.com>
Ahmet Alp Balkan <ahmetb@microsoft.com>
AJ Bowen <aj@gandi.net>
Al Tobey <al@ooyala.com>
alambike <alambike@gmail.com>
Alan Thompson <cloojure@gmail.com>
Albert Callarisa <shark234@gmail.com>
Albert Zhang <zhgwenming@gmail.com>
Aleksa Sarai <cyphar@cyphar.com>
Alex Gaynor <alex.gaynor@gmail.com>
Alex Warhawk <ax.warhawk@gmail.com>
Alexander Larsson <alexl@redhat.com>
Alexander Shopov <ash@kambanaria.org>
Alexandr Morozov <lk4d4math@gmail.com>
Alexandr Morozov <lk4d4@docker.com>
Alexey Kotlyarov <alexey@infoxchange.net.au>
Alexey Shamrin <shamrin@gmail.com>
Alex Gaynor <alex.gaynor@gmail.com>
Alexis THOMAS <fr.alexisthomas@gmail.com>
Alex Warhawk <ax.warhawk@gmail.com>
almoehi <almoehi@users.noreply.github.com>
Al Tobey <al@ooyala.com>
Álvaro Lázaro <alvaro.lazaro.g@gmail.com>
amangoel <amangoel@gmail.com>
Amit Bakshi <ambakshi@gmail.com>
AnandkumarPatel <anandkumarpatel@gmail.com>
Andre Dublin <81dublin@gmail.com>
Anand Patil <anand.prabhakar.patil@gmail.com>
Andrea Luzzardi <aluzzardi@gmail.com>
Andrea Turli <andrea.turli@gmail.com>
Andreas Köhler <andi5.py@gmx.net>
Andreas Savvides <andreas@editd.com>
Andreas Tiefenthaler <at@an-ti.eu>
Andrea Turli <andrea.turli@gmail.com>
Andre Dublin <81dublin@gmail.com>
Andrew Duckworth <grillopress@gmail.com>
Andrew France <andrew@avito.co.uk>
Andrew Macgregor <andrew.macgregor@agworld.com.au>
Andrew Munsell <andrew@wizardapps.net>
Andrews Medina <andrewsmedina@gmail.com>
Andrew Weiss <andrew.weiss@outlook.com>
Andrew Williams <williams.andrew@gmail.com>
Andrews Medina <andrewsmedina@gmail.com>
Andrey Petrov <andrey.petrov@shazow.net>
Andrey Stolbovsky <andrey.stolbovsky@gmail.com>
Andy Chambers <anchambers@paypal.com>
andy diller <dillera@gmail.com>
Andy Goldstein <agoldste@redhat.com>
Andy Kipp <andy@rstudio.com>
Andy Rothfusz <github@developersupport.net>
Andy Smith <github@anarkystic.com>
Andy Wilson <wilson.andrew.j+github@gmail.com>
Anthony Bishopric <git@anthonybishopric.com>
Anton Löfgren <anton.lofgren@gmail.com>
Anton Nikitin <anton.k.nikitin@gmail.com>
Antony Messerli <amesserl@rackspace.com>
apocas <petermdias@gmail.com>
Arnaud Porterie <icecrime@gmail.com>
ArikaChen <eaglesora@gmail.com>
Arnaud Porterie <arnaud.porterie@docker.com>
Arthur Gautier <baloo@gandi.net>
Asbjørn Enge <asbjorn@hanafjedle.net>
averagehuman <averagehuman@users.noreply.github.com>
Avi Miller <avi.miller@oracle.com>
Barnaby Gray <barnaby@pickle.me.uk>
Barry Allard <barry.allard@gmail.com>
Bartłomiej Piotrowski <b@bpiotrowski.pl>
bdevloed <boris.de.vloed@gmail.com>
Ben Firshman <ben@firshman.co.uk>
Benjamin Atkin <ben@benatkin.com>
Benoit Chesneau <bchesneau@gmail.com>
Ben Sargent <ben@brokendigits.com>
Ben Toews <mastahyeti@gmail.com>
Ben Wiklund <ben@daisyowl.com>
Benjamin Atkin <ben@benatkin.com>
Benoit Chesneau <bchesneau@gmail.com>
Bernerd Schaefer <bj.schaefer@gmail.com>
Bert Goethals <bert@bertg.be>
Bhiraj Butala <abhiraj.butala@gmail.com>
bin liu <liubin0329@users.noreply.github.com>
Blake Geno <blakegeno@gmail.com>
Bouke Haarsma <bouke@webatoom.nl>
Boyd Hemphill <boyd@feedmagnet.com>
Brandon Liu <bdon@bdon.org>
@@ -80,10 +98,13 @@ Brian Shumate <brian@couchbase.com>
Brice Jaglin <bjaglin@teads.tv>
Briehan Lombaard <briehan.lombaard@gmail.com>
Bruno Bigras <bigras.bruno@gmail.com>
Bruno Binet <bruno.binet@gmail.com>
Bruno Renié <brutasse@gmail.com>
Bryan Bess <squarejaw@bsbess.com>
Bryan Matsuo <bryan.matsuo@gmail.com>
Bryan Murphy <bmurphy1976@gmail.com>
Burke Libbey <burke@libbey.me>
Byung Kang <byung.kang.ctr@amrdec.army.mil>
Caleb Spare <cespare@gmail.com>
Calen Pennington <cale@edx.org>
Cameron Boehmer <cameron.boehmer@gmail.com>
@@ -95,56 +116,68 @@ Charlie Lewis <charliel@lab41.org>
Chewey <prosto-chewey@users.noreply.github.com>
Chia-liang Kao <clkao@clkao.org>
Chris Alfonso <calfonso@redhat.com>
Chris Armstrong <chris@opdemand.com>
chrismckinnel <chris.mckinnel@tangentlabs.co.uk>
Chris Snow <chsnow123@gmail.com>
Chris St. Pierre <chris.a.st.pierre@gmail.com>
chrismckinnel <chris.mckinnel@tangentlabs.co.uk>
Christian Berendt <berendt@b1-systems.de>
ChristoperBiscardi <biscarch@sketcht.com>
Christophe Troestler <christophe.Troestler@umons.ac.be>
Christopher Currie <codemonkey+github@gmail.com>
Christopher Rigor <crigor@gmail.com>
Christophe Troestler <christophe.Troestler@umons.ac.be>
Ciro S. Costa <ciro.costa@usp.br>
Clayton Coleman <ccoleman@redhat.com>
Colin Dunklau <colin.dunklau@gmail.com>
Colin Rice <colin@daedrum.net>
Colin Walters <walters@verbum.org>
Cory Forsyth <cory.forsyth@gmail.com>
cpuguy83 <cpuguy83@gmail.com>
cressie176 <github@stephen-cresswell.net>
Cruceru Calin-Cristian <crucerucalincristian@gmail.com>
Daan van Berkel <daan.v.berkel.1980@gmail.com>
Daehyeok.Mun <daehyeok@gmail.com>
Dafydd Crosby <dtcrsby@gmail.com>
Dan Buch <d.buch@modcloth.com>
Dan Cotora <dan@bluevision.ro>
Dan Griffin <dgriffin@peer1.com>
Dan Hirsch <thequux@upstandinghackers.com>
Dan Keder <dan.keder@gmail.com>
Dan McPherson <dmcphers@redhat.com>
Dan Stine <sw@stinemail.com>
Dan Walsh <dwalsh@redhat.com>
Dan Williams <me@deedubs.com>
Daniel, Dao Quang Minh <dqminh89@gmail.com>
Daniel Exner <dex@dragonslave.de>
Daniel Farrell <dfarrell@redhat.com>
Daniel Garcia <daniel@danielgarcia.info>
Daniel Gasienica <daniel@gasienica.ch>
Daniel Menet <membership@sontags.ch>
Daniel Mizyrycki <daniel.mizyrycki@dotcloud.com>
Daniel Norberg <dano@spotify.com>
Daniel Nordberg <dnordberg@gmail.com>
Daniel Robinson <gottagetmac@gmail.com>
Daniel Von Fange <daniel@leancoder.com>
Daniel YC Lin <dlin.tw@gmail.com>
Daniel, Dao Quang Minh <dqminh89@gmail.com>
Dan Keder <dan.keder@gmail.com>
Dan McPherson <dmcphers@redhat.com>
Danny Berger <dpb587@gmail.com>
Danny Yates <danny@codeaholics.org>
Dan Stine <sw@stinemail.com>
Dan Walsh <dwalsh@redhat.com>
Dan Williams <me@deedubs.com>
Darren Coxall <darren@darrencoxall.com>
Darren Shepherd <darren.s.shepherd@gmail.com>
David Anderson <dave@natulte.net>
David Calavera <david.calavera@gmail.com>
David Corking <dmc-source@dcorking.com>
Davide Ceretti <davide.ceretti@hogarthww.com>
David Gageot <david@gageot.net>
David Gebler <davidgebler@gmail.com>
David Mcanulty <github@hellspark.com>
David Pelaez <pelaez89@gmail.com>
David Röthlisberger <david@rothlis.net>
David Sissitka <me@dsissitka.com>
Dawn Chen <dawnchen@google.com>
decadent <decadent@users.noreply.github.com>
Deni Bertovic <deni@kset.org>
Derek <crq@kernel.org>
Derek McGowan <derek@mcgstyle.net>
Deric Crago <deric.crago@gmail.com>
Deshi Xiao <dxiao@redhat.com>
Dinesh Subhraveti <dineshs@altiscale.com>
Djibril Koné <kone.djibril@gmail.com>
dkumor <daniel@dkumor.com>
@@ -154,11 +187,13 @@ Dominik Honnef <dominik@honnef.co>
Don Spaulding <donspauldingii@gmail.com>
Doug Davis <dug@us.ibm.com>
doug tangren <d.tangren@gmail.com>
Dr Nic Williams <drnicwilliams@gmail.com>
dragon788 <dragon788@users.noreply.github.com>
Dražen Lučanin <kermit666@gmail.com>
Dr Nic Williams <drnicwilliams@gmail.com>
Dustin Sallings <dustin@spy.net>
Edmund Wagner <edmund-wagner@web.de>
Eiichi Tsukata <devel@etsukata.com>
Eike Herzbach <eike@herzbach.net>
Eivind Uggedal <eivind@uggedal.com>
Elias Probst <mail@eliasprobst.eu>
Emil Hernvall <emil@quench.at>
@@ -166,17 +201,19 @@ Emily Rose <emily@contactvibe.com>
Eric Hanchrow <ehanchrow@ine.com>
Eric Lee <thenorthsecedes@gmail.com>
Eric Myhre <hash@exultant.us>
Eric Windisch <eric@windisch.us>
Eric Paris <eparis@redhat.com>
Eric Windisch <ewindisch@docker.com>
Erik Hollensbe <github@hollensbe.org>
Erik Inge Bolsø <knan@redpill-linpro.com>
Erik Kristensen <erik@erikkristensen.com>
Erno Hopearuoho <erno.hopearuoho@gmail.com>
Eugene Yakubovich <eugene.yakubovich@coreos.com>
eugenkrizo <eugen.krizo@gmail.com>
evanderkoogh <info@erronis.nl>
Evan Hazlett <ejhazlett@gmail.com>
Evan Krall <krall@yelp.com>
Evan Phoenix <evan@fallingsnow.net>
Evan Wies <evan@neomantra.net>
evanderkoogh <info@erronis.nl>
Eystein Måløy Stenberg <eystein.maloy.stenberg@cfengine.com>
ezbercih <cem.ezberci@gmail.com>
Fabio Falci <fabiofalci@gmail.com>
@@ -186,49 +223,60 @@ Faiz Khan <faizkhan00@gmail.com>
Fareed Dudhia <fareeddudhia@googlemail.com>
Felix Rabe <felix@rabe.io>
Fernando <fermayo@gmail.com>
Filipe Brandenburger <filbranden@google.com>
Flavio Castelli <fcastelli@suse.com>
FLGMwt <ryan.stelly@live.com>
Francisco Carriedo <fcarriedo@gmail.com>
Francisco Souza <f@souza.cc>
Frank Macreery <frank@macreery.com>
Fred Lifton <fred.lifton@docker.com>
Frank Rosquin <frank.rosquin+github@gmail.com>
Frederick F. Kautz IV <fkautz@alumni.cmu.edu>
Frederik Loeffert <frederik@zitrusmedia.de>
Fred Lifton <fred.lifton@docker.com>
Freek Kalter <freek@kalteronline.org>
Gabe Rosenhouse <gabe@missionst.com>
Gabor Nagy <mail@aigeruth.hu>
Gabriel Monroy <gabriel@opdemand.com>
Galen Sampson <galen.sampson@gmail.com>
Gareth Rushgrove <gareth@morethanseven.net>
gautam, prasanna <prasannagautam@gmail.com>
Geoffrey Bachelet <grosfrais@gmail.com>
George Xie <georgexsh@gmail.com>
Gereon Frey <gereon.frey@dynport.de>
German DZ <germ@ndz.com.ar>
Gert van Valkenhoef <g.h.m.van.valkenhoef@rug.nl>
Giuseppe Mazzotta <gdm85@users.noreply.github.com>
Gleb Fotengauer-Malinovskiy <glebfm@altlinux.org>
Gleb M Borisov <borisov.gleb@gmail.com>
Glyn Normington <gnormington@gopivotal.com>
Goffert van Gool <goffert@phusion.nl>
golubbe <ben.golub@dotcloud.com>
Graydon Hoare <graydon@pobox.com>
Greg Thornton <xdissent@me.com>
grunny <mwgrunny@gmail.com>
Guilherme Salgado <gsalgado@gmail.com>
Guillaume Dufour <gdufour.prestataire@voyages-sncf.com>
Guillaume J. Charmes <guillaume.charmes@docker.com>
Gurjeet Singh <gurjeet@singh.im>
Guruprasad <lgp171188@gmail.com>
Hans Rødtang <hansrodtang@gmail.com>
Harald Albers <github@albersweb.de>
Harley Laue <losinggeneration@gmail.com>
Hector Castro <hectcastro@gmail.com>
Henning Sprang <henning.sprang@gmail.com>
Hobofan <goisser94@gmail.com>
Hollie Teal <hollie.teal@docker.com>
Hollie Teal <hollietealok@users.noreply.github.com>
hollietealok <hollie@docker.com>
Hollie Teal <hollie@docker.com>
Huayi Zhang <irachex@gmail.com>
Hugo Duncan <hugo@hugoduncan.org>
Hunter Blanks <hunter@twilio.com>
Hu Tao <hutao@cn.fujitsu.com>
Huu Nguyen <huu@prismskylabs.com>
hyeongkyu.lee <hyeongkyu.lee@navercorp.com>
Ian Babrou <ibobrik@gmail.com>
Ian Bull <irbull@gmail.com>
Ian Main <imain@redhat.com>
Ian Truslove <ian.truslove@gmail.com>
Igor Dolzhikov <bluesriverz@gmail.com>
ILYA Khlopotov <ilya.khlopotov@gmail.com>
inglesp <peter.inglesby@gmail.com>
Isaac Dupree <antispam@idupree.com>
@@ -236,8 +284,8 @@ Isabel Jimenez <contact.isabeljimenez@gmail.com>
Isao Jonas <isao.jonas@gmail.com>
Ivan Fraixedes <ifcdev@gmail.com>
Jack Danger Canty <jackdanger@squareup.com>
Jake Moshenko <jake@devtable.com>
jakedt <jake@devtable.com>
Jake Moshenko <jake@devtable.com>
James Allen <jamesallen0108@gmail.com>
James Carr <james.r.carr@gmail.com>
James DeFelice <james.defelice@ishisystems.com>
@@ -245,6 +293,7 @@ James Harrison Fisher <jameshfisher@gmail.com>
James Kyle <james@jameskyle.org>
James Mills <prologic@shortcircuit.net.au>
James Turnbull <james@lovedthanlost.net>
Jan Keromnes <janx@linux.com>
Jan Pazdziora <jpazdziora@redhat.com>
Jan Toebes <jan@toebes.info>
Jaroslaw Zabiello <hipertracker@gmail.com>
@@ -256,31 +305,35 @@ Jason McVetta <jason.mcvetta@gmail.com>
Jason Plum <jplum@devonit.com>
Jean-Baptiste Barth <jeanbaptiste.barth@gmail.com>
Jean-Baptiste Dalido <jeanbaptiste@appgratis.com>
Jean-Paul Calderone <exarkun@twistedmatrix.com>
Jeff Lindsay <progrium@gmail.com>
Jeff Welch <whatthejeff@gmail.com>
Jeffrey Bolle <jeffreybolle@gmail.com>
Jeff Welch <whatthejeff@gmail.com>
Jeremy Grosser <jeremy@synack.me>
Jérôme Petazzoni <jerome.petazzoni@dotcloud.com>
Jesse Dubay <jesse@thefortytwo.net>
Jessica Frazelle <jess@docker.com>
Jezeniel Zapanta <jpzapanta22@gmail.com>
Jilles Oldenbeuving <ojilles@gmail.com>
Jim Alateras <jima@comware.com.au>
Jim Perrin <jperrin@centos.org>
Jimmy Cuadra <jimmy@jimmycuadra.com>
Jim Perrin <jperrin@centos.org>
Jiří Župka <jzupka@redhat.com>
Joe Beda <joe.github@bedafamily.com>
Joe Ferguson <joe@infosiftr.com>
Joel Handwell <joelhandwell@gmail.com>
Joe Shaw <joe@joeshaw.org>
Joe Van Dyk <joe@tanga.com>
Joel Handwell <joelhandwell@gmail.com>
Joffrey F <joffrey@docker.com>
Johan Euphrosine <proppy@google.com>
Johan Rydberg <johan.rydberg@gmail.com>
Johannes 'fish' Ziemke <github@freigeist.org>
Johan Rydberg <johan.rydberg@gmail.com>
John Costa <john.costa@gmail.com>
John Feminella <jxf@jxf.me>
John Gardiner Myers <jgmyers@proofpoint.com>
John Gossman <johngos@microsoft.com>
John OBrien III <jobrieniii@yahoo.com>
John Warwick <jwarwick@gmail.com>
Jon Wedaman <jweede@gmail.com>
Jonas Pfenniger <jonas@pfenniger.name>
Jonathan Boulle <jonathanboulle@gmail.com>
Jonathan Camp <jonathan@irondojo.com>
@@ -288,22 +341,25 @@ Jonathan McCrohan <jmccrohan@gmail.com>
Jonathan Mueller <j.mueller@apoveda.ch>
Jonathan Pares <jonathanpa@users.noreply.github.com>
Jonathan Rudenberg <jonathan@titanous.com>
Jon Wedaman <jweede@gmail.com>
Joost Cassee <joost@cassee.net>
Jordan Arentsen <blissdev@gmail.com>
Jordan Sissel <jls@semicomplete.com>
Joseph Anthony Pasquale Holsten <joseph@josephholsten.com>
Joseph Hager <ajhager@gmail.com>
Josh <jokajak@gmail.com>
Josh Hawn <josh.hawn@docker.com>
Josh <jokajak@gmail.com>
Josh Poimboeuf <jpoimboe@redhat.com>
Josiah Kiehl <jkiehl@riotgames.com>
JP <jpellerin@leapfrogonline.com>
Julian Taylor <jtaylor.debian@googlemail.com>
Julien Barbier <write0@gmail.com>
Julien Bordellier <julienbordellier@gmail.com>
Julien Dubois <julien.dubois@gmail.com>
Justin Force <justin.force@gmail.com>
Justin Plock <jplock@users.noreply.github.com>
Justin Simonelis <justin.p.simonelis@gmail.com>
Jérôme Petazzoni <jerome.petazzoni@dotcloud.com>
Jyrki Puttonen <jyrkiput@gmail.com>
Karan Lyons <karan@karanlyons.com>
Karl Grzeszczak <karlgrz@gmail.com>
Kato Kazuyoshi <kato.kazuyoshi@gmail.com>
@@ -311,57 +367,68 @@ Kawsar Saiyeed <kawsar.saiyeed@projiris.com>
Keli Hu <dev@keli.hu>
Ken Cochrane <kencochrane@gmail.com>
Ken ICHIKAWA <ichikawa.ken@jp.fujitsu.com>
Kevin "qwazerty" Houdebert <kevin.houdebert@gmail.com>
Kevin Clark <kevin.clark@gmail.com>
Kevin J. Lynagh <kevin@keminglabs.com>
Kevin Menard <kevin@nirvdrum.com>
Kevin "qwazerty" Houdebert <kevin.houdebert@gmail.com>
Kevin Wallace <kevin@pentabarf.net>
Keyvan Fatehi <keyvanfatehi@gmail.com>
kies <lleelm@gmail.com>
Kim BKC Carlbacker <kim.carlbacker@gmail.com>
kim0 <email.ahmedkamal@googlemail.com>
Kim BKC Carlbacker <kim.carlbacker@gmail.com>
Kimbro Staken <kstaken@kstaken.com>
Kiran Gangadharan <kiran.daredevil@gmail.com>
knappe <tyler.knappe@gmail.com>
Kohei Tsuruta <coheyxyz@gmail.com>
Konrad Kleine <konrad.wilhelm.kleine@gmail.com>
Konstantin Pelykh <kpelykh@zettaset.com>
krrg <krrgithub@gmail.com>
Kyle Conroy <kyle.j.conroy@gmail.com>
kyu <leehk1227@gmail.com>
Lachlan Coote <lcoote@vmware.com>
Lajos Papp <lajos.papp@sequenceiq.com>
Lakshan Perera <lakshan@laktek.com>
lalyos <lalyos@yahoo.com>
Lance Chen <cyen0312@gmail.com>
Lars R. Damerow <lars@pixar.com>
Laurie Voss <github@seldo.com>
leeplay <hyeongkyu.lee@navercorp.com>
Lei Jitang <leijitang@huawei.com>
Len Weincier <len@cloudafrica.net>
Leszek Kowalski <github@leszekkowalski.pl>
Levi Gross <levi@levigross.com>
Lewis Peckover <lew+github@lew.io>
Liang-Chi Hsieh <viirya@gmail.com>
limsy <seongyeol37@gmail.com>
Lokesh Mandvekar <lsm5@fedoraproject.org>
Louis Opter <kalessin@kalessin.fr>
lukaspustina <lukas.pustina@centerdevice.com>
lukemarsden <luke@digital-crocus.com>
Madhu Venugopal <madhu@socketplane.io>
Mahesh Tiyyagura <tmahesh@gmail.com>
Malte Janduda <mail@janduda.net>
Manfred Zabarauskas <manfredas@zabarauskas.com>
Manuel Meurer <manuel@krautcomputing.com>
Manuel Woelker <github@manuel.woelker.org>
Marc Abramowitz <marc@marc-abramowitz.com>
Marc Kuo <kuomarc2@gmail.com>
Marc Tamsky <mtamsky@gmail.com>
Marco Hennings <marco.hennings@freiheit.com>
Marc Tamsky <mtamsky@gmail.com>
Marcus Farkas <toothlessgear@finitebox.com>
Marcus Ramberg <marcus@nordaaker.com>
marcuslinke <marcus.linke@gmx.de>
Marcus Ramberg <marcus@nordaaker.com>
Marek Goldmann <marek.goldmann@gmail.com>
Marius Voila <marius.voila@gmail.com>
Mark Allen <mrallen1@yahoo.com>
Mark McGranaghan <mmcgrana@gmail.com>
Marko Mikulicic <mmikulicic@gmail.com>
Marko Tibold <marko@tibold.nl>
Markus Fix <lispmeister@gmail.com>
Martijn van Oosterhout <kleptog@svana.org>
Martin Redmond <martin@tinychat.com>
Mason Malone <mason.malone@gmail.com>
Mateusz Sulima <sulima.mateusz@gmail.com>
Mathias Monnerville <mathias@monnerville.com>
Mathieu Le Marec - Pasquet <kiorky@cryptelium.net>
Matt Apperson <me@mattapperson.com>
Matt Bachmann <bachmann.matt@gmail.com>
@@ -372,17 +439,24 @@ Matthias Klumpp <matthias@tenstral.net>
Matthias Kühnle <git.nivoc@neverbox.com>
mattymo <raytrac3r@gmail.com>
mattyw <mattyw@me.com>
Max Shytikov <mshytikov@gmail.com>
Maxim Treskin <zerthurd@gmail.com>
Maxime Petazzoni <max@signalfuse.com>
Maxim Treskin <zerthurd@gmail.com>
Max Shytikov <mshytikov@gmail.com>
Médi-Rémi Hashim <medimatrix@users.noreply.github.com>
meejah <meejah@meejah.ca>
Mengdi Gao <usrgdd@gmail.com>
Mert Yazıcıoğlu <merty@users.noreply.github.com>
Michael Brown <michael@netdirect.ca>
Michael Crosby <michael@docker.com>
Michael Gorsuch <gorsuch@github.com>
Michael Hudson-Doyle <michael.hudson@linaro.org>
Michael Neale <michael.neale@gmail.com>
Michael Prokop <github@michael-prokop.at>
Michael Stapelberg <michael+gh@stapelberg.de>
Michaël Pailloncy <mpapo.dev@gmail.com>
Michael Prokop <github@michael-prokop.at>
Michael Scharf <github@scharf.gr>
Michael Stapelberg <michael+gh@stapelberg.de>
Michael Thies <michaelthies78@gmail.com>
Michal Jemala <michal.jemala@gmail.com>
Michiel@unhosted <michiel@unhosted.org>
Miguel Angel Fernández <elmendalerenda@gmail.com>
Mike Chelen <michael.chelen@gmail.com>
@@ -395,32 +469,40 @@ Mohit Soni <mosoni@ebay.com>
Morgante Pell <morgante.pell@morgante.net>
Morten Siebuhr <sbhr@sbhr.dk>
Mrunal Patel <mrunalp@gmail.com>
mschurenko <matt.schurenko@gmail.com>
Mustafa Akın <mustafa91@gmail.com>
Nan Monnand Deng <monnand@gmail.com>
Naoki Orii <norii@cs.cmu.edu>
Nate Jones <nate@endot.org>
Nathan Hsieh <hsieh.nathan@gmail.com>
Nathan Kleyn <nathan@nathankleyn.com>
Nathan LeClaire <nathan.leclaire@docker.com>
Nelson Chen <crazysim@gmail.com>
Niall O'Higgins <niallo@unworkable.org>
Nicholas E. Rabenau <nerab@gmx.at>
Nick Payne <nick@kurai.co.uk>
Nick Stenning <nick.stenning@digital.cabinet-office.gov.uk>
Nick Stinemates <nick@stinemates.org>
Nicolas De loof <nicolas.deloof@gmail.com>
Nicolas Dudebout <nicolas.dudebout@gatech.edu>
Nicolas Goy <kuon@goyman.com>
Nicolas Kaiser <nikai@nikai.net>
NikolaMandic <mn080202@gmail.com>
noducks <onemannoducks@gmail.com>
Nolan Darilek <nolan@thewordnerd.info>
O.S. Tezer <ostezer@gmail.com>
nzwsch <hi@nzwsch.com>
OddBloke <daniel@daniel-watkins.co.uk>
odk- <github@odkurzacz.org>
Oguz Bilgic <fisyonet@gmail.com>
Oh Jinkyun <tintypemolly@gmail.com>
Ole Reifschneider <mail@ole-reifschneider.de>
Olivier Gambier <dmp42@users.noreply.github.com>
O.S. Tezer <ostezer@gmail.com>
pandrew <letters@paulnotcom.se>
Pascal Borreli <pascal@borreli.com>
Pascal Hartig <phartig@rdrei.net>
Patrick Hemmer <patrick.hemmer@gmail.com>
pattichen <craftsbear@gmail.com>
Paul <paul9869@gmail.com>
Paul Annesley <paul@annesley.cc>
Paul Bowsher <pbowsher@globalpersonals.co.uk>
Paul Hammond <paul@paulhammond.org>
@@ -428,25 +510,39 @@ Paul Jimenez <pj@place.org>
Paul Lietar <paul@lietar.net>
Paul Morie <pmorie@gmail.com>
Paul Nasrat <pnasrat@gmail.com>
Paul <paul9869@gmail.com>
Paul Weaver <pauweave@cisco.com>
Pavlos Ratis <dastergon@gentoo.org>
Peter Bourgon <peter@bourgon.org>
Peter Braden <peterbraden@peterbraden.co.uk>
Peter Ericson <pdericson@gmail.com>
Peter Salvatore <peter@psftw.com>
Peter Waller <p@pwaller.net>
Phil <underscorephil@gmail.com>
Phil Spitler <pspitler@gmail.com>
Phil Estes <estesp@linux.vnet.ibm.com>
Philipp Weissensteiner <mail@philippweissensteiner.com>
Phillip Alexander <git@phillipalexander.io>
Phil Spitler <pspitler@gmail.com>
Phil <underscorephil@gmail.com>
Piergiuliano Bossi <pgbossi@gmail.com>
Pierre-Alain RIVIERE <pariviere@ippon.fr>
Pierre <py@poujade.org>
Piotr Bogdan <ppbogdan@gmail.com>
pixelistik <pixelistik@users.noreply.github.com>
Prasanna Gautam <prasannagautam@gmail.com>
Przemek Hejman <przemyslaw.hejman@gmail.com>
pysqz <randomq@126.com>
Qiang Huang <h.huangqiang@huawei.com>
Quentin Brossard <qbrossard@gmail.com>
r0n22 <cameron.regan@gmail.com>
Rafal Jeczalik <rjeczalik@gmail.com>
Rafe Colton <rafael.colton@gmail.com>
Rajat Pandit <rp@rajatpandit.com>
Rajdeep Dua <dua_rajdeep@yahoo.com>
Ralph Bean <rbean@redhat.com>
Ramkumar Ramachandra <artagnon@gmail.com>
Ramon van Alteren <ramon@vanalteren.nl>
Recursive Madman <recursive.madman@gmx.de>
Remi Rampin <remirampin@gmail.com>
Renato Riccieri Santos Zannon <renato.riccieri@gmail.com>
rgstephens <greg@udon.org>
Rhys Hiltner <rhys@twitch.tv>
@@ -455,6 +551,7 @@ Richo Healey <richo@psych0tik.net>
Rick Bradley <rick@users.noreply.github.com>
Rick van de Loo <rickvandeloo@gmail.com>
Robert Bachmann <rb@robertbachmann.at>
Robert Bittle <guywithnose@gmail.com>
Robert Obryk <robryk@gmail.com>
Roberto G. Hashioka <roberto.hashioka@docker.com>
Robin Speekenbrink <robin@kingsquare.nl>
@@ -470,25 +567,30 @@ Rovanion Luckey <rovanion.luckey@gmail.com>
Rudolph Gottesheim <r.gottesheim@loot.at>
Ryan Anderson <anderson.ryanc@gmail.com>
Ryan Aslett <github@mixologic.com>
Ryan Detzel <ryan.detzel@gmail.com>
Ryan Fowler <rwfowler@gmail.com>
Ryan O'Donnell <odonnellryanc@gmail.com>
Ryan Seto <ryanseto@yak.net>
Ryan Thomas <rthomas@atlassian.com>
s-ko <aleks@s-ko.net>
Sam Alba <sam.alba@gmail.com>
Sam Bailey <cyprix@cyprix.com.au>
Sam J Sharpe <sam.sharpe@digital.cabinet-office.gov.uk>
Sam Reis <sreis@atlassian.com>
Sam Rijs <srijs@airpost.net>
Samuel Andaya <samuel@andaya.net>
Samuel PHAN <samuel-phan@users.noreply.github.com>
satoru <satorulogic@gmail.com>
Satoshi Amemiya <satoshi_amemiya@voyagegroup.com>
Scott Bessler <scottbessler@gmail.com>
Scott Collier <emailscottcollier@gmail.com>
Scott Johnston <scott@docker.com>
Scott Walls <sawalls@umich.edu>
Sean Cronin <seancron@gmail.com>
Sean P. Kane <skane@newrelic.com>
Sebastiaan van Stijn <github@gone.nl>
Sebastiaan van Stijn <thaJeztah@users.noreply.github.com>
Sébastien Luttringer <seblu@seblu.net>
Sébastien <sebastien@yoozio.com>
Sébastien Stormacq <sebsto@users.noreply.github.com>
Senthil Kumar Selvaraj <senthil.thecoder@gmail.com>
SeongJae Park <sj38.park@gmail.com>
Shane Canon <scanon@lbl.gov>
@@ -496,28 +598,30 @@ shaunol <shaunol@gmail.com>
Shawn Landden <shawn@churchofgit.com>
Shawn Siefkas <shawn.siefkas@meredith.com>
Shih-Yuan Lee <fourdollars@gmail.com>
shuai-z <zs.broccoli@gmail.com>
Silas Sewell <silas@sewell.org>
Simon Taranto <simon.taranto@gmail.com>
Sindhu S <sindhus@live.in>
Sjoerd Langkemper <sjoerd-github@linuxonly.nl>
s-ko <aleks@s-ko.net>
Solomon Hykes <solomon@docker.com>
Song Gao <song@gao.io>
Soulou <leo@unbekandt.eu>
soulshake <amy@gandi.net>
Sridatta Thatipamala <sthatipamala@gmail.com>
Sridhar Ratnakumar <sridharr@activestate.com>
Srini Brahmaroutu <sbrahma@us.ibm.com>
Steeve Morin <steeve.morin@gmail.com>
Stefan Praszalowicz <stefan@greplin.com>
Stephen Crosby <stevecrozz@gmail.com>
Steven Burgess <steven.a.burgess@hotmail.com>
Steven Merrill <steven.merrill@gmail.com>
sudosurootdev <sudosurootdev@gmail.com>
Sven Dowideit <svendowideit@home.org.au>
Sven Dowideit <SvenDowideit@home.org.au>
Sylvain Bellemare <sylvain.bellemare@ezeep.com>
Sébastien <sebastien@yoozio.com>
Sébastien Luttringer <seblu@seblu.net>
Sébastien Stormacq <sebsto@users.noreply.github.com>
tang0th <tang0th@gmx.com>
Tatsuki Sugiura <sugi@nemui.org>
Ted M. Young <tedyoung@gmail.com>
Tehmasp Chaudhri <tehmasp@gmail.com>
Thatcher Peskens <thatcher@docker.com>
Thermionix <bond711@gmail.com>
@@ -526,25 +630,32 @@ Thomas Bikeev <thomas.bikeev@mac.com>
Thomas Frössman <thomasf@jossystem.se>
Thomas Hansen <thomas.hansen@gmail.com>
Thomas LEVEIL <thomasleveil@gmail.com>
Thomas Orozco <thomas@orozco.fr>
Thomas Schroeter <thomas@cliqz.com>
Tianon Gravi <admwiggin@gmail.com>
Tibor Vass <teabee89@gmail.com>
Tim Bosse <taim@bosboot.org>
Tim Ruffles <oi@truffles.me.uk>
Tim Ruffles <timruffles@googlemail.com>
Tim Terhorst <mynamewastaken+git@gmail.com>
Tim Hockin <thockin@google.com>
Timothy Hobbs <timothyhobbs@seznam.cz>
Tim Ruffles <oi@truffles.me.uk>
Tim Smith <timbot@google.com>
Tim Terhorst <mynamewastaken+git@gmail.com>
tjmehta <tj@init.me>
tjwebb123 <tjwebb123@users.noreply.github.com>
tobe <tobegit3hub@gmail.com>
Tobias Bieniek <Tobias.Bieniek@gmx.de>
Tobias Gesellchen <tobias@gesellix.de>
Tobias Schmidt <ts@soundcloud.com>
Tobias Schwab <tobias.schwab@dynport.de>
Todd Lunter <tlunter@gmail.com>
Tomasz Lipinski <tlipinski@users.noreply.github.com>
Tom Fotherby <tom+github@peopleperhour.com>
Tom Hulihan <hulihan.tom159@gmail.com>
Tom Maaswinkel <tom.maaswinkel@12wiki.eu>
Tommaso Visconti <tommaso.visconti@gmail.com>
Tonis Tiigi <tonistiigi@gmail.com>
Tony Daws <tony@daws.ca>
Torstein Husebø <torstein@huseboe.net>
tpng <benny.tpng@gmail.com>
Travis Cline <travis.cline@gmail.com>
Trent Ogren <tedwardo2@gmail.com>
@@ -560,33 +671,43 @@ Victor Vieux <victor.vieux@docker.com>
Viktor Vojnovski <viktor.vojnovski@amadeus.com>
Vincent Batts <vbatts@redhat.com>
Vincent Bernat <bernat@luffy.cx>
Vincent Bernat <Vincent.Bernat@exoscale.ch>
Vincent Giersch <vincent.giersch@ovh.net>
Vincent Mayers <vincent.mayers@inbloom.org>
Vincent Woo <me@vincentwoo.com>
Vinod Kulkarni <vinod.kulkarni@gmail.com>
Vishal Doshi <vishal.doshi@gmail.com>
Vishnu Kannan <vishnuk@google.com>
Vitor Monteiro <vmrmonteiro@gmail.com>
Vivek Agarwal <me@vivek.im>
Vivek Dasgupta <vdasgupt@redhat.com>
Vivek Goyal <vgoyal@redhat.com>
Vladimir Bulyga <xx@ccxx.cc>
Vladimir Kirillov <proger@wilab.org.ua>
Vladimir Rutsky <altsysrq@gmail.com>
Vojtech Vitek (V-Teq) <vvitek@redhat.com>
waitingkuo <waitingkuo0527@gmail.com>
Walter Leibbrandt <github@wrl.co.za>
Walter Stanish <walter@pratyeka.org>
Ward Vandewege <ward@jhvc.com>
WarheadsSE <max@warheads.net>
Wes Morgan <cap10morgan@gmail.com>
Will Dietz <w@wdtz.org>
Will Rouesnel <w.rouesnel@gmail.com>
Will Weaver <monkey@buildingbananas.com>
William Delanoue <william.delanoue@gmail.com>
William Henry <whenry@redhat.com>
William Riancho <wr.wllm@gmail.com>
William Thurston <thurstw@amazon.com>
Will Rouesnel <w.rouesnel@gmail.com>
Will Weaver <monkey@buildingbananas.com>
wyc <wayne@neverfear.org>
Xiuming Chen <cc@cxm.cc>
xuzhaokui <cynicholas@gmail.com>
Yang Bai <hamo.by@gmail.com>
Yasunori Mahata <nori@mahata.net>
Yohei Ueda <yohei@jp.ibm.com>
Yurii Rashkovskii <yrashk@gmail.com>
Zac Dover <zdover@redhat.com>
Zach Borboa <zachborboa@gmail.com>
Zain Memon <zain@inzain.net>
Zaiste! <oh@zaiste.net>
Zane DeGraffenried <zane.deg@gmail.com>
@@ -594,4 +715,4 @@ Zilin Du <zilin.du@gmail.com>
zimbatm <zimbatm@zimbatm.com>
Zoltan Tombol <zoltan.tombol@gmail.com>
zqh <zqhxuyuan@gmail.com>
Álvaro Lázaro <alvaro.lazaro.g@gmail.com>
尹吉峰 <jifeng.yin@gmail.com>
+81
View File
@@ -1,5 +1,86 @@
# Changelog
## 1.4.1 (2014-12-15)
#### Runtime
- Fix issue with volumes-from and bind mounts not being honored after create
## 1.4.0 (2014-12-11)
#### Notable Features since 1.3.0
+ Set key=value labels to the daemon (displayed in `docker info`), applied with
new `-label` daemon flag
+ Add support for `ENV` in Dockerfile of the form:
`ENV name=value name2=value2...`
+ New Overlayfs Storage Driver
+ `docker info` now returns an `ID` and `Name` field
+ Filter events by event name, container, or image
+ `docker cp` now supports copying from container volumes
- Fixed `docker tag`, so it honors `--force` when overriding a tag for existing
image.
## 1.3.3 (2014-12-11)
#### Security
- Fix path traversal vulnerability in processing of absolute symbolic links (CVE-2014-9356)
- Fix decompression of xz image archives, preventing privilege escalation (CVE-2014-9357)
- Validate image IDs (CVE-2014-9358)
#### Runtime
- Fix an issue when image archives are being read slowly
#### Client
- Fix a regression related to stdin redirection
- Fix a regression with `docker cp` when destination is the current directory
## 1.3.2 (2014-11-20)
#### Security
- Fix tar breakout vulnerability
* Extractions are now sandboxed chroot
- Security options are no longer committed to images
#### Runtime
- Fix deadlock in `docker ps -f exited=1`
- Fix a bug when `--volumes-from` references a container that failed to start
#### Registry
+ `--insecure-registry` now accepts CIDR notation such as 10.1.0.0/16
* Private registries whose IPs fall in the 127.0.0.0/8 range do no need the `--insecure-registry` flag
- Skip the experimental registry v2 API when mirroring is enabled
## 1.3.1 (2014-10-28)
#### Security
* Prevent fallback to SSL protocols < TLS 1.0 for client, daemon and registry
+ Secure HTTPS connection to registries with certificate verification and without HTTP fallback unless `--insecure-registry` is specified
#### Runtime
- Fix issue where volumes would not be shared
#### Client
- Fix issue with `--iptables=false` not automatically setting `--ip-masq=false`
- Fix docker run output to non-TTY stdout
#### Builder
- Fix escaping `$` for environment variables
- Fix issue with lowercase `onbuild` Dockerfile instruction
- Restrict environment variable expansion to `ENV`, `ADD`, `COPY`, `WORKDIR`, `EXPOSE`, `VOLUME` and `USER`
## 1.3.0 (2014-10-14)
#### Notable features since 1.2.0
+ Docker `exec` allows you to run additional processes inside existing containers
+ Docker `create` gives you the ability to create a container via the CLI without executing a process
+ `--security-opts` options to allow user to customize container labels and apparmor profiles
+ Docker `ps` filters
- Wildcard support to COPY/ADD
+ Move production URLs to get.docker.com from get.docker.io
+ Allocate IP address on the bridge inside a valid CIDR
+ Use drone.io for PR and CI testing
+ Ability to setup an official registry mirror
+ Ability to save multiple images with docker `save`
## 1.2.0 (2014-08-20)
#### Runtime
+23 -10
View File
@@ -6,27 +6,36 @@ feels wrong or incomplete.
## Topics
* [Security Reports](#security-reports)
* [Reporting Security Issues](#reporting-security-issues)
* [Design and Cleanup Proposals](#design-and-cleanup-proposals)
* [Reporting Issues](#reporting-issues)
* [Build Environment](#build-environment)
* [Contribution Guidelines](#contribution-guidelines)
* [Community Guidelines](#docker-community-guidelines)
## Security Reports
## Reporting Security Issues
Please **DO NOT** file an issue for security related issues. Please send your
reports to [security@docker.com](mailto:security@docker.com) instead.
The Docker maintainers take security very seriously. If you discover a security issue,
please bring it to their attention right away!
Please send your report privately to [security@docker.com](mailto:security@docker.com),
please **DO NOT** file a public issue.
Security reports are greatly appreciated and we will publicly thank you for it. We also
like to send gifts - if you're into Docker shwag make sure to let us know :)
We currently do not offer a paid security bounty program, but are not ruling it out in
the future.
## Design and Cleanup Proposals
When considering a design proposal, we are looking for:
* A description of the problem this design proposal solves
* An issue -- not a pull request -- that describes what you will take action on
* A pull request, not an issue, that modifies the documentation describing
the feature you are proposing, adding new documentation if necessary.
* Please prefix your issue with `Proposal:` in the title
* Please review [the existing Proposals](https://github.com/dotcloud/docker/issues?direction=asc&labels=Proposal&page=1&sort=created&state=open)
before reporting a new issue. You can always pair with someone if you both
* Please review [the existing Proposals](https://github.com/docker/docker/pulls?q=is%3Aopen+is%3Apr+label%3AProposal)
before reporting a new one. You can always pair with someone if you both
have the same idea.
When considering a cleanup task, we are looking for:
@@ -39,6 +48,10 @@ When considering a cleanup task, we are looking for:
## Reporting Issues
A great way to contribute to the project is to send a detailed report when you
encounter an issue. We always appreciate a well-written, thorough bug report,
and will thank you for it!
When reporting [issues](https://github.com/docker/docker/issues) on
GitHub please include your host OS (Ubuntu 12.04, Fedora 19, etc).
Please include:
@@ -62,7 +75,7 @@ docs](http://docs.docker.com/contributing/devenvironment/).
### Pull requests are always welcome
We are always thrilled to receive pull requests, and do our best to
process them as fast as possible. Not sure if that typo is worth a pull
process them as quickly as possible. Not sure if that typo is worth a pull
request? Do it! We will appreciate it.
If your pull request is not accepted on the first try, don't be
@@ -159,7 +172,7 @@ component affected. For example, if a change affects `docs/` and `registry/`, it
needs an absolute majority from the maintainers of `docs/` AND, separately, an
absolute majority of the maintainers of `registry/`.
For more details see [MAINTAINERS.md](hack/MAINTAINERS.md)
For more details see [MAINTAINERS.md](project/MAINTAINERS.md)
### Sign your work
@@ -310,7 +323,7 @@ do need a fair way to deal with people who are making our community suck.
will be addressed immediately and are not subject to 3 strikes or
forgiveness.
* Contact james@docker.com to report abuse or appeal violations. In the case of
* Contact abuse@docker.com to report abuse or appeal violations. In the case of
appeals, we know that mistakes happen, and we'll work with you to come up with
a fair solution if there has been a misunderstanding.
+12 -7
View File
@@ -23,7 +23,6 @@
# the case. Therefore, you don't have to disable it anymore.
#
docker-version 0.6.1
FROM ubuntu:14.04
MAINTAINER Tianon Gravi <admwiggin@gmail.com> (@tianon)
@@ -59,7 +58,7 @@ RUN cd /usr/local/lvm2 && ./configure --enable-static_link && make device-mapper
# see https://git.fedorahosted.org/cgit/lvm2.git/tree/INSTALL
# Install Go
RUN curl -sSL https://golang.org/dl/go1.3.1.src.tar.gz | tar -v -C /usr/local -xz
RUN curl -sSL https://golang.org/dl/go1.3.3.src.tar.gz | tar -v -C /usr/local -xz
ENV PATH /usr/local/go/bin:$PATH
ENV GOPATH /go:/go/src/github.com/docker/docker/vendor
ENV PATH /go/bin:$PATH
@@ -69,16 +68,19 @@ RUN cd /usr/local/go/src && ./make.bash --no-clean 2>&1
ENV DOCKER_CROSSPLATFORMS \
linux/386 linux/arm \
darwin/amd64 darwin/386 \
freebsd/amd64 freebsd/386 freebsd/arm
freebsd/amd64 freebsd/386 freebsd/arm
# windows is experimental for now
# windows/amd64 windows/386
# (set an explicit GOARM of 5 for maximum compatibility)
ENV GOARM 5
RUN cd /usr/local/go/src && bash -xc 'for platform in $DOCKER_CROSSPLATFORMS; do GOOS=${platform%/*} GOARCH=${platform##*/} ./make.bash --no-clean 2>&1; done'
# Grab Go's cover tool for dead-simple code coverage testing
RUN go get code.google.com/p/go.tools/cmd/cover
RUN go get golang.org/x/tools/cmd/cover
# TODO replace FPM with some very minimal debhelper stuff
RUN gem install --no-rdoc --no-ri fpm --version 1.0.2
RUN gem install --no-rdoc --no-ri fpm --version 1.3.2
# Install man page generator
RUN mkdir -p /go/src/github.com/cpuguy83 \
@@ -89,8 +91,11 @@ RUN mkdir -p /go/src/github.com/cpuguy83 \
# Get the "busybox" image source so we can build locally instead of pulling
RUN git clone -b buildroot-2014.02 https://github.com/jpetazzo/docker-busybox.git /docker-busybox
# Get the "cirros" image source so we can import it instead of fetching it during tests
RUN curl -sSL -o /cirros.tar.gz https://github.com/ewindisch/docker-cirros/raw/1cded459668e8b9dbf4ef976c94c05add9bbd8e9/cirros-0.3.0-x86_64-lxc.tar.gz
# Setup s3cmd config
RUN /bin/echo -e '[default]\naccess_key=$AWS_ACCESS_KEY\nsecret_key=$AWS_SECRET_KEY' > /.s3cfg
RUN /bin/echo -e '[default]\naccess_key=$AWS_ACCESS_KEY\nsecret_key=$AWS_SECRET_KEY' > $HOME/.s3cfg
# Set user.email so crosbymichael's in-container merge commits go smoothly
RUN git config --global user.email 'docker-dummy@example.com'
@@ -101,7 +106,7 @@ RUN useradd --create-home --gid docker unprivilegeduser
VOLUME /var/lib/docker
WORKDIR /go/src/github.com/docker/docker
ENV DOCKER_BUILDTAGS apparmor selinux
ENV DOCKER_BUILDTAGS apparmor selinux btrfs_noversion
# Wrap all commands in the "docker-in-docker" script to allow nested containers
ENTRYPOINT ["hack/dind"]
+25 -6
View File
@@ -1,20 +1,39 @@
.PHONY: all binary build cross default docs docs-build docs-shell shell test test-unit test-integration test-integration-cli validate
# env vars passed through directly to Docker's build scripts
# to allow things like `make DOCKER_CLIENTONLY=1 binary` easily
# `docs/sources/contributing/devenvironment.md ` and `project/PACKAGERS.md` have some limited documentation of some of these
DOCKER_ENVS := \
-e BUILDFLAGS \
-e DOCKER_CLIENTONLY \
-e DOCKER_EXECDRIVER \
-e DOCKER_GRAPHDRIVER \
-e TESTDIRS \
-e TESTFLAGS \
-e TIMEOUT
# note: we _cannot_ add "-e DOCKER_BUILDTAGS" here because even if it's unset in the shell, that would shadow the "ENV DOCKER_BUILDTAGS" set in our Dockerfile, which is very important for our official builds
# to allow `make BINDDIR=. shell` or `make BINDDIR= test`
# (default to no bind mount if DOCKER_HOST is set)
BINDDIR := $(if $(DOCKER_HOST),,bundles)
DOCKER_MOUNT := $(if $(BINDDIR),-v "$(CURDIR)/$(BINDDIR):/go/src/github.com/docker/docker/$(BINDDIR)")
# to allow `make DOCSDIR=docs docs-shell` (to create a bind mount in docs)
DOCS_MOUNT := $(if $(DOCSDIR),-v $(CURDIR)/$(DOCSDIR):/$(DOCSDIR))
# to allow `make DOCSPORT=9000 docs`
DOCSPORT := 8000
GIT_BRANCH := $(shell git rev-parse --abbrev-ref HEAD 2>/dev/null)
GITCOMMIT := $(shell git rev-parse --short HEAD 2>/dev/null)
DOCKER_IMAGE := docker$(if $(GIT_BRANCH),:$(GIT_BRANCH))
DOCKER_DOCS_IMAGE := docker-docs$(if $(GIT_BRANCH),:$(GIT_BRANCH))
DOCKER_MOUNT := $(if $(BINDDIR),-v "$(CURDIR)/$(BINDDIR):/go/src/github.com/docker/docker/$(BINDDIR)")
DOCKER_RUN_DOCKER := docker run --rm -it --privileged -e TESTFLAGS -e TESTDIRS -e DOCKER_GRAPHDRIVER -e DOCKER_EXECDRIVER $(DOCKER_MOUNT) "$(DOCKER_IMAGE)"
# to allow `make DOCSDIR=docs docs-shell`
DOCKER_RUN_DOCS := docker run --rm -it $(if $(DOCSDIR),-v $(CURDIR)/$(DOCSDIR):/$(DOCSDIR)) -e AWS_S3_BUCKET
DOCKER_RUN_DOCKER := docker run --rm -it --privileged $(DOCKER_ENVS) $(DOCKER_MOUNT) "$(DOCKER_IMAGE)"
DOCKER_RUN_DOCS := docker run --rm -it $(DOCS_MOUNT) -e AWS_S3_BUCKET
# for some docs workarounds (see below in "docs-build" target)
GITCOMMIT := $(shell git rev-parse --short HEAD 2>/dev/null)
default: binary
@@ -34,7 +53,7 @@ docs-shell: docs-build
$(DOCKER_RUN_DOCS) -p $(if $(DOCSPORT),$(DOCSPORT):)8000 "$(DOCKER_DOCS_IMAGE)" bash
docs-release: docs-build
$(DOCKER_RUN_DOCS) -e BUILD_ROOT "$(DOCKER_DOCS_IMAGE)" ./release.sh
$(DOCKER_RUN_DOCS) -e OPTIONS -e BUILD_ROOT "$(DOCKER_DOCS_IMAGE)" ./release.sh
test: build
$(DOCKER_RUN_DOCKER) hack/make.sh binary cross test-unit test-integration test-integration-cli
+8 -5
View File
@@ -178,13 +178,14 @@ Contributing to Docker
======================
[![GoDoc](https://godoc.org/github.com/docker/docker?status.png)](https://godoc.org/github.com/docker/docker)
[![Travis](https://travis-ci.org/docker/docker.svg?branch=master)](https://travis-ci.org/docker/docker)
[![Build Status](https://ci.dockerproject.com/github.com/docker/docker/status.svg?branch=master)](https://ci.dockerproject.com/github.com/docker/docker)
Want to hack on Docker? Awesome! There are instructions to get you
started [here](CONTRIBUTING.md).
started [here](CONTRIBUTING.md). If you'd like to contribute to the
documentation, please take a look at this [README.md](https://github.com/docker/docker/blob/master/docs/README.md).
They are probably not perfect, please let us know if anything feels
wrong or incomplete.
These instructions are probably not perfect, please let us know if anything
feels wrong or incomplete.
### Legal
@@ -201,5 +202,7 @@ For more information, please see http://www.bis.doc.gov
Licensing
=========
Docker is licensed under the Apache License, Version 2.0. See LICENSE for full license text.
Docker is licensed under the Apache License, Version 2.0. See
[LICENSE](https://github.com/docker/docker/blob/master/LICENSE) for the full
license text.
+1 -1
View File
@@ -1 +1 @@
1.2.0
1.4.1
+1
View File
@@ -1 +1,2 @@
Victor Vieux <vieux@docker.com> (@vieux)
Jessie Frazelle <jess@docker.com> (@jfrazelle)
+92 -24
View File
@@ -3,16 +3,21 @@ package client
import (
"crypto/tls"
"encoding/json"
"errors"
"fmt"
"io"
"net"
"net/http"
"os"
"reflect"
"strings"
"text/template"
"time"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/pkg/term"
"github.com/docker/docker/registry"
"github.com/docker/libtrust"
)
type DockerCli struct {
@@ -22,10 +27,18 @@ type DockerCli struct {
in io.ReadCloser
out io.Writer
err io.Writer
isTerminal bool
terminalFd uintptr
key libtrust.PrivateKey
tlsConfig *tls.Config
scheme string
// inFd holds file descriptor of the client's STDIN, if it's a valid file
inFd uintptr
// outFd holds file descriptor of the client's STDOUT, if it's a valid file
outFd uintptr
// isTerminalIn describes if client's STDIN is a TTY
isTerminalIn bool
// isTerminalOut describes if client's STDOUT is a TTY
isTerminalOut bool
transport *http.Transport
}
var funcMap = template.FuncMap{
@@ -35,11 +48,15 @@ var funcMap = template.FuncMap{
},
}
func (cli *DockerCli) getMethod(name string) (func(...string) error, bool) {
if len(name) == 0 {
return nil, false
func (cli *DockerCli) getMethod(args ...string) (func(...string) error, bool) {
camelArgs := make([]string, len(args))
for i, s := range args {
if len(s) == 0 {
return nil, false
}
camelArgs[i] = strings.ToUpper(s[:1]) + strings.ToLower(s[1:])
}
methodName := "Cmd" + strings.ToUpper(name[:1]) + strings.ToLower(name[1:])
methodName := "Cmd" + strings.Join(camelArgs, "")
method := reflect.ValueOf(cli).MethodByName(methodName)
if !method.IsValid() {
return nil, false
@@ -49,21 +66,31 @@ func (cli *DockerCli) getMethod(name string) (func(...string) error, bool) {
// Cmd executes the specified command
func (cli *DockerCli) Cmd(args ...string) error {
if len(args) > 1 {
method, exists := cli.getMethod(args[:2]...)
if exists {
return method(args[2:]...)
}
}
if len(args) > 0 {
method, exists := cli.getMethod(args[0])
if !exists {
fmt.Println("Error: Command not found:", args[0])
return cli.CmdHelp(args[1:]...)
return cli.CmdHelp()
}
return method(args[1:]...)
}
return cli.CmdHelp(args...)
return cli.CmdHelp()
}
func (cli *DockerCli) Subcmd(name, signature, description string) *flag.FlagSet {
flags := flag.NewFlagSet(name, flag.ContinueOnError)
flags.Usage = func() {
fmt.Fprintf(cli.err, "\nUsage: docker %s %s\n\n%s\n\n", name, signature, description)
options := ""
if flags.FlagCountUndeprecated() > 0 {
options = "[OPTIONS] "
}
fmt.Fprintf(cli.err, "\nUsage: docker %s %s%s\n\n%s\n\n", name, options, signature, description)
flags.PrintDefaults()
os.Exit(2)
}
@@ -78,11 +105,23 @@ func (cli *DockerCli) LoadConfigFile() (err error) {
return err
}
func NewDockerCli(in io.ReadCloser, out, err io.Writer, proto, addr string, tlsConfig *tls.Config) *DockerCli {
func (cli *DockerCli) CheckTtyInput(attachStdin, ttyMode bool) error {
// In order to attach to a container tty, input stream for the client must
// be a tty itself: redirecting or piping the client standard input is
// incompatible with `docker run -t`, `docker exec -t` or `docker attach`.
if ttyMode && attachStdin && !cli.isTerminalIn {
return errors.New("cannot enable tty mode on non tty input")
}
return nil
}
func NewDockerCli(in io.ReadCloser, out, err io.Writer, key libtrust.PrivateKey, proto, addr string, tlsConfig *tls.Config) *DockerCli {
var (
isTerminal = false
terminalFd uintptr
scheme = "http"
inFd uintptr
outFd uintptr
isTerminalIn = false
isTerminalOut = false
scheme = "http"
)
if tlsConfig != nil {
@@ -90,24 +129,53 @@ func NewDockerCli(in io.ReadCloser, out, err io.Writer, proto, addr string, tlsC
}
if in != nil {
if file, ok := in.(*os.File); ok {
inFd = file.Fd()
isTerminalIn = term.IsTerminal(inFd)
}
}
if out != nil {
if file, ok := out.(*os.File); ok {
terminalFd = file.Fd()
isTerminal = term.IsTerminal(terminalFd)
outFd = file.Fd()
isTerminalOut = term.IsTerminal(outFd)
}
}
if err == nil {
err = out
}
// The transport is created here for reuse during the client session
tr := &http.Transport{
TLSClientConfig: tlsConfig,
}
// Why 32? See issue 8035
timeout := 32 * time.Second
if proto == "unix" {
// no need in compressing for local communications
tr.DisableCompression = true
tr.Dial = func(_, _ string) (net.Conn, error) {
return net.DialTimeout(proto, addr, timeout)
}
} else {
tr.Dial = (&net.Dialer{Timeout: timeout}).Dial
}
return &DockerCli{
proto: proto,
addr: addr,
in: in,
out: out,
err: err,
isTerminal: isTerminal,
terminalFd: terminalFd,
tlsConfig: tlsConfig,
scheme: scheme,
proto: proto,
addr: addr,
in: in,
out: out,
err: err,
key: key,
inFd: inFd,
outFd: outFd,
isTerminalIn: isTerminalIn,
isTerminalOut: isTerminalOut,
tlsConfig: tlsConfig,
scheme: scheme,
transport: tr,
}
}
+650 -270
View File
File diff suppressed because it is too large Load Diff
+116 -20
View File
@@ -2,6 +2,7 @@ package client
import (
"crypto/tls"
"errors"
"fmt"
"io"
"net"
@@ -10,29 +11,125 @@ import (
"os"
"runtime"
"strings"
"time"
log "github.com/Sirupsen/logrus"
"github.com/docker/docker/api"
"github.com/docker/docker/dockerversion"
"github.com/docker/docker/pkg/log"
"github.com/docker/docker/pkg/promise"
"github.com/docker/docker/pkg/stdcopy"
"github.com/docker/docker/pkg/term"
"github.com/docker/docker/utils"
)
type tlsClientCon struct {
*tls.Conn
rawConn net.Conn
}
func (c *tlsClientCon) CloseWrite() error {
// Go standard tls.Conn doesn't provide the CloseWrite() method so we do it
// on its underlying connection.
if cwc, ok := c.rawConn.(interface {
CloseWrite() error
}); ok {
return cwc.CloseWrite()
}
return nil
}
func tlsDial(network, addr string, config *tls.Config) (net.Conn, error) {
return tlsDialWithDialer(new(net.Dialer), network, addr, config)
}
// We need to copy Go's implementation of tls.Dial (pkg/cryptor/tls/tls.go) in
// order to return our custom tlsClientCon struct which holds both the tls.Conn
// object _and_ its underlying raw connection. The rationale for this is that
// we need to be able to close the write end of the connection when attaching,
// which tls.Conn does not provide.
func tlsDialWithDialer(dialer *net.Dialer, network, addr string, config *tls.Config) (net.Conn, error) {
// We want the Timeout and Deadline values from dialer to cover the
// whole process: TCP connection and TLS handshake. This means that we
// also need to start our own timers now.
timeout := dialer.Timeout
if !dialer.Deadline.IsZero() {
deadlineTimeout := dialer.Deadline.Sub(time.Now())
if timeout == 0 || deadlineTimeout < timeout {
timeout = deadlineTimeout
}
}
var errChannel chan error
if timeout != 0 {
errChannel = make(chan error, 2)
time.AfterFunc(timeout, func() {
errChannel <- errors.New("")
})
}
rawConn, err := dialer.Dial(network, addr)
if err != nil {
return nil, err
}
colonPos := strings.LastIndex(addr, ":")
if colonPos == -1 {
colonPos = len(addr)
}
hostname := addr[:colonPos]
// If no ServerName is set, infer the ServerName
// from the hostname we're connecting to.
if config.ServerName == "" {
// Make a copy to avoid polluting argument or default.
c := *config
c.ServerName = hostname
config = &c
}
conn := tls.Client(rawConn, config)
if timeout == 0 {
err = conn.Handshake()
} else {
go func() {
errChannel <- conn.Handshake()
}()
err = <-errChannel
}
if err != nil {
rawConn.Close()
return nil, err
}
// This is Docker difference with standard's crypto/tls package: returned a
// wrapper which holds both the TLS and raw connections.
return &tlsClientCon{conn, rawConn}, nil
}
func (cli *DockerCli) dial() (net.Conn, error) {
if cli.tlsConfig != nil && cli.proto != "unix" {
return tls.Dial(cli.proto, cli.addr, cli.tlsConfig)
// Notice this isn't Go standard's tls.Dial function
return tlsDial(cli.proto, cli.addr, cli.tlsConfig)
}
return net.Dial(cli.proto, cli.addr)
}
func (cli *DockerCli) hijack(method, path string, setRawTerminal bool, in io.ReadCloser, stdout, stderr io.Writer, started chan io.Closer) error {
func (cli *DockerCli) hijack(method, path string, setRawTerminal bool, in io.ReadCloser, stdout, stderr io.Writer, started chan io.Closer, data interface{}) error {
defer func() {
if started != nil {
close(started)
}
}()
req, err := http.NewRequest(method, fmt.Sprintf("/v%s%s", api.APIVERSION, path), nil)
params, err := cli.encodeData(data)
if err != nil {
return err
}
req, err := http.NewRequest(method, fmt.Sprintf("/v%s%s", api.APIVERSION, path), params)
if err != nil {
return err
}
@@ -64,20 +161,20 @@ func (cli *DockerCli) hijack(method, path string, setRawTerminal bool, in io.Rea
var oldState *term.State
if in != nil && setRawTerminal && cli.isTerminal && os.Getenv("NORAW") == "" {
oldState, err = term.SetRawTerminal(cli.terminalFd)
if in != nil && setRawTerminal && cli.isTerminalIn && os.Getenv("NORAW") == "" {
oldState, err = term.SetRawTerminal(cli.inFd)
if err != nil {
return err
}
defer term.RestoreTerminal(cli.terminalFd, oldState)
defer term.RestoreTerminal(cli.inFd, oldState)
}
if stdout != nil || stderr != nil {
receiveStdout = utils.Go(func() (err error) {
receiveStdout = promise.Go(func() (err error) {
defer func() {
if in != nil {
if setRawTerminal && cli.isTerminal {
term.RestoreTerminal(cli.terminalFd, oldState)
if setRawTerminal && cli.isTerminalIn {
term.RestoreTerminal(cli.inFd, oldState)
}
// For some reason this Close call blocks on darwin..
// As the client exists right after, simply discard the close
@@ -92,24 +189,23 @@ func (cli *DockerCli) hijack(method, path string, setRawTerminal bool, in io.Rea
if setRawTerminal && stdout != nil {
_, err = io.Copy(stdout, br)
} else {
_, err = utils.StdCopy(stdout, stderr, br)
_, err = stdcopy.StdCopy(stdout, stderr, br)
}
log.Debugf("[hijack] End of stdout")
return err
})
}
sendStdin := utils.Go(func() error {
sendStdin := promise.Go(func() error {
if in != nil {
io.Copy(rwc, in)
log.Debugf("[hijack] End of stdin")
}
if tcpc, ok := rwc.(*net.TCPConn); ok {
if err := tcpc.CloseWrite(); err != nil {
log.Debugf("Couldn't send EOF: %s", err)
}
} else if unixc, ok := rwc.(*net.UnixConn); ok {
if err := unixc.CloseWrite(); err != nil {
if conn, ok := rwc.(interface {
CloseWrite() error
}); ok {
if err := conn.CloseWrite(); err != nil {
log.Debugf("Couldn't send EOF: %s", err)
}
}
@@ -124,7 +220,7 @@ func (cli *DockerCli) hijack(method, path string, setRawTerminal bool, in io.Rea
}
}
if !cli.isTerminal {
if !cli.isTerminalIn {
if err := <-sendStdin; err != nil {
log.Debugf("Error sendStdin: %s", err)
return err
+63 -28
View File
@@ -8,19 +8,19 @@ import (
"fmt"
"io"
"io/ioutil"
"net"
"net/http"
"net/url"
"os"
gosignal "os/signal"
"strconv"
"strings"
"syscall"
log "github.com/Sirupsen/logrus"
"github.com/docker/docker/api"
"github.com/docker/docker/dockerversion"
"github.com/docker/docker/engine"
"github.com/docker/docker/pkg/log"
"github.com/docker/docker/pkg/signal"
"github.com/docker/docker/pkg/stdcopy"
"github.com/docker/docker/pkg/term"
"github.com/docker/docker/registry"
"github.com/docker/docker/utils"
@@ -31,33 +31,34 @@ var (
)
func (cli *DockerCli) HTTPClient() *http.Client {
tr := &http.Transport{
TLSClientConfig: cli.tlsConfig,
Dial: func(network, addr string) (net.Conn, error) {
return net.Dial(cli.proto, cli.addr)
},
}
return &http.Client{Transport: tr}
return &http.Client{Transport: cli.transport}
}
func (cli *DockerCli) call(method, path string, data interface{}, passAuthInfo bool) (io.ReadCloser, int, error) {
func (cli *DockerCli) encodeData(data interface{}) (*bytes.Buffer, error) {
params := bytes.NewBuffer(nil)
if data != nil {
if env, ok := data.(engine.Env); ok {
if err := env.Encode(params); err != nil {
return nil, -1, err
return nil, err
}
} else {
buf, err := json.Marshal(data)
if err != nil {
return nil, -1, err
return nil, err
}
if _, err := params.Write(buf); err != nil {
return nil, -1, err
return nil, err
}
}
}
return params, nil
}
func (cli *DockerCli) call(method, path string, data interface{}, passAuthInfo bool) (io.ReadCloser, int, error) {
params, err := cli.encodeData(data)
if err != nil {
return nil, -1, err
}
req, err := http.NewRequest(method, fmt.Sprintf("/v%s%s", api.APIVERSION, path), params)
if err != nil {
return nil, -1, err
@@ -95,7 +96,12 @@ func (cli *DockerCli) call(method, path string, data interface{}, passAuthInfo b
if strings.Contains(err.Error(), "connection refused") {
return nil, -1, ErrConnectionRefused
}
return nil, -1, err
if cli.tlsConfig == nil {
return nil, -1, fmt.Errorf("%v. Are you trying to connect to a TLS-enabled daemon without TLS?", err)
}
return nil, -1, fmt.Errorf("An error occurred trying to connect: %v", err)
}
if resp.StatusCode < 200 || resp.StatusCode >= 400 {
@@ -108,6 +114,7 @@ func (cli *DockerCli) call(method, path string, data interface{}, passAuthInfo b
}
return nil, resp.StatusCode, fmt.Errorf("Error response from daemon: %s", bytes.TrimSpace(body))
}
return resp.Body, resp.StatusCode, nil
}
@@ -120,7 +127,7 @@ func (cli *DockerCli) streamHelper(method, path string, setRawTerminal bool, in
in = bytes.NewReader([]byte{})
}
req, err := http.NewRequest(method, fmt.Sprintf("http://v%s%s", api.APIVERSION, path), in)
req, err := http.NewRequest(method, fmt.Sprintf("/v%s%s", api.APIVERSION, path), in)
if err != nil {
return err
}
@@ -157,14 +164,14 @@ func (cli *DockerCli) streamHelper(method, path string, setRawTerminal bool, in
}
if api.MatchesContentType(resp.Header.Get("Content-Type"), "application/json") {
return utils.DisplayJSONMessagesStream(resp.Body, stdout, cli.terminalFd, cli.isTerminal)
return utils.DisplayJSONMessagesStream(resp.Body, stdout, cli.outFd, cli.isTerminalOut)
}
if stdout != nil || stderr != nil {
// When TTY is ON, use regular copy
if setRawTerminal {
_, err = io.Copy(stdout, resp.Body)
} else {
_, err = utils.StdCopy(stdout, stderr, resp.Body)
_, err = stdcopy.StdCopy(stdout, stderr, resp.Body)
}
log.Debugf("[stream] End of stdout")
return err
@@ -172,7 +179,7 @@ func (cli *DockerCli) streamHelper(method, path string, setRawTerminal bool, in
return nil
}
func (cli *DockerCli) resizeTty(id string) {
func (cli *DockerCli) resizeTty(id string, isExec bool) {
height, width := cli.getTtySize()
if height == 0 && width == 0 {
return
@@ -180,7 +187,15 @@ func (cli *DockerCli) resizeTty(id string) {
v := url.Values{}
v.Set("h", strconv.Itoa(height))
v.Set("w", strconv.Itoa(width))
if _, _, err := readBody(cli.call("POST", "/containers/"+id+"/resize?"+v.Encode(), nil, false)); err != nil {
path := ""
if !isExec {
path = "/containers/" + id + "/resize?"
} else {
path = "/exec/" + id + "/resize?"
}
if _, _, err := readBody(cli.call("POST", path+v.Encode(), nil, false)); err != nil {
log.Debugf("Error resize: %s", err)
}
}
@@ -201,7 +216,7 @@ func waitForExit(cli *DockerCli, containerId string) (int, error) {
// getExitCode perform an inspect on the container. It returns
// the running state and the exit code.
func getExitCode(cli *DockerCli, containerId string) (bool, int, error) {
steam, _, err := cli.call("GET", "/containers/"+containerId+"/json", nil, false)
stream, _, err := cli.call("GET", "/containers/"+containerId+"/json", nil, false)
if err != nil {
// If we can't connect, then the daemon probably died.
if err != ErrConnectionRefused {
@@ -211,7 +226,7 @@ func getExitCode(cli *DockerCli, containerId string) (bool, int, error) {
}
var result engine.Env
if err := result.Decode(steam); err != nil {
if err := result.Decode(stream); err != nil {
return false, -1, err
}
@@ -219,24 +234,44 @@ func getExitCode(cli *DockerCli, containerId string) (bool, int, error) {
return state.GetBool("Running"), state.GetInt("ExitCode"), nil
}
func (cli *DockerCli) monitorTtySize(id string) error {
cli.resizeTty(id)
// getExecExitCode perform an inspect on the exec command. It returns
// the running state and the exit code.
func getExecExitCode(cli *DockerCli, execId string) (bool, int, error) {
stream, _, err := cli.call("GET", "/exec/"+execId+"/json", nil, false)
if err != nil {
// If we can't connect, then the daemon probably died.
if err != ErrConnectionRefused {
return false, -1, err
}
return false, -1, nil
}
var result engine.Env
if err := result.Decode(stream); err != nil {
return false, -1, err
}
return result.GetBool("Running"), result.GetInt("ExitCode"), nil
}
func (cli *DockerCli) monitorTtySize(id string, isExec bool) error {
cli.resizeTty(id, isExec)
sigchan := make(chan os.Signal, 1)
gosignal.Notify(sigchan, syscall.SIGWINCH)
gosignal.Notify(sigchan, signal.SIGWINCH)
go func() {
for _ = range sigchan {
cli.resizeTty(id)
cli.resizeTty(id, isExec)
}
}()
return nil
}
func (cli *DockerCli) getTtySize() (int, int) {
if !cli.isTerminal {
if !cli.isTerminalOut {
return 0, 0
}
ws, err := term.GetWinsize(cli.terminalFd)
ws, err := term.GetWinsize(cli.outFd)
if err != nil {
log.Debugf("Error getting size: %s", err)
if ws == nil {
+27 -2
View File
@@ -3,16 +3,19 @@ package api
import (
"fmt"
"mime"
"os"
"path"
"strings"
log "github.com/Sirupsen/logrus"
"github.com/docker/docker/engine"
"github.com/docker/docker/pkg/log"
"github.com/docker/docker/pkg/parsers"
"github.com/docker/docker/pkg/version"
"github.com/docker/libtrust"
)
const (
APIVERSION version.Version = "1.14"
APIVERSION version.Version = "1.16"
DEFAULTHTTPHOST = "127.0.0.1"
DEFAULTUNIXSOCKET = "/var/run/docker.sock"
)
@@ -47,3 +50,25 @@ func MatchesContentType(contentType, expectedType string) bool {
}
return err == nil && mimetype == expectedType
}
// LoadOrCreateTrustKey attempts to load the libtrust key at the given path,
// otherwise generates a new one
func LoadOrCreateTrustKey(trustKeyPath string) (libtrust.PrivateKey, error) {
err := os.MkdirAll(path.Dir(trustKeyPath), 0700)
if err != nil {
return nil, err
}
trustKey, err := libtrust.LoadKeyFile(trustKeyPath)
if err == libtrust.ErrKeyFileDoesNotExist {
trustKey, err = libtrust.GenerateECP256PrivateKey()
if err != nil {
return nil, fmt.Errorf("Error generating key: %s", err)
}
if err := libtrust.SaveKey(trustKeyPath, trustKey); err != nil {
return nil, fmt.Errorf("Error saving key file: %s", err)
}
} else if err != nil {
return nil, fmt.Errorf("Error loading key file: %s", err)
}
return trustKey, nil
}
+1 -2
View File
@@ -1,3 +1,2 @@
Victor Vieux <vieux@docker.com> (@vieux)
# off the grid until september
# Johan Euphrosine <proppy@google.com> (@proppy)
Johan Euphrosine <proppy@google.com> (@proppy)
+329 -117
View File
@@ -3,8 +3,7 @@ package server
import (
"bufio"
"bytes"
"crypto/tls"
"crypto/x509"
"encoding/base64"
"encoding/json"
"expvar"
@@ -19,15 +18,19 @@ import (
"strings"
"syscall"
"crypto/tls"
"crypto/x509"
"code.google.com/p/go.net/websocket"
"github.com/docker/libcontainer/user"
"github.com/gorilla/mux"
log "github.com/Sirupsen/logrus"
"github.com/docker/docker/api"
"github.com/docker/docker/engine"
"github.com/docker/docker/pkg/listenbuffer"
"github.com/docker/docker/pkg/log"
"github.com/docker/docker/pkg/parsers"
"github.com/docker/docker/pkg/stdcopy"
"github.com/docker/docker/pkg/systemd"
"github.com/docker/docker/pkg/version"
"github.com/docker/docker/registry"
@@ -38,6 +41,18 @@ var (
activationLock chan struct{}
)
type HttpServer struct {
srv *http.Server
l net.Listener
}
func (s *HttpServer) Serve() error {
return s.srv.Serve(s.l)
}
func (s *HttpServer) Close() error {
return s.l.Close()
}
type HttpApiFunc func(eng *engine.Engine, version version.Version, w http.ResponseWriter, r *http.Request, vars map[string]string) error
func hijackServer(w http.ResponseWriter) (io.ReadCloser, io.Writer, error) {
@@ -50,6 +65,36 @@ func hijackServer(w http.ResponseWriter) (io.ReadCloser, io.Writer, error) {
return conn, conn, nil
}
func closeStreams(streams ...interface{}) {
for _, stream := range streams {
if tcpc, ok := stream.(interface {
CloseWrite() error
}); ok {
tcpc.CloseWrite()
} else if closer, ok := stream.(io.Closer); ok {
closer.Close()
}
}
}
// Check to make sure request's Content-Type is application/json
func checkForJson(r *http.Request) error {
ct := r.Header.Get("Content-Type")
// No Content-Type header is ok as long as there's no Body
if ct == "" {
if r.Body == nil || r.ContentLength == 0 {
return nil
}
}
// Otherwise it better be json
if api.MatchesContentType(ct, "application/json") {
return nil
}
return fmt.Errorf("Content-Type specified (%s) must be 'application/json'", ct)
}
//If we don't do this, POST method without Content-type (even with empty body) will fail
func parseForm(r *http.Request) error {
if r == nil {
@@ -73,17 +118,18 @@ func httpError(w http.ResponseWriter, err error) {
// FIXME: this is brittle and should not be necessary.
// If we need to differentiate between different possible error types, we should
// create appropriate error types with clearly defined meaning.
if strings.Contains(err.Error(), "No such") {
errStr := strings.ToLower(err.Error())
if strings.Contains(errStr, "no such") {
statusCode = http.StatusNotFound
} else if strings.Contains(err.Error(), "Bad parameter") {
} else if strings.Contains(errStr, "bad parameter") {
statusCode = http.StatusBadRequest
} else if strings.Contains(err.Error(), "Conflict") {
} else if strings.Contains(errStr, "conflict") {
statusCode = http.StatusConflict
} else if strings.Contains(err.Error(), "Impossible") {
} else if strings.Contains(errStr, "impossible") {
statusCode = http.StatusNotAcceptable
} else if strings.Contains(err.Error(), "Wrong login/password") {
} else if strings.Contains(errStr, "wrong login/password") {
statusCode = http.StatusUnauthorized
} else if strings.Contains(err.Error(), "hasn't been activated") {
} else if strings.Contains(errStr, "hasn't been activated") {
statusCode = http.StatusForbidden
}
@@ -281,6 +327,7 @@ func getEvents(eng *engine.Engine, version version.Version, w http.ResponseWrite
streamJSON(job, w, true)
job.Setenv("since", r.Form.Get("since"))
job.Setenv("until", r.Form.Get("until"))
job.Setenv("filters", r.Form.Get("filters"))
return job.Run()
}
@@ -397,8 +444,8 @@ func getContainersLogs(eng *engine.Engine, version version.Version, w http.Respo
outStream = utils.NewWriteFlusher(w)
if c.GetSubEnv("Config") != nil && !c.GetSubEnv("Config").GetBool("Tty") && version.GreaterThanOrEqualTo("1.6") {
errStream = utils.NewStdWriter(outStream, utils.Stderr)
outStream = utils.NewStdWriter(outStream, utils.Stdout)
errStream = stdcopy.NewStdWriter(outStream, stdcopy.Stderr)
outStream = stdcopy.NewStdWriter(outStream, stdcopy.Stdout)
} else {
errStream = outStream
}
@@ -438,6 +485,11 @@ func postCommit(eng *engine.Engine, version version.Version, w http.ResponseWrit
job = eng.Job("commit", r.Form.Get("container"))
stdoutBuffer = bytes.NewBuffer(nil)
)
if err := checkForJson(r); err != nil {
return err
}
if err := config.Decode(r.Body); err != nil {
log.Errorf("%s", err)
}
@@ -611,10 +663,18 @@ func getImagesGet(eng *engine.Engine, version version.Version, w http.ResponseWr
if vars == nil {
return fmt.Errorf("Missing parameter")
}
if err := parseForm(r); err != nil {
return err
}
if version.GreaterThan("1.0") {
w.Header().Set("Content-Type", "application/x-tar")
}
job := eng.Job("image_export", vars["name"])
var job *engine.Job
if name, ok := vars["name"]; ok {
job = eng.Job("image_export", name)
} else {
job = eng.Job("image_export", r.Form["names"]...)
}
job.Stdout.Add(w)
return job.Run()
}
@@ -636,6 +696,11 @@ func postContainersCreate(eng *engine.Engine, version version.Version, w http.Re
stdoutBuffer = bytes.NewBuffer(nil)
warnings = bytes.NewBuffer(nil)
)
if err := checkForJson(r); err != nil {
return err
}
if err := job.DecodeEnv(r.Body); err != nil {
return err
}
@@ -653,6 +718,7 @@ func postContainersCreate(eng *engine.Engine, version version.Version, w http.Re
}
out.Set("Id", engine.Tail(stdoutBuffer, 1))
out.SetList("Warnings", outWarnings)
return writeJSON(w, http.StatusCreated, out)
}
@@ -679,7 +745,7 @@ func deleteContainers(eng *engine.Engine, version version.Version, w http.Respon
if vars == nil {
return fmt.Errorf("Missing parameter")
}
job := eng.Job("delete", vars["name"])
job := eng.Job("rm", vars["name"])
job.Setenv("forceRemove", r.Form.Get("force"))
@@ -716,10 +782,15 @@ func postContainersStart(eng *engine.Engine, version version.Version, w http.Res
job = eng.Job("start", name)
)
// If contentLength is -1, we can assumed chunked encoding
// or more technically that the length is unknown
// http://golang.org/src/pkg/net/http/request.go#L139
// net/http otherwise seems to swallow any headers related to chunked encoding
// including r.TransferEncoding
// allow a nil body for backwards compatibility
if r.Body != nil && r.ContentLength > 0 {
if !api.MatchesContentType(r.Header.Get("Content-Type"), "application/json") {
return fmt.Errorf("Content-Type of application/json is required")
if r.Body != nil && (r.ContentLength > 0 || r.ContentLength == -1) {
if err := checkForJson(r); err != nil {
return err
}
if err := job.DecodeEnv(r.Body); err != nil {
@@ -812,28 +883,15 @@ func postContainersAttach(eng *engine.Engine, version version.Version, w http.Re
if err != nil {
return err
}
defer func() {
if tcpc, ok := inStream.(*net.TCPConn); ok {
tcpc.CloseWrite()
} else {
inStream.Close()
}
}()
defer func() {
if tcpc, ok := outStream.(*net.TCPConn); ok {
tcpc.CloseWrite()
} else if closer, ok := outStream.(io.Closer); ok {
closer.Close()
}
}()
defer closeStreams(inStream, outStream)
var errStream io.Writer
fmt.Fprintf(outStream, "HTTP/1.1 200 OK\r\nContent-Type: application/vnd.docker.raw-stream\r\n\r\n")
if c.GetSubEnv("Config") != nil && !c.GetSubEnv("Config").GetBool("Tty") && version.GreaterThanOrEqualTo("1.6") {
errStream = utils.NewStdWriter(outStream, utils.Stderr)
outStream = utils.NewStdWriter(outStream, utils.Stdout)
errStream = stdcopy.NewStdWriter(outStream, stdcopy.Stderr)
outStream = stdcopy.NewStdWriter(outStream, stdcopy.Stdout)
} else {
errStream = outStream
}
@@ -898,6 +956,15 @@ func getContainersByName(eng *engine.Engine, version version.Version, w http.Res
return job.Run()
}
func getExecByID(eng *engine.Engine, version version.Version, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if vars == nil {
return fmt.Errorf("Missing parameter 'id'")
}
var job = eng.Job("execInspect", vars["id"])
streamJSON(job, w, false)
return job.Run()
}
func getImagesByName(eng *engine.Engine, version version.Version, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if vars == nil {
return fmt.Errorf("Missing parameter")
@@ -958,6 +1025,9 @@ func postBuild(eng *engine.Engine, version version.Version, w http.ResponseWrite
} else {
job.Setenv("rm", r.FormValue("rm"))
}
if r.FormValue("pull") == "1" && version.GreaterThanOrEqualTo("1.16") {
job.Setenv("pull", "1")
}
job.Stdin.Add(r.Body)
job.Setenv("remote", r.FormValue("remote"))
job.Setenv("t", r.FormValue("t"))
@@ -984,12 +1054,12 @@ func postContainersCopy(eng *engine.Engine, version version.Version, w http.Resp
var copyData engine.Env
if contentType := r.Header.Get("Content-Type"); api.MatchesContentType(contentType, "application/json") {
if err := copyData.Decode(r.Body); err != nil {
return err
}
} else {
return fmt.Errorf("Content-Type not supported: %s", contentType)
if err := checkForJson(r); err != nil {
return err
}
if err := copyData.Decode(r.Body); err != nil {
return err
}
if copyData.Get("Resource") == "" {
@@ -1004,9 +1074,10 @@ func postContainersCopy(eng *engine.Engine, version version.Version, w http.Resp
job := eng.Job("container_copy", vars["name"], copyData.Get("Resource"))
job.Stdout.Add(w)
w.Header().Set("Content-Type", "application/x-tar")
if err := job.Run(); err != nil {
log.Errorf("%s", err.Error())
if strings.Contains(err.Error(), "No such container") {
if strings.Contains(strings.ToLower(err.Error()), "no such container") {
w.WriteHeader(http.StatusNotFound)
} else if strings.Contains(err.Error(), "no such file or directory") {
return fmt.Errorf("Could not find the file %s in container %s", origResource, vars["name"])
@@ -1015,13 +1086,100 @@ func postContainersCopy(eng *engine.Engine, version version.Version, w http.Resp
return nil
}
func postContainerExecCreate(eng *engine.Engine, version version.Version, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if err := parseForm(r); err != nil {
return nil
}
var (
out engine.Env
name = vars["name"]
job = eng.Job("execCreate", name)
stdoutBuffer = bytes.NewBuffer(nil)
)
if err := job.DecodeEnv(r.Body); err != nil {
return err
}
job.Stdout.Add(stdoutBuffer)
// Register an instance of Exec in container.
if err := job.Run(); err != nil {
fmt.Fprintf(os.Stderr, "Error setting up exec command in container %s: %s\n", name, err)
return err
}
// Return the ID
out.Set("Id", engine.Tail(stdoutBuffer, 1))
return writeJSON(w, http.StatusCreated, out)
}
// TODO(vishh): Refactor the code to avoid having to specify stream config as part of both create and start.
func postContainerExecStart(eng *engine.Engine, version version.Version, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if err := parseForm(r); err != nil {
return nil
}
var (
name = vars["name"]
job = eng.Job("execStart", name)
errOut io.Writer = os.Stderr
)
if err := job.DecodeEnv(r.Body); err != nil {
return err
}
if !job.GetenvBool("Detach") {
// Setting up the streaming http interface.
inStream, outStream, err := hijackServer(w)
if err != nil {
return err
}
defer closeStreams(inStream, outStream)
var errStream io.Writer
fmt.Fprintf(outStream, "HTTP/1.1 200 OK\r\nContent-Type: application/vnd.docker.raw-stream\r\n\r\n")
if !job.GetenvBool("Tty") && version.GreaterThanOrEqualTo("1.6") {
errStream = stdcopy.NewStdWriter(outStream, stdcopy.Stderr)
outStream = stdcopy.NewStdWriter(outStream, stdcopy.Stdout)
} else {
errStream = outStream
}
job.Stdin.Add(inStream)
job.Stdout.Add(outStream)
job.Stderr.Set(errStream)
errOut = outStream
}
// Now run the user process in container.
job.SetCloseIO(false)
if err := job.Run(); err != nil {
fmt.Fprintf(errOut, "Error starting exec command in container %s: %s\n", name, err)
return err
}
w.WriteHeader(http.StatusNoContent)
return nil
}
func postContainerExecResize(eng *engine.Engine, version version.Version, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if err := parseForm(r); err != nil {
return err
}
if vars == nil {
return fmt.Errorf("Missing parameter")
}
if err := eng.Job("execResize", vars["name"], r.Form.Get("h"), r.Form.Get("w")).Run(); err != nil {
return err
}
return nil
}
func optionsHandler(eng *engine.Engine, version version.Version, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
w.WriteHeader(http.StatusOK)
return nil
}
func writeCorsHeaders(w http.ResponseWriter, r *http.Request) {
w.Header().Add("Access-Control-Allow-Origin", "*")
w.Header().Add("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept")
w.Header().Add("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, X-Registry-Auth")
w.Header().Add("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT, OPTIONS")
}
@@ -1086,6 +1244,7 @@ func AttachProfiler(router *mux.Router) {
router.HandleFunc("/debug/pprof/cmdline", pprof.Cmdline)
router.HandleFunc("/debug/pprof/profile", pprof.Profile)
router.HandleFunc("/debug/pprof/symbol", pprof.Symbol)
router.HandleFunc("/debug/pprof/block", pprof.Handler("block").ServeHTTP)
router.HandleFunc("/debug/pprof/heap", pprof.Handler("heap").ServeHTTP)
router.HandleFunc("/debug/pprof/goroutine", pprof.Handler("goroutine").ServeHTTP)
router.HandleFunc("/debug/pprof/threadcreate", pprof.Handler("threadcreate").ServeHTTP)
@@ -1105,6 +1264,7 @@ func createRouter(eng *engine.Engine, logging, enableCors bool, dockerVersion st
"/images/json": getImagesJSON,
"/images/viz": getImagesViz,
"/images/search": getImagesSearch,
"/images/get": getImagesGet,
"/images/{name:.*}/get": getImagesGet,
"/images/{name:.*}/history": getImagesHistory,
"/images/{name:.*}/json": getImagesByName,
@@ -1116,6 +1276,7 @@ func createRouter(eng *engine.Engine, logging, enableCors bool, dockerVersion st
"/containers/{name:.*}/top": getContainersTop,
"/containers/{name:.*}/logs": getContainersLogs,
"/containers/{name:.*}/attach/ws": wsContainersAttach,
"/exec/{id:.*}/json": getExecByID,
},
"POST": {
"/auth": postAuth,
@@ -1136,6 +1297,9 @@ func createRouter(eng *engine.Engine, logging, enableCors bool, dockerVersion st
"/containers/{name:.*}/resize": postContainersResize,
"/containers/{name:.*}/attach": postContainersAttach,
"/containers/{name:.*}/copy": postContainersCopy,
"/containers/{name:.*}/exec": postContainerExecCreate,
"/exec/{name:.*}/start": postContainerExecStart,
"/exec/{name:.*}/resize": postContainerExecResize,
},
"DELETE": {
"/containers/{name:.*}": deleteContainers,
@@ -1184,9 +1348,14 @@ func ServeRequest(eng *engine.Engine, apiversion version.Version, w http.Respons
return nil
}
// ServeFD creates an http.Server and sets it up to serve given a socket activated
// serveFd creates an http.Server and sets it up to serve given a socket activated
// argument.
func ServeFd(addr string, handle http.Handler) error {
func serveFd(addr string, job *engine.Job) error {
r, err := createRouter(job.Eng, job.GetenvBool("Logging"), job.GetenvBool("EnableCors"), job.Getenv("Version"))
if err != nil {
return err
}
ls, e := systemd.ListenFD(addr)
if e != nil {
return e
@@ -1204,12 +1373,12 @@ func ServeFd(addr string, handle http.Handler) error {
for i := range ls {
listener := ls[i]
go func() {
httpSrv := http.Server{Handler: handle}
httpSrv := http.Server{Handler: r}
chErrors <- httpSrv.Serve(listener)
}()
}
for i := 0; i < len(ls); i += 1 {
for i := 0; i < len(ls); i++ {
err := <-chErrors
if err != nil {
return err
@@ -1220,7 +1389,11 @@ func ServeFd(addr string, handle http.Handler) error {
}
func lookupGidByName(nameOrGid string) (int, error) {
groups, err := user.ParseGroupFilter(func(g *user.Group) bool {
groupFile, err := user.GetGroupFile()
if err != nil {
return -1, err
}
groups, err := user.ParseGroupFileFilter(groupFile, func(g user.Group) bool {
return g.Name == nameOrGid || strconv.Itoa(g.Gid) == nameOrGid
})
if err != nil {
@@ -1232,6 +1405,41 @@ func lookupGidByName(nameOrGid string) (int, error) {
return -1, fmt.Errorf("Group %s not found", nameOrGid)
}
func setupTls(cert, key, ca string, l net.Listener) (net.Listener, error) {
tlsCert, err := tls.LoadX509KeyPair(cert, key)
if err != nil {
return nil, fmt.Errorf("Couldn't load X509 key pair (%s, %s): %s. Key encrypted?",
cert, key, err)
}
tlsConfig := &tls.Config{
NextProtos: []string{"http/1.1"},
Certificates: []tls.Certificate{tlsCert},
// Avoid fallback on insecure SSL protocols
MinVersion: tls.VersionTLS10,
}
if ca != "" {
certPool := x509.NewCertPool()
file, err := ioutil.ReadFile(ca)
if err != nil {
return nil, fmt.Errorf("Couldn't read CA certificate: %s", err)
}
certPool.AppendCertsFromPEM(file)
tlsConfig.ClientAuth = tls.RequireAndVerifyClientCert
tlsConfig.ClientCAs = certPool
}
return tls.NewListener(l, tlsConfig), nil
}
func newListener(proto, addr string, bufferRequests bool) (net.Listener, error) {
if bufferRequests {
return listenbuffer.NewListenBuffer(proto, addr, activationLock)
}
return net.Listen(proto, addr)
}
func changeGroup(addr string, nameOrGid string) error {
gid, err := lookupGidByName(nameOrGid)
if err != nil {
@@ -1242,96 +1450,95 @@ func changeGroup(addr string, nameOrGid string) error {
return os.Chown(addr, 0, gid)
}
// ListenAndServe sets up the required http.Server and gets it listening for
// each addr passed in and does protocol specific checking.
func ListenAndServe(proto, addr string, job *engine.Job) error {
var l net.Listener
func setSocketGroup(addr, group string) error {
if group == "" {
return nil
}
if err := changeGroup(addr, group); err != nil {
if group != "docker" {
return err
}
log.Debugf("Warning: could not chgrp %s to docker: %v", addr, err)
}
return nil
}
func setupUnixHttp(addr string, job *engine.Job) (*HttpServer, error) {
r, err := createRouter(job.Eng, job.GetenvBool("Logging"), job.GetenvBool("EnableCors"), job.Getenv("Version"))
if err != nil {
return err
return nil, err
}
if proto == "fd" {
return ServeFd(addr, r)
if err := syscall.Unlink(addr); err != nil && !os.IsNotExist(err) {
return nil, err
}
mask := syscall.Umask(0777)
defer syscall.Umask(mask)
if proto == "unix" {
if err := syscall.Unlink(addr); err != nil && !os.IsNotExist(err) {
return err
}
}
var oldmask int
if proto == "unix" {
oldmask = syscall.Umask(0777)
}
if job.GetenvBool("BufferRequests") {
l, err = listenbuffer.NewListenBuffer(proto, addr, activationLock)
} else {
l, err = net.Listen(proto, addr)
}
if proto == "unix" {
syscall.Umask(oldmask)
}
l, err := newListener("unix", addr, job.GetenvBool("BufferRequests"))
if err != nil {
return err
return nil, err
}
if proto != "unix" && (job.GetenvBool("Tls") || job.GetenvBool("TlsVerify")) {
tlsCert := job.Getenv("TlsCert")
tlsKey := job.Getenv("TlsKey")
cert, err := tls.LoadX509KeyPair(tlsCert, tlsKey)
if err != nil {
return fmt.Errorf("Couldn't load X509 key pair (%s, %s): %s. Key encrypted?",
tlsCert, tlsKey, err)
}
tlsConfig := &tls.Config{
NextProtos: []string{"http/1.1"},
Certificates: []tls.Certificate{cert},
}
if err := setSocketGroup(addr, job.Getenv("SocketGroup")); err != nil {
return nil, err
}
if err := os.Chmod(addr, 0660); err != nil {
return nil, err
}
return &HttpServer{&http.Server{Addr: addr, Handler: r}, l}, nil
}
func setupTcpHttp(addr string, job *engine.Job) (*HttpServer, error) {
if !strings.HasPrefix(addr, "127.0.0.1") && !job.GetenvBool("TlsVerify") {
log.Infof("/!\\ DON'T BIND ON ANOTHER IP ADDRESS THAN 127.0.0.1 IF YOU DON'T KNOW WHAT YOU'RE DOING /!\\")
}
r, err := createRouter(job.Eng, job.GetenvBool("Logging"), job.GetenvBool("EnableCors"), job.Getenv("Version"))
if err != nil {
return nil, err
}
l, err := newListener("tcp", addr, job.GetenvBool("BufferRequests"))
if err != nil {
return nil, err
}
if job.GetenvBool("Tls") || job.GetenvBool("TlsVerify") {
var tlsCa string
if job.GetenvBool("TlsVerify") {
certPool := x509.NewCertPool()
file, err := ioutil.ReadFile(job.Getenv("TlsCa"))
if err != nil {
return fmt.Errorf("Couldn't read CA certificate: %s", err)
}
certPool.AppendCertsFromPEM(file)
tlsConfig.ClientAuth = tls.RequireAndVerifyClientCert
tlsConfig.ClientCAs = certPool
tlsCa = job.Getenv("TlsCa")
}
l, err = setupTls(job.Getenv("TlsCert"), job.Getenv("TlsKey"), tlsCa, l)
if err != nil {
return nil, err
}
l = tls.NewListener(l, tlsConfig)
}
return &HttpServer{&http.Server{Addr: addr, Handler: r}, l}, nil
}
// NewServer sets up the required Server and does protocol specific checking.
func NewServer(proto, addr string, job *engine.Job) (Server, error) {
// Basic error and sanity checking
switch proto {
case "fd":
return nil, serveFd(addr, job)
case "tcp":
if !strings.HasPrefix(addr, "127.0.0.1") && !job.GetenvBool("TlsVerify") {
log.Infof("/!\\ DON'T BIND ON ANOTHER IP ADDRESS THAN 127.0.0.1 IF YOU DON'T KNOW WHAT YOU'RE DOING /!\\")
}
return setupTcpHttp(addr, job)
case "unix":
socketGroup := job.Getenv("SocketGroup")
if socketGroup != "" {
if err := changeGroup(addr, socketGroup); err != nil {
if socketGroup == "docker" {
// if the user hasn't explicitly specified the group ownership, don't fail on errors.
log.Debugf("Warning: could not chgrp %s to docker: %s", addr, err.Error())
} else {
return err
}
}
}
if err := os.Chmod(addr, 0660); err != nil {
return err
}
return setupUnixHttp(addr, job)
default:
return fmt.Errorf("Invalid protocol format.")
return nil, fmt.Errorf("Invalid protocol format.")
}
}
httpSrv := http.Server{Addr: addr, Handler: r}
return httpSrv.Serve(l)
type Server interface {
Serve() error
Close() error
}
// ServeApi loops through all of the protocols sent in to docker and spawns
@@ -1353,11 +1560,16 @@ func ServeApi(job *engine.Job) engine.Status {
}
go func() {
log.Infof("Listening for HTTP on %s (%s)", protoAddrParts[0], protoAddrParts[1])
chErrors <- ListenAndServe(protoAddrParts[0], protoAddrParts[1], job)
srv, err := NewServer(protoAddrParts[0], protoAddrParts[1], job)
if err != nil {
chErrors <- err
return
}
chErrors <- srv.Serve()
}()
}
for i := 0; i < len(protoAddrs); i += 1 {
for i := 0; i < len(protoAddrs); i++ {
err := <-chErrors
if err != nil {
return job.Error(err)
+1 -1
View File
@@ -455,7 +455,7 @@ func TestDeleteContainers(t *testing.T) {
eng := engine.New()
name := "foo"
var called bool
eng.Register("delete", func(job *engine.Job) engine.Status {
eng.Register("rm", func(job *engine.Job) engine.Status {
called = true
if len(job.Args) == 0 {
t.Fatalf("Job arguments is empty")
-3
View File
@@ -1,3 +0,0 @@
This code provides helper functions for dealing with archive files.
**TODO**: Move this to either `pkg` or (if not possible) to `utils`.
-244
View File
@@ -1,244 +0,0 @@
package archive
import (
"bytes"
"fmt"
"io"
"io/ioutil"
"os"
"os/exec"
"path"
"testing"
"time"
"github.com/docker/docker/vendor/src/code.google.com/p/go/src/pkg/archive/tar"
)
func TestCmdStreamLargeStderr(t *testing.T) {
cmd := exec.Command("/bin/sh", "-c", "dd if=/dev/zero bs=1k count=1000 of=/dev/stderr; echo hello")
out, err := CmdStream(cmd, nil)
if err != nil {
t.Fatalf("Failed to start command: %s", err)
}
errCh := make(chan error)
go func() {
_, err := io.Copy(ioutil.Discard, out)
errCh <- err
}()
select {
case err := <-errCh:
if err != nil {
t.Fatalf("Command should not have failed (err=%.100s...)", err)
}
case <-time.After(5 * time.Second):
t.Fatalf("Command did not complete in 5 seconds; probable deadlock")
}
}
func TestCmdStreamBad(t *testing.T) {
badCmd := exec.Command("/bin/sh", "-c", "echo hello; echo >&2 error couldn\\'t reverse the phase pulser; exit 1")
out, err := CmdStream(badCmd, nil)
if err != nil {
t.Fatalf("Failed to start command: %s", err)
}
if output, err := ioutil.ReadAll(out); err == nil {
t.Fatalf("Command should have failed")
} else if err.Error() != "exit status 1: error couldn't reverse the phase pulser\n" {
t.Fatalf("Wrong error value (%s)", err)
} else if s := string(output); s != "hello\n" {
t.Fatalf("Command output should be '%s', not '%s'", "hello\\n", output)
}
}
func TestCmdStreamGood(t *testing.T) {
cmd := exec.Command("/bin/sh", "-c", "echo hello; exit 0")
out, err := CmdStream(cmd, nil)
if err != nil {
t.Fatal(err)
}
if output, err := ioutil.ReadAll(out); err != nil {
t.Fatalf("Command should not have failed (err=%s)", err)
} else if s := string(output); s != "hello\n" {
t.Fatalf("Command output should be '%s', not '%s'", "hello\\n", output)
}
}
func tarUntar(t *testing.T, origin string, options *TarOptions) ([]Change, error) {
archive, err := TarWithOptions(origin, options)
if err != nil {
t.Fatal(err)
}
defer archive.Close()
buf := make([]byte, 10)
if _, err := archive.Read(buf); err != nil {
return nil, err
}
wrap := io.MultiReader(bytes.NewReader(buf), archive)
detectedCompression := DetectCompression(buf)
compression := options.Compression
if detectedCompression.Extension() != compression.Extension() {
return nil, fmt.Errorf("Wrong compression detected. Actual compression: %s, found %s", compression.Extension(), detectedCompression.Extension())
}
tmp, err := ioutil.TempDir("", "docker-test-untar")
if err != nil {
return nil, err
}
defer os.RemoveAll(tmp)
if err := Untar(wrap, tmp, nil); err != nil {
return nil, err
}
if _, err := os.Stat(tmp); err != nil {
return nil, err
}
return ChangesDirs(origin, tmp)
}
func TestTarUntar(t *testing.T) {
origin, err := ioutil.TempDir("", "docker-test-untar-origin")
if err != nil {
t.Fatal(err)
}
defer os.RemoveAll(origin)
if err := ioutil.WriteFile(path.Join(origin, "1"), []byte("hello world"), 0700); err != nil {
t.Fatal(err)
}
if err := ioutil.WriteFile(path.Join(origin, "2"), []byte("welcome!"), 0700); err != nil {
t.Fatal(err)
}
if err := ioutil.WriteFile(path.Join(origin, "3"), []byte("will be ignored"), 0700); err != nil {
t.Fatal(err)
}
for _, c := range []Compression{
Uncompressed,
Gzip,
} {
changes, err := tarUntar(t, origin, &TarOptions{
Compression: c,
Excludes: []string{"3"},
})
if err != nil {
t.Fatalf("Error tar/untar for compression %s: %s", c.Extension(), err)
}
if len(changes) != 1 || changes[0].Path != "/3" {
t.Fatalf("Unexpected differences after tarUntar: %v", changes)
}
}
}
func TestTarWithOptions(t *testing.T) {
origin, err := ioutil.TempDir("", "docker-test-untar-origin")
if err != nil {
t.Fatal(err)
}
defer os.RemoveAll(origin)
if err := ioutil.WriteFile(path.Join(origin, "1"), []byte("hello world"), 0700); err != nil {
t.Fatal(err)
}
if err := ioutil.WriteFile(path.Join(origin, "2"), []byte("welcome!"), 0700); err != nil {
t.Fatal(err)
}
cases := []struct {
opts *TarOptions
numChanges int
}{
{&TarOptions{Includes: []string{"1"}}, 1},
{&TarOptions{Excludes: []string{"2"}}, 1},
}
for _, testCase := range cases {
changes, err := tarUntar(t, origin, testCase.opts)
if err != nil {
t.Fatalf("Error tar/untar when testing inclusion/exclusion: %s", err)
}
if len(changes) != testCase.numChanges {
t.Errorf("Expected %d changes, got %d for %+v:",
testCase.numChanges, len(changes), testCase.opts)
}
}
}
// Some tar archives such as http://haproxy.1wt.eu/download/1.5/src/devel/haproxy-1.5-dev21.tar.gz
// use PAX Global Extended Headers.
// Failing prevents the archives from being uncompressed during ADD
func TestTypeXGlobalHeaderDoesNotFail(t *testing.T) {
hdr := tar.Header{Typeflag: tar.TypeXGlobalHeader}
err := createTarFile("pax_global_header", "some_dir", &hdr, nil, true)
if err != nil {
t.Fatal(err)
}
}
// Some tar have both GNU specific (huge uid) and Ustar specific (long name) things.
// Not supposed to happen (should use PAX instead of Ustar for long name) but it does and it should still work.
func TestUntarUstarGnuConflict(t *testing.T) {
f, err := os.Open("testdata/broken.tar")
if err != nil {
t.Fatal(err)
}
found := false
tr := tar.NewReader(f)
// Iterate through the files in the archive.
for {
hdr, err := tr.Next()
if err == io.EOF {
// end of tar archive
break
}
if err != nil {
t.Fatal(err)
}
if hdr.Name == "root/.cpanm/work/1395823785.24209/Plack-1.0030/blib/man3/Plack::Middleware::LighttpdScriptNameFix.3pm" {
found = true
break
}
}
if !found {
t.Fatalf("%s not found in the archive", "root/.cpanm/work/1395823785.24209/Plack-1.0030/blib/man3/Plack::Middleware::LighttpdScriptNameFix.3pm")
}
}
func prepareUntarSourceDirectory(numberOfFiles int, targetPath string) (int, error) {
fileData := []byte("fooo")
for n := 0; n < numberOfFiles; n++ {
fileName := fmt.Sprintf("file-%d", n)
if err := ioutil.WriteFile(path.Join(targetPath, fileName), fileData, 0700); err != nil {
return 0, err
}
}
totalSize := numberOfFiles * len(fileData)
return totalSize, nil
}
func BenchmarkTarUntar(b *testing.B) {
origin, err := ioutil.TempDir("", "docker-test-untar-origin")
if err != nil {
b.Fatal(err)
}
tempDir, err := ioutil.TempDir("", "docker-test-untar-destination")
if err != nil {
b.Fatal(err)
}
target := path.Join(tempDir, "dest")
n, err := prepareUntarSourceDirectory(100, origin)
if err != nil {
b.Fatal(err)
}
b.ResetTimer()
b.SetBytes(int64(n))
defer os.RemoveAll(origin)
defer os.RemoveAll(tempDir)
for n := 0; n < b.N; n++ {
err := TarUntar(origin, target)
if err != nil {
b.Fatal(err)
}
os.RemoveAll(target)
}
}
-4
View File
@@ -1,4 +0,0 @@
package archive
const twBufSize = 32 * 1024
const trBufSize = 32 * 1024
+2
View File
@@ -0,0 +1,2 @@
Tibor Vass <teabee89@gmail.com> (@tiborvass)
Erik Hollensbe <github@hollensbe.org> (@erikh)
+377
View File
@@ -0,0 +1,377 @@
package builder
// This file contains the dispatchers for each command. Note that
// `nullDispatch` is not actually a command, but support for commands we parse
// but do nothing with.
//
// See evaluator.go for a higher level discussion of the whole evaluator
// package.
import (
"fmt"
"io/ioutil"
"path/filepath"
"regexp"
"strings"
log "github.com/Sirupsen/logrus"
"github.com/docker/docker/nat"
flag "github.com/docker/docker/pkg/mflag"
"github.com/docker/docker/runconfig"
)
// dispatch with no layer / parsing. This is effectively not a command.
func nullDispatch(b *Builder, args []string, attributes map[string]bool, original string) error {
return nil
}
// ENV foo bar
//
// Sets the environment variable foo to bar, also makes interpolation
// in the dockerfile available from the next statement on via ${foo}.
//
func env(b *Builder, args []string, attributes map[string]bool, original string) error {
if len(args) == 0 {
return fmt.Errorf("ENV is missing arguments")
}
if len(args)%2 != 0 {
// should never get here, but just in case
return fmt.Errorf("Bad input to ENV, too many args")
}
commitStr := "ENV"
for j := 0; j < len(args); j++ {
// name ==> args[j]
// value ==> args[j+1]
newVar := args[j] + "=" + args[j+1] + ""
commitStr += " " + newVar
gotOne := false
for i, envVar := range b.Config.Env {
envParts := strings.SplitN(envVar, "=", 2)
if envParts[0] == args[j] {
b.Config.Env[i] = newVar
gotOne = true
break
}
}
if !gotOne {
b.Config.Env = append(b.Config.Env, newVar)
}
j++
}
return b.commit("", b.Config.Cmd, commitStr)
}
// MAINTAINER some text <maybe@an.email.address>
//
// Sets the maintainer metadata.
func maintainer(b *Builder, args []string, attributes map[string]bool, original string) error {
if len(args) != 1 {
return fmt.Errorf("MAINTAINER requires only one argument")
}
b.maintainer = args[0]
return b.commit("", b.Config.Cmd, fmt.Sprintf("MAINTAINER %s", b.maintainer))
}
// ADD foo /path
//
// Add the file 'foo' to '/path'. Tarball and Remote URL (git, http) handling
// exist here. If you do not wish to have this automatic handling, use COPY.
//
func add(b *Builder, args []string, attributes map[string]bool, original string) error {
if len(args) < 2 {
return fmt.Errorf("ADD requires at least two arguments")
}
return b.runContextCommand(args, true, true, "ADD")
}
// COPY foo /path
//
// Same as 'ADD' but without the tar and remote url handling.
//
func dispatchCopy(b *Builder, args []string, attributes map[string]bool, original string) error {
if len(args) < 2 {
return fmt.Errorf("COPY requires at least two arguments")
}
return b.runContextCommand(args, false, false, "COPY")
}
// FROM imagename
//
// This sets the image the dockerfile will build on top of.
//
func from(b *Builder, args []string, attributes map[string]bool, original string) error {
if len(args) != 1 {
return fmt.Errorf("FROM requires one argument")
}
name := args[0]
image, err := b.Daemon.Repositories().LookupImage(name)
if b.Pull {
image, err = b.pullImage(name)
if err != nil {
return err
}
}
if err != nil {
if b.Daemon.Graph().IsNotExist(err) {
image, err = b.pullImage(name)
}
// note that the top level err will still be !nil here if IsNotExist is
// not the error. This approach just simplifies hte logic a bit.
if err != nil {
return err
}
}
return b.processImageFrom(image)
}
// ONBUILD RUN echo yo
//
// ONBUILD triggers run when the image is used in a FROM statement.
//
// ONBUILD handling has a lot of special-case functionality, the heading in
// evaluator.go and comments around dispatch() in the same file explain the
// special cases. search for 'OnBuild' in internals.go for additional special
// cases.
//
func onbuild(b *Builder, args []string, attributes map[string]bool, original string) error {
triggerInstruction := strings.ToUpper(strings.TrimSpace(args[0]))
switch triggerInstruction {
case "ONBUILD":
return fmt.Errorf("Chaining ONBUILD via `ONBUILD ONBUILD` isn't allowed")
case "MAINTAINER", "FROM":
return fmt.Errorf("%s isn't allowed as an ONBUILD trigger", triggerInstruction)
}
original = regexp.MustCompile(`(?i)^\s*ONBUILD\s*`).ReplaceAllString(original, "")
b.Config.OnBuild = append(b.Config.OnBuild, original)
return b.commit("", b.Config.Cmd, fmt.Sprintf("ONBUILD %s", original))
}
// WORKDIR /tmp
//
// Set the working directory for future RUN/CMD/etc statements.
//
func workdir(b *Builder, args []string, attributes map[string]bool, original string) error {
if len(args) != 1 {
return fmt.Errorf("WORKDIR requires exactly one argument")
}
workdir := args[0]
if workdir[0] == '/' {
b.Config.WorkingDir = workdir
} else {
if b.Config.WorkingDir == "" {
b.Config.WorkingDir = "/"
}
b.Config.WorkingDir = filepath.Join(b.Config.WorkingDir, workdir)
}
return b.commit("", b.Config.Cmd, fmt.Sprintf("WORKDIR %v", workdir))
}
// RUN some command yo
//
// run a command and commit the image. Args are automatically prepended with
// 'sh -c' in the event there is only one argument. The difference in
// processing:
//
// RUN echo hi # sh -c echo hi
// RUN [ "echo", "hi" ] # echo hi
//
func run(b *Builder, args []string, attributes map[string]bool, original string) error {
if b.image == "" {
return fmt.Errorf("Please provide a source image with `from` prior to run")
}
args = handleJsonArgs(args, attributes)
if len(args) == 1 {
args = append([]string{"/bin/sh", "-c"}, args[0])
}
runCmd := flag.NewFlagSet("run", flag.ContinueOnError)
runCmd.SetOutput(ioutil.Discard)
runCmd.Usage = nil
config, _, _, err := runconfig.Parse(runCmd, append([]string{b.image}, args...))
if err != nil {
return err
}
cmd := b.Config.Cmd
// set Cmd manually, this is special case only for Dockerfiles
b.Config.Cmd = config.Cmd
runconfig.Merge(b.Config, config)
defer func(cmd []string) { b.Config.Cmd = cmd }(cmd)
log.Debugf("[BUILDER] Command to be executed: %v", b.Config.Cmd)
hit, err := b.probeCache()
if err != nil {
return err
}
if hit {
return nil
}
c, err := b.create()
if err != nil {
return err
}
// Ensure that we keep the container mounted until the commit
// to avoid unmounting and then mounting directly again
c.Mount()
defer c.Unmount()
err = b.run(c)
if err != nil {
return err
}
if err := b.commit(c.ID, cmd, "run"); err != nil {
return err
}
return nil
}
// CMD foo
//
// Set the default command to run in the container (which may be empty).
// Argument handling is the same as RUN.
//
func cmd(b *Builder, args []string, attributes map[string]bool, original string) error {
b.Config.Cmd = handleJsonArgs(args, attributes)
if !attributes["json"] {
b.Config.Cmd = append([]string{"/bin/sh", "-c"}, b.Config.Cmd...)
}
if err := b.commit("", b.Config.Cmd, fmt.Sprintf("CMD %v", b.Config.Cmd)); err != nil {
return err
}
if len(args) != 0 {
b.cmdSet = true
}
return nil
}
// ENTRYPOINT /usr/sbin/nginx
//
// Set the entrypoint (which defaults to sh -c) to /usr/sbin/nginx. Will
// accept the CMD as the arguments to /usr/sbin/nginx.
//
// Handles command processing similar to CMD and RUN, only b.Config.Entrypoint
// is initialized at NewBuilder time instead of through argument parsing.
//
func entrypoint(b *Builder, args []string, attributes map[string]bool, original string) error {
parsed := handleJsonArgs(args, attributes)
switch {
case attributes["json"]:
// ENTRYPOINT ["echo", "hi"]
b.Config.Entrypoint = parsed
case len(parsed) == 0:
// ENTRYPOINT []
b.Config.Entrypoint = nil
default:
// ENTRYPOINT echo hi
b.Config.Entrypoint = []string{"/bin/sh", "-c", parsed[0]}
}
// when setting the entrypoint if a CMD was not explicitly set then
// set the command to nil
if !b.cmdSet {
b.Config.Cmd = nil
}
if err := b.commit("", b.Config.Cmd, fmt.Sprintf("ENTRYPOINT %v", b.Config.Entrypoint)); err != nil {
return err
}
return nil
}
// EXPOSE 6667/tcp 7000/tcp
//
// Expose ports for links and port mappings. This all ends up in
// b.Config.ExposedPorts for runconfig.
//
func expose(b *Builder, args []string, attributes map[string]bool, original string) error {
portsTab := args
if b.Config.ExposedPorts == nil {
b.Config.ExposedPorts = make(nat.PortSet)
}
ports, _, err := nat.ParsePortSpecs(append(portsTab, b.Config.PortSpecs...))
if err != nil {
return err
}
for port := range ports {
if _, exists := b.Config.ExposedPorts[port]; !exists {
b.Config.ExposedPorts[port] = struct{}{}
}
}
b.Config.PortSpecs = nil
return b.commit("", b.Config.Cmd, fmt.Sprintf("EXPOSE %v", ports))
}
// USER foo
//
// Set the user to 'foo' for future commands and when running the
// ENTRYPOINT/CMD at container run time.
//
func user(b *Builder, args []string, attributes map[string]bool, original string) error {
if len(args) != 1 {
return fmt.Errorf("USER requires exactly one argument")
}
b.Config.User = args[0]
return b.commit("", b.Config.Cmd, fmt.Sprintf("USER %v", args))
}
// VOLUME /foo
//
// Expose the volume /foo for use. Will also accept the JSON array form.
//
func volume(b *Builder, args []string, attributes map[string]bool, original string) error {
if len(args) == 0 {
return fmt.Errorf("Volume cannot be empty")
}
if b.Config.Volumes == nil {
b.Config.Volumes = map[string]struct{}{}
}
for _, v := range args {
b.Config.Volumes[v] = struct{}{}
}
if err := b.commit("", b.Config.Cmd, fmt.Sprintf("VOLUME %v", args)); err != nil {
return err
}
return nil
}
// INSERT is no longer accepted, but we still parse it.
func insert(b *Builder, args []string, attributes map[string]bool, original string) error {
return fmt.Errorf("INSERT has been deprecated. Please use ADD instead")
}
+237
View File
@@ -0,0 +1,237 @@
// builder is the evaluation step in the Dockerfile parse/evaluate pipeline.
//
// It incorporates a dispatch table based on the parser.Node values (see the
// parser package for more information) that are yielded from the parser itself.
// Calling NewBuilder with the BuildOpts struct can be used to customize the
// experience for execution purposes only. Parsing is controlled in the parser
// package, and this division of resposibility should be respected.
//
// Please see the jump table targets for the actual invocations, most of which
// will call out to the functions in internals.go to deal with their tasks.
//
// ONBUILD is a special case, which is covered in the onbuild() func in
// dispatchers.go.
//
// The evaluator uses the concept of "steps", which are usually each processable
// line in the Dockerfile. Each step is numbered and certain actions are taken
// before and after each step, such as creating an image ID and removing temporary
// containers and images. Note that ONBUILD creates a kinda-sorta "sub run" which
// includes its own set of steps (usually only one of them).
package builder
import (
"errors"
"fmt"
"io"
"os"
"path"
"strings"
log "github.com/Sirupsen/logrus"
"github.com/docker/docker/builder/parser"
"github.com/docker/docker/daemon"
"github.com/docker/docker/engine"
"github.com/docker/docker/pkg/tarsum"
"github.com/docker/docker/registry"
"github.com/docker/docker/runconfig"
"github.com/docker/docker/utils"
)
var (
ErrDockerfileEmpty = errors.New("Dockerfile cannot be empty")
)
// Environment variable interpolation will happen on these statements only.
var replaceEnvAllowed = map[string]struct{}{
"env": {},
"add": {},
"copy": {},
"workdir": {},
"expose": {},
"volume": {},
"user": {},
}
var evaluateTable map[string]func(*Builder, []string, map[string]bool, string) error
func init() {
evaluateTable = map[string]func(*Builder, []string, map[string]bool, string) error{
"env": env,
"maintainer": maintainer,
"add": add,
"copy": dispatchCopy, // copy() is a go builtin
"from": from,
"onbuild": onbuild,
"workdir": workdir,
"run": run,
"cmd": cmd,
"entrypoint": entrypoint,
"expose": expose,
"volume": volume,
"user": user,
"insert": insert,
}
}
// internal struct, used to maintain configuration of the Dockerfile's
// processing as it evaluates the parsing result.
type Builder struct {
Daemon *daemon.Daemon
Engine *engine.Engine
// effectively stdio for the run. Because it is not stdio, I said
// "Effectively". Do not use stdio anywhere in this package for any reason.
OutStream io.Writer
ErrStream io.Writer
Verbose bool
UtilizeCache bool
// controls how images and containers are handled between steps.
Remove bool
ForceRemove bool
Pull bool
AuthConfig *registry.AuthConfig
AuthConfigFile *registry.ConfigFile
// Deprecated, original writer used for ImagePull. To be removed.
OutOld io.Writer
StreamFormatter *utils.StreamFormatter
Config *runconfig.Config // runconfig for cmd, run, entrypoint etc.
// both of these are controlled by the Remove and ForceRemove options in BuildOpts
TmpContainers map[string]struct{} // a map of containers used for removes
dockerfile *parser.Node // the syntax tree of the dockerfile
image string // image name for commit processing
maintainer string // maintainer name. could probably be removed.
cmdSet bool // indicates is CMD was set in current Dockerfile
context tarsum.TarSum // the context is a tarball that is uploaded by the client
contextPath string // the path of the temporary directory the local context is unpacked to (server side)
}
// Run the builder with the context. This is the lynchpin of this package. This
// will (barring errors):
//
// * call readContext() which will set up the temporary directory and unpack
// the context into it.
// * read the dockerfile
// * parse the dockerfile
// * walk the parse tree and execute it by dispatching to handlers. If Remove
// or ForceRemove is set, additional cleanup around containers happens after
// processing.
// * Print a happy message and return the image ID.
//
func (b *Builder) Run(context io.Reader) (string, error) {
if err := b.readContext(context); err != nil {
return "", err
}
defer func() {
if err := os.RemoveAll(b.contextPath); err != nil {
log.Debugf("[BUILDER] failed to remove temporary context: %s", err)
}
}()
filename := path.Join(b.contextPath, "Dockerfile")
fi, err := os.Stat(filename)
if os.IsNotExist(err) {
return "", fmt.Errorf("Cannot build a directory without a Dockerfile")
}
if fi.Size() == 0 {
return "", ErrDockerfileEmpty
}
f, err := os.Open(filename)
if err != nil {
return "", err
}
defer f.Close()
ast, err := parser.Parse(f)
if err != nil {
return "", err
}
b.dockerfile = ast
// some initializations that would not have been supplied by the caller.
b.Config = &runconfig.Config{}
b.TmpContainers = map[string]struct{}{}
for i, n := range b.dockerfile.Children {
if err := b.dispatch(i, n); err != nil {
if b.ForceRemove {
b.clearTmp()
}
return "", err
}
fmt.Fprintf(b.OutStream, " ---> %s\n", utils.TruncateID(b.image))
if b.Remove {
b.clearTmp()
}
}
if b.image == "" {
return "", fmt.Errorf("No image was generated. Is your Dockerfile empty?\n")
}
fmt.Fprintf(b.OutStream, "Successfully built %s\n", utils.TruncateID(b.image))
return b.image, nil
}
// This method is the entrypoint to all statement handling routines.
//
// Almost all nodes will have this structure:
// Child[Node, Node, Node] where Child is from parser.Node.Children and each
// node comes from parser.Node.Next. This forms a "line" with a statement and
// arguments and we process them in this normalized form by hitting
// evaluateTable with the leaf nodes of the command and the Builder object.
//
// ONBUILD is a special case; in this case the parser will emit:
// Child[Node, Child[Node, Node...]] where the first node is the literal
// "onbuild" and the child entrypoint is the command of the ONBUILD statmeent,
// such as `RUN` in ONBUILD RUN foo. There is special case logic in here to
// deal with that, at least until it becomes more of a general concern with new
// features.
func (b *Builder) dispatch(stepN int, ast *parser.Node) error {
cmd := ast.Value
attrs := ast.Attributes
original := ast.Original
strs := []string{}
msg := fmt.Sprintf("Step %d : %s", stepN, strings.ToUpper(cmd))
if cmd == "onbuild" {
ast = ast.Next.Children[0]
strs = append(strs, ast.Value)
msg += " " + ast.Value
}
for ast.Next != nil {
ast = ast.Next
var str string
str = ast.Value
if _, ok := replaceEnvAllowed[cmd]; ok {
str = b.replaceEnv(ast.Value)
}
strs = append(strs, str)
msg += " " + ast.Value
}
fmt.Fprintln(b.OutStream, msg)
// XXX yes, we skip any cmds that are not valid; the parser should have
// picked these out already.
if f, ok := evaluateTable[cmd]; ok {
return f(b, strs, attrs, original)
}
fmt.Fprintf(b.ErrStream, "# Skipping unknown instruction %s\n", strings.ToUpper(cmd))
return nil
}
+705
View File
@@ -0,0 +1,705 @@
package builder
// internals for handling commands. Covers many areas and a lot of
// non-contiguous functionality. Please read the comments.
import (
"crypto/sha256"
"encoding/hex"
"fmt"
"io"
"io/ioutil"
"net/http"
"net/url"
"os"
"path"
"path/filepath"
"sort"
"strings"
"syscall"
"time"
log "github.com/Sirupsen/logrus"
"github.com/docker/docker/builder/parser"
"github.com/docker/docker/daemon"
imagepkg "github.com/docker/docker/image"
"github.com/docker/docker/pkg/archive"
"github.com/docker/docker/pkg/chrootarchive"
"github.com/docker/docker/pkg/parsers"
"github.com/docker/docker/pkg/symlink"
"github.com/docker/docker/pkg/system"
"github.com/docker/docker/pkg/tarsum"
"github.com/docker/docker/pkg/urlutil"
"github.com/docker/docker/registry"
"github.com/docker/docker/utils"
)
func (b *Builder) readContext(context io.Reader) error {
tmpdirPath, err := ioutil.TempDir("", "docker-build")
if err != nil {
return err
}
decompressedStream, err := archive.DecompressStream(context)
if err != nil {
return err
}
if b.context, err = tarsum.NewTarSum(decompressedStream, true, tarsum.Version0); err != nil {
return err
}
if err := chrootarchive.Untar(b.context, tmpdirPath, nil); err != nil {
return err
}
b.contextPath = tmpdirPath
return nil
}
func (b *Builder) commit(id string, autoCmd []string, comment string) error {
if b.image == "" {
return fmt.Errorf("Please provide a source image with `from` prior to commit")
}
b.Config.Image = b.image
if id == "" {
cmd := b.Config.Cmd
b.Config.Cmd = []string{"/bin/sh", "-c", "#(nop) " + comment}
defer func(cmd []string) { b.Config.Cmd = cmd }(cmd)
hit, err := b.probeCache()
if err != nil {
return err
}
if hit {
return nil
}
container, err := b.create()
if err != nil {
return err
}
id = container.ID
if err := container.Mount(); err != nil {
return err
}
defer container.Unmount()
}
container := b.Daemon.Get(id)
if container == nil {
return fmt.Errorf("An error occured while creating the container")
}
// Note: Actually copy the struct
autoConfig := *b.Config
autoConfig.Cmd = autoCmd
// Commit the container
image, err := b.Daemon.Commit(container, "", "", "", b.maintainer, true, &autoConfig)
if err != nil {
return err
}
b.image = image.ID
return nil
}
type copyInfo struct {
origPath string
destPath string
hash string
decompress bool
tmpDir string
}
func (b *Builder) runContextCommand(args []string, allowRemote bool, allowDecompression bool, cmdName string) error {
if b.context == nil {
return fmt.Errorf("No context given. Impossible to use %s", cmdName)
}
if len(args) < 2 {
return fmt.Errorf("Invalid %s format - at least two arguments required", cmdName)
}
dest := args[len(args)-1] // last one is always the dest
copyInfos := []*copyInfo{}
b.Config.Image = b.image
defer func() {
for _, ci := range copyInfos {
if ci.tmpDir != "" {
os.RemoveAll(ci.tmpDir)
}
}
}()
// Loop through each src file and calculate the info we need to
// do the copy (e.g. hash value if cached). Don't actually do
// the copy until we've looked at all src files
for _, orig := range args[0 : len(args)-1] {
err := calcCopyInfo(b, cmdName, &copyInfos, orig, dest, allowRemote, allowDecompression)
if err != nil {
return err
}
}
if len(copyInfos) == 0 {
return fmt.Errorf("No source files were specified")
}
if len(copyInfos) > 1 && !strings.HasSuffix(dest, "/") {
return fmt.Errorf("When using %s with more than one source file, the destination must be a directory and end with a /", cmdName)
}
// For backwards compat, if there's just one CI then use it as the
// cache look-up string, otherwise hash 'em all into one
var srcHash string
var origPaths string
if len(copyInfos) == 1 {
srcHash = copyInfos[0].hash
origPaths = copyInfos[0].origPath
} else {
var hashs []string
var origs []string
for _, ci := range copyInfos {
hashs = append(hashs, ci.hash)
origs = append(origs, ci.origPath)
}
hasher := sha256.New()
hasher.Write([]byte(strings.Join(hashs, ",")))
srcHash = "multi:" + hex.EncodeToString(hasher.Sum(nil))
origPaths = strings.Join(origs, " ")
}
cmd := b.Config.Cmd
b.Config.Cmd = []string{"/bin/sh", "-c", fmt.Sprintf("#(nop) %s %s in %s", cmdName, srcHash, dest)}
defer func(cmd []string) { b.Config.Cmd = cmd }(cmd)
hit, err := b.probeCache()
if err != nil {
return err
}
// If we do not have at least one hash, never use the cache
if hit && b.UtilizeCache {
return nil
}
container, _, err := b.Daemon.Create(b.Config, nil, "")
if err != nil {
return err
}
b.TmpContainers[container.ID] = struct{}{}
if err := container.Mount(); err != nil {
return err
}
defer container.Unmount()
for _, ci := range copyInfos {
if err := b.addContext(container, ci.origPath, ci.destPath, ci.decompress); err != nil {
return err
}
}
if err := b.commit(container.ID, cmd, fmt.Sprintf("%s %s in %s", cmdName, origPaths, dest)); err != nil {
return err
}
return nil
}
func calcCopyInfo(b *Builder, cmdName string, cInfos *[]*copyInfo, origPath string, destPath string, allowRemote bool, allowDecompression bool) error {
if origPath != "" && origPath[0] == '/' && len(origPath) > 1 {
origPath = origPath[1:]
}
origPath = strings.TrimPrefix(origPath, "./")
// In the remote/URL case, download it and gen its hashcode
if urlutil.IsURL(origPath) {
if !allowRemote {
return fmt.Errorf("Source can't be a URL for %s", cmdName)
}
ci := copyInfo{}
ci.origPath = origPath
ci.hash = origPath // default to this but can change
ci.destPath = destPath
ci.decompress = false
*cInfos = append(*cInfos, &ci)
// Initiate the download
resp, err := utils.Download(ci.origPath)
if err != nil {
return err
}
// Create a tmp dir
tmpDirName, err := ioutil.TempDir(b.contextPath, "docker-remote")
if err != nil {
return err
}
ci.tmpDir = tmpDirName
// Create a tmp file within our tmp dir
tmpFileName := path.Join(tmpDirName, "tmp")
tmpFile, err := os.OpenFile(tmpFileName, os.O_RDWR|os.O_CREATE|os.O_EXCL, 0600)
if err != nil {
return err
}
// Download and dump result to tmp file
if _, err := io.Copy(tmpFile, utils.ProgressReader(resp.Body, int(resp.ContentLength), b.OutOld, b.StreamFormatter, true, "", "Downloading")); err != nil {
tmpFile.Close()
return err
}
fmt.Fprintf(b.OutStream, "\n")
tmpFile.Close()
// Set the mtime to the Last-Modified header value if present
// Otherwise just remove atime and mtime
times := make([]syscall.Timespec, 2)
lastMod := resp.Header.Get("Last-Modified")
if lastMod != "" {
mTime, err := http.ParseTime(lastMod)
// If we can't parse it then just let it default to 'zero'
// otherwise use the parsed time value
if err == nil {
times[1] = syscall.NsecToTimespec(mTime.UnixNano())
}
}
if err := system.UtimesNano(tmpFileName, times); err != nil {
return err
}
ci.origPath = path.Join(filepath.Base(tmpDirName), filepath.Base(tmpFileName))
// If the destination is a directory, figure out the filename.
if strings.HasSuffix(ci.destPath, "/") {
u, err := url.Parse(origPath)
if err != nil {
return err
}
path := u.Path
if strings.HasSuffix(path, "/") {
path = path[:len(path)-1]
}
parts := strings.Split(path, "/")
filename := parts[len(parts)-1]
if filename == "" {
return fmt.Errorf("cannot determine filename from url: %s", u)
}
ci.destPath = ci.destPath + filename
}
// Calc the checksum, only if we're using the cache
if b.UtilizeCache {
r, err := archive.Tar(tmpFileName, archive.Uncompressed)
if err != nil {
return err
}
tarSum, err := tarsum.NewTarSum(r, true, tarsum.Version0)
if err != nil {
return err
}
if _, err := io.Copy(ioutil.Discard, tarSum); err != nil {
return err
}
ci.hash = tarSum.Sum(nil)
r.Close()
}
return nil
}
// Deal with wildcards
if ContainsWildcards(origPath) {
for _, fileInfo := range b.context.GetSums() {
if fileInfo.Name() == "" {
continue
}
match, _ := path.Match(origPath, fileInfo.Name())
if !match {
continue
}
calcCopyInfo(b, cmdName, cInfos, fileInfo.Name(), destPath, allowRemote, allowDecompression)
}
return nil
}
// Must be a dir or a file
if err := b.checkPathForAddition(origPath); err != nil {
return err
}
fi, _ := os.Stat(path.Join(b.contextPath, origPath))
ci := copyInfo{}
ci.origPath = origPath
ci.hash = origPath
ci.destPath = destPath
ci.decompress = allowDecompression
*cInfos = append(*cInfos, &ci)
// If not using cache don't need to do anything else.
// If we are using a cache then calc the hash for the src file/dir
if !b.UtilizeCache {
return nil
}
// Deal with the single file case
if !fi.IsDir() {
// This will match first file in sums of the archive
fis := b.context.GetSums().GetFile(ci.origPath)
if fis != nil {
ci.hash = "file:" + fis.Sum()
}
return nil
}
// Must be a dir
var subfiles []string
absOrigPath := path.Join(b.contextPath, ci.origPath)
// Add a trailing / to make sure we only pick up nested files under
// the dir and not sibling files of the dir that just happen to
// start with the same chars
if !strings.HasSuffix(absOrigPath, "/") {
absOrigPath += "/"
}
// Need path w/o / too to find matching dir w/o trailing /
absOrigPathNoSlash := absOrigPath[:len(absOrigPath)-1]
for _, fileInfo := range b.context.GetSums() {
absFile := path.Join(b.contextPath, fileInfo.Name())
if strings.HasPrefix(absFile, absOrigPath) || absFile == absOrigPathNoSlash {
subfiles = append(subfiles, fileInfo.Sum())
}
}
sort.Strings(subfiles)
hasher := sha256.New()
hasher.Write([]byte(strings.Join(subfiles, ",")))
ci.hash = "dir:" + hex.EncodeToString(hasher.Sum(nil))
return nil
}
func ContainsWildcards(name string) bool {
for i := 0; i < len(name); i++ {
ch := name[i]
if ch == '\\' {
i++
} else if ch == '*' || ch == '?' || ch == '[' {
return true
}
}
return false
}
func (b *Builder) pullImage(name string) (*imagepkg.Image, error) {
remote, tag := parsers.ParseRepositoryTag(name)
if tag == "" {
tag = "latest"
}
pullRegistryAuth := b.AuthConfig
if len(b.AuthConfigFile.Configs) > 0 {
// The request came with a full auth config file, we prefer to use that
endpoint, _, err := registry.ResolveRepositoryName(remote)
if err != nil {
return nil, err
}
resolvedAuth := b.AuthConfigFile.ResolveAuthConfig(endpoint)
pullRegistryAuth = &resolvedAuth
}
job := b.Engine.Job("pull", remote, tag)
job.SetenvBool("json", b.StreamFormatter.Json())
job.SetenvBool("parallel", true)
job.SetenvJson("authConfig", pullRegistryAuth)
job.Stdout.Add(b.OutOld)
if err := job.Run(); err != nil {
return nil, err
}
image, err := b.Daemon.Repositories().LookupImage(name)
if err != nil {
return nil, err
}
return image, nil
}
func (b *Builder) processImageFrom(img *imagepkg.Image) error {
b.image = img.ID
if img.Config != nil {
b.Config = img.Config
}
if len(b.Config.Env) == 0 {
b.Config.Env = append(b.Config.Env, "PATH="+daemon.DefaultPathEnv)
}
// Process ONBUILD triggers if they exist
if nTriggers := len(b.Config.OnBuild); nTriggers != 0 {
fmt.Fprintf(b.ErrStream, "# Executing %d build triggers\n", nTriggers)
}
// Copy the ONBUILD triggers, and remove them from the config, since the config will be commited.
onBuildTriggers := b.Config.OnBuild
b.Config.OnBuild = []string{}
// parse the ONBUILD triggers by invoking the parser
for stepN, step := range onBuildTriggers {
ast, err := parser.Parse(strings.NewReader(step))
if err != nil {
return err
}
for i, n := range ast.Children {
switch strings.ToUpper(n.Value) {
case "ONBUILD":
return fmt.Errorf("Chaining ONBUILD via `ONBUILD ONBUILD` isn't allowed")
case "MAINTAINER", "FROM":
return fmt.Errorf("%s isn't allowed as an ONBUILD trigger", n.Value)
}
fmt.Fprintf(b.OutStream, "Trigger %d, %s\n", stepN, step)
if err := b.dispatch(i, n); err != nil {
return err
}
}
}
return nil
}
// probeCache checks to see if image-caching is enabled (`b.UtilizeCache`)
// and if so attempts to look up the current `b.image` and `b.Config` pair
// in the current server `b.Daemon`. If an image is found, probeCache returns
// `(true, nil)`. If no image is found, it returns `(false, nil)`. If there
// is any error, it returns `(false, err)`.
func (b *Builder) probeCache() (bool, error) {
if b.UtilizeCache {
if cache, err := b.Daemon.ImageGetCached(b.image, b.Config); err != nil {
return false, err
} else if cache != nil {
fmt.Fprintf(b.OutStream, " ---> Using cache\n")
log.Debugf("[BUILDER] Use cached version")
b.image = cache.ID
return true, nil
} else {
log.Debugf("[BUILDER] Cache miss")
}
}
return false, nil
}
func (b *Builder) create() (*daemon.Container, error) {
if b.image == "" {
return nil, fmt.Errorf("Please provide a source image with `from` prior to run")
}
b.Config.Image = b.image
config := *b.Config
// Create the container
c, warnings, err := b.Daemon.Create(b.Config, nil, "")
if err != nil {
return nil, err
}
for _, warning := range warnings {
fmt.Fprintf(b.OutStream, " ---> [Warning] %s\n", warning)
}
b.TmpContainers[c.ID] = struct{}{}
fmt.Fprintf(b.OutStream, " ---> Running in %s\n", utils.TruncateID(c.ID))
// override the entry point that may have been picked up from the base image
c.Path = config.Cmd[0]
c.Args = config.Cmd[1:]
return c, nil
}
func (b *Builder) run(c *daemon.Container) error {
//start the container
if err := c.Start(); err != nil {
return err
}
if b.Verbose {
logsJob := b.Engine.Job("logs", c.ID)
logsJob.Setenv("follow", "1")
logsJob.Setenv("stdout", "1")
logsJob.Setenv("stderr", "1")
logsJob.Stdout.Add(b.OutStream)
logsJob.Stderr.Set(b.ErrStream)
if err := logsJob.Run(); err != nil {
return err
}
}
// Wait for it to finish
if ret, _ := c.WaitStop(-1 * time.Second); ret != 0 {
err := &utils.JSONError{
Message: fmt.Sprintf("The command %v returned a non-zero code: %d", b.Config.Cmd, ret),
Code: ret,
}
return err
}
return nil
}
func (b *Builder) checkPathForAddition(orig string) error {
origPath := path.Join(b.contextPath, orig)
origPath, err := filepath.EvalSymlinks(origPath)
if err != nil {
if os.IsNotExist(err) {
return fmt.Errorf("%s: no such file or directory", orig)
}
return err
}
if !strings.HasPrefix(origPath, b.contextPath) {
return fmt.Errorf("Forbidden path outside the build context: %s (%s)", orig, origPath)
}
if _, err := os.Stat(origPath); err != nil {
if os.IsNotExist(err) {
return fmt.Errorf("%s: no such file or directory", orig)
}
return err
}
return nil
}
func (b *Builder) addContext(container *daemon.Container, orig, dest string, decompress bool) error {
var (
err error
destExists = true
origPath = path.Join(b.contextPath, orig)
destPath = path.Join(container.RootfsPath(), dest)
)
if destPath != container.RootfsPath() {
destPath, err = symlink.FollowSymlinkInScope(destPath, container.RootfsPath())
if err != nil {
return err
}
}
// Preserve the trailing '/'
if strings.HasSuffix(dest, "/") || dest == "." {
destPath = destPath + "/"
}
destStat, err := os.Stat(destPath)
if err != nil {
if !os.IsNotExist(err) {
return err
}
destExists = false
}
fi, err := os.Stat(origPath)
if err != nil {
if os.IsNotExist(err) {
return fmt.Errorf("%s: no such file or directory", orig)
}
return err
}
if fi.IsDir() {
return copyAsDirectory(origPath, destPath, destExists)
}
// If we are adding a remote file (or we've been told not to decompress), do not try to untar it
if decompress {
// First try to unpack the source as an archive
// to support the untar feature we need to clean up the path a little bit
// because tar is very forgiving. First we need to strip off the archive's
// filename from the path but this is only added if it does not end in / .
tarDest := destPath
if strings.HasSuffix(tarDest, "/") {
tarDest = filepath.Dir(destPath)
}
// try to successfully untar the orig
if err := chrootarchive.UntarPath(origPath, tarDest); err == nil {
return nil
} else if err != io.EOF {
log.Debugf("Couldn't untar %s to %s: %s", origPath, tarDest, err)
}
}
if err := os.MkdirAll(path.Dir(destPath), 0755); err != nil {
return err
}
if err := chrootarchive.CopyWithTar(origPath, destPath); err != nil {
return err
}
resPath := destPath
if destExists && destStat.IsDir() {
resPath = path.Join(destPath, path.Base(origPath))
}
return fixPermissions(origPath, resPath, 0, 0, destExists)
}
func copyAsDirectory(source, destination string, destExisted bool) error {
if err := chrootarchive.CopyWithTar(source, destination); err != nil {
return err
}
return fixPermissions(source, destination, 0, 0, destExisted)
}
func fixPermissions(source, destination string, uid, gid int, destExisted bool) error {
// If the destination didn't already exist, or the destination isn't a
// directory, then we should Lchown the destination. Otherwise, we shouldn't
// Lchown the destination.
destStat, err := os.Stat(destination)
if err != nil {
// This should *never* be reached, because the destination must've already
// been created while untar-ing the context.
return err
}
doChownDestination := !destExisted || !destStat.IsDir()
// We Walk on the source rather than on the destination because we don't
// want to change permissions on things we haven't created or modified.
return filepath.Walk(source, func(fullpath string, info os.FileInfo, err error) error {
// Do not alter the walk root iff. it existed before, as it doesn't fall under
// the domain of "things we should chown".
if !doChownDestination && (source == fullpath) {
return nil
}
// Path is prefixed by source: substitute with destination instead.
cleaned, err := filepath.Rel(source, fullpath)
if err != nil {
return err
}
fullpath = path.Join(destination, cleaned)
return os.Lchown(fullpath, uid, gid)
})
}
func (b *Builder) clearTmp() {
for c := range b.TmpContainers {
tmp := b.Daemon.Get(c)
if err := b.Daemon.Destroy(tmp); err != nil {
fmt.Fprintf(b.OutStream, "Error removing intermediate container %s: %s\n", utils.TruncateID(c), err.Error())
return
}
b.Daemon.DeleteVolumes(tmp.VolumePaths())
delete(b.TmpContainers, c)
fmt.Fprintf(b.OutStream, "Removing intermediate container %s\n", utils.TruncateID(c))
}
}
+132
View File
@@ -0,0 +1,132 @@
package builder
import (
"io"
"io/ioutil"
"os"
"os/exec"
"github.com/docker/docker/daemon"
"github.com/docker/docker/engine"
"github.com/docker/docker/graph"
"github.com/docker/docker/pkg/archive"
"github.com/docker/docker/pkg/parsers"
"github.com/docker/docker/pkg/urlutil"
"github.com/docker/docker/registry"
"github.com/docker/docker/utils"
)
type BuilderJob struct {
Engine *engine.Engine
Daemon *daemon.Daemon
}
func (b *BuilderJob) Install() {
b.Engine.Register("build", b.CmdBuild)
}
func (b *BuilderJob) CmdBuild(job *engine.Job) engine.Status {
if len(job.Args) != 0 {
return job.Errorf("Usage: %s\n", job.Name)
}
var (
remoteURL = job.Getenv("remote")
repoName = job.Getenv("t")
suppressOutput = job.GetenvBool("q")
noCache = job.GetenvBool("nocache")
rm = job.GetenvBool("rm")
forceRm = job.GetenvBool("forcerm")
pull = job.GetenvBool("pull")
authConfig = &registry.AuthConfig{}
configFile = &registry.ConfigFile{}
tag string
context io.ReadCloser
)
job.GetenvJson("authConfig", authConfig)
job.GetenvJson("configFile", configFile)
repoName, tag = parsers.ParseRepositoryTag(repoName)
if repoName != "" {
if _, _, err := registry.ResolveRepositoryName(repoName); err != nil {
return job.Error(err)
}
if len(tag) > 0 {
if err := graph.ValidateTagName(tag); err != nil {
return job.Error(err)
}
}
}
if remoteURL == "" {
context = ioutil.NopCloser(job.Stdin)
} else if urlutil.IsGitURL(remoteURL) {
if !urlutil.IsGitTransport(remoteURL) {
remoteURL = "https://" + remoteURL
}
root, err := ioutil.TempDir("", "docker-build-git")
if err != nil {
return job.Error(err)
}
defer os.RemoveAll(root)
if output, err := exec.Command("git", "clone", "--recursive", remoteURL, root).CombinedOutput(); err != nil {
return job.Errorf("Error trying to use git: %s (%s)", err, output)
}
c, err := archive.Tar(root, archive.Uncompressed)
if err != nil {
return job.Error(err)
}
context = c
} else if urlutil.IsURL(remoteURL) {
f, err := utils.Download(remoteURL)
if err != nil {
return job.Error(err)
}
defer f.Body.Close()
dockerFile, err := ioutil.ReadAll(f.Body)
if err != nil {
return job.Error(err)
}
c, err := archive.Generate("Dockerfile", string(dockerFile))
if err != nil {
return job.Error(err)
}
context = c
}
defer context.Close()
sf := utils.NewStreamFormatter(job.GetenvBool("json"))
builder := &Builder{
Daemon: b.Daemon,
Engine: b.Engine,
OutStream: &utils.StdoutFormater{
Writer: job.Stdout,
StreamFormatter: sf,
},
ErrStream: &utils.StderrFormater{
Writer: job.Stdout,
StreamFormatter: sf,
},
Verbose: !suppressOutput,
UtilizeCache: !noCache,
Remove: rm,
ForceRemove: forceRm,
Pull: pull,
OutOld: job.Stdout,
StreamFormatter: sf,
AuthConfig: authConfig,
AuthConfigFile: configFile,
}
id, err := builder.Run(context)
if err != nil {
return job.Error(err)
}
if repoName != "" {
b.Daemon.Repositories().Set(repoName, tag, id, true)
}
return engine.StatusOK
}
+32
View File
@@ -0,0 +1,32 @@
package main
import (
"fmt"
"os"
"github.com/docker/docker/builder/parser"
)
func main() {
var f *os.File
var err error
if len(os.Args) < 2 {
fmt.Println("please supply filename(s)")
os.Exit(1)
}
for _, fn := range os.Args[1:] {
f, err = os.Open(fn)
if err != nil {
panic(err)
}
ast, err := parser.Parse(f)
if err != nil {
panic(err)
} else {
fmt.Println(ast.Dump())
}
}
}
+278
View File
@@ -0,0 +1,278 @@
package parser
// line parsers are dispatch calls that parse a single unit of text into a
// Node object which contains the whole statement. Dockerfiles have varied
// (but not usually unique, see ONBUILD for a unique example) parsing rules
// per-command, and these unify the processing in a way that makes it
// manageable.
import (
"encoding/json"
"errors"
"fmt"
"strconv"
"strings"
"unicode"
)
var (
errDockerfileJSONNesting = errors.New("You may not nest arrays in Dockerfile statements.")
)
// ignore the current argument. This will still leave a command parsed, but
// will not incorporate the arguments into the ast.
func parseIgnore(rest string) (*Node, map[string]bool, error) {
return &Node{}, nil, nil
}
// used for onbuild. Could potentially be used for anything that represents a
// statement with sub-statements.
//
// ONBUILD RUN foo bar -> (onbuild (run foo bar))
//
func parseSubCommand(rest string) (*Node, map[string]bool, error) {
_, child, err := parseLine(rest)
if err != nil {
return nil, nil, err
}
return &Node{Children: []*Node{child}}, nil, nil
}
// parse environment like statements. Note that this does *not* handle
// variable interpolation, which will be handled in the evaluator.
func parseEnv(rest string) (*Node, map[string]bool, error) {
// This is kind of tricky because we need to support the old
// variant: ENV name value
// as well as the new one: ENV name=value ...
// The trigger to know which one is being used will be whether we hit
// a space or = first. space ==> old, "=" ==> new
const (
inSpaces = iota // looking for start of a word
inWord
inQuote
)
words := []string{}
phase := inSpaces
word := ""
quote := '\000'
blankOK := false
var ch rune
for pos := 0; pos <= len(rest); pos++ {
if pos != len(rest) {
ch = rune(rest[pos])
}
if phase == inSpaces { // Looking for start of word
if pos == len(rest) { // end of input
break
}
if unicode.IsSpace(ch) { // skip spaces
continue
}
phase = inWord // found it, fall thru
}
if (phase == inWord || phase == inQuote) && (pos == len(rest)) {
if blankOK || len(word) > 0 {
words = append(words, word)
}
break
}
if phase == inWord {
if unicode.IsSpace(ch) {
phase = inSpaces
if blankOK || len(word) > 0 {
words = append(words, word)
// Look for = and if no there assume
// we're doing the old stuff and
// just read the rest of the line
if !strings.Contains(word, "=") {
word = strings.TrimSpace(rest[pos:])
words = append(words, word)
break
}
}
word = ""
blankOK = false
continue
}
if ch == '\'' || ch == '"' {
quote = ch
blankOK = true
phase = inQuote
continue
}
if ch == '\\' {
if pos+1 == len(rest) {
continue // just skip \ at end
}
pos++
ch = rune(rest[pos])
}
word += string(ch)
continue
}
if phase == inQuote {
if ch == quote {
phase = inWord
continue
}
if ch == '\\' {
if pos+1 == len(rest) {
phase = inWord
continue // just skip \ at end
}
pos++
ch = rune(rest[pos])
}
word += string(ch)
}
}
if len(words) == 0 {
return nil, nil, fmt.Errorf("ENV must have some arguments")
}
// Old format (ENV name value)
var rootnode *Node
if !strings.Contains(words[0], "=") {
node := &Node{}
rootnode = node
strs := TOKEN_WHITESPACE.Split(rest, 2)
if len(strs) < 2 {
return nil, nil, fmt.Errorf("ENV must have two arguments")
}
node.Value = strs[0]
node.Next = &Node{}
node.Next.Value = strs[1]
} else {
var prevNode *Node
for i, word := range words {
if !strings.Contains(word, "=") {
return nil, nil, fmt.Errorf("Syntax error - can't find = in %q. Must be of the form: name=value", word)
}
parts := strings.SplitN(word, "=", 2)
name := &Node{}
value := &Node{}
name.Next = value
name.Value = parts[0]
value.Value = parts[1]
if i == 0 {
rootnode = name
} else {
prevNode.Next = name
}
prevNode = value
}
}
return rootnode, nil, nil
}
// parses a whitespace-delimited set of arguments. The result is effectively a
// linked list of string arguments.
func parseStringsWhitespaceDelimited(rest string) (*Node, map[string]bool, error) {
node := &Node{}
rootnode := node
prevnode := node
for _, str := range TOKEN_WHITESPACE.Split(rest, -1) { // use regexp
prevnode = node
node.Value = str
node.Next = &Node{}
node = node.Next
}
// XXX to get around regexp.Split *always* providing an empty string at the
// end due to how our loop is constructed, nil out the last node in the
// chain.
prevnode.Next = nil
return rootnode, nil, nil
}
// parsestring just wraps the string in quotes and returns a working node.
func parseString(rest string) (*Node, map[string]bool, error) {
n := &Node{}
n.Value = rest
return n, nil, nil
}
// parseJSON converts JSON arrays to an AST.
func parseJSON(rest string) (*Node, map[string]bool, error) {
var (
myJson []interface{}
next = &Node{}
orignext = next
prevnode = next
)
if err := json.Unmarshal([]byte(rest), &myJson); err != nil {
return nil, nil, err
}
for _, str := range myJson {
switch str.(type) {
case string:
case float64:
str = strconv.FormatFloat(str.(float64), 'G', -1, 64)
default:
return nil, nil, errDockerfileJSONNesting
}
next.Value = str.(string)
next.Next = &Node{}
prevnode = next
next = next.Next
}
prevnode.Next = nil
return orignext, map[string]bool{"json": true}, nil
}
// parseMaybeJSON determines if the argument appears to be a JSON array. If
// so, passes to parseJSON; if not, quotes the result and returns a single
// node.
func parseMaybeJSON(rest string) (*Node, map[string]bool, error) {
rest = strings.TrimSpace(rest)
node, attrs, err := parseJSON(rest)
if err == nil {
return node, attrs, nil
}
if err == errDockerfileJSONNesting {
return nil, nil, err
}
node = &Node{}
node.Value = rest
return node, nil, nil
}
// parseMaybeJSONToList determines if the argument appears to be a JSON array. If
// so, passes to parseJSON; if not, attmpts to parse it as a whitespace
// delimited string.
func parseMaybeJSONToList(rest string) (*Node, map[string]bool, error) {
rest = strings.TrimSpace(rest)
node, attrs, err := parseJSON(rest)
if err == nil {
return node, attrs, nil
}
if err == errDockerfileJSONNesting {
return nil, nil, err
}
return parseStringsWhitespaceDelimited(rest)
}
+142
View File
@@ -0,0 +1,142 @@
// This package implements a parser and parse tree dumper for Dockerfiles.
package parser
import (
"bufio"
"io"
"regexp"
"strings"
"unicode"
)
// Node is a structure used to represent a parse tree.
//
// In the node there are three fields, Value, Next, and Children. Value is the
// current token's string value. Next is always the next non-child token, and
// children contains all the children. Here's an example:
//
// (value next (child child-next child-next-next) next-next)
//
// This data structure is frankly pretty lousy for handling complex languages,
// but lucky for us the Dockerfile isn't very complicated. This structure
// works a little more effectively than a "proper" parse tree for our needs.
//
type Node struct {
Value string // actual content
Next *Node // the next item in the current sexp
Children []*Node // the children of this sexp
Attributes map[string]bool // special attributes for this node
Original string // original line used before parsing
}
var (
dispatch map[string]func(string) (*Node, map[string]bool, error)
TOKEN_WHITESPACE = regexp.MustCompile(`[\t\v\f\r ]+`)
TOKEN_LINE_CONTINUATION = regexp.MustCompile(`\\\s*$`)
TOKEN_COMMENT = regexp.MustCompile(`^#.*$`)
)
func init() {
// Dispatch Table. see line_parsers.go for the parse functions.
// The command is parsed and mapped to the line parser. The line parser
// recieves the arguments but not the command, and returns an AST after
// reformulating the arguments according to the rules in the parser
// functions. Errors are propogated up by Parse() and the resulting AST can
// be incorporated directly into the existing AST as a next.
dispatch = map[string]func(string) (*Node, map[string]bool, error){
"user": parseString,
"onbuild": parseSubCommand,
"workdir": parseString,
"env": parseEnv,
"maintainer": parseString,
"from": parseString,
"add": parseStringsWhitespaceDelimited,
"copy": parseStringsWhitespaceDelimited,
"run": parseMaybeJSON,
"cmd": parseMaybeJSON,
"entrypoint": parseMaybeJSON,
"expose": parseStringsWhitespaceDelimited,
"volume": parseMaybeJSONToList,
"insert": parseIgnore,
}
}
// parse a line and return the remainder.
func parseLine(line string) (string, *Node, error) {
if line = stripComments(line); line == "" {
return "", nil, nil
}
if TOKEN_LINE_CONTINUATION.MatchString(line) {
line = TOKEN_LINE_CONTINUATION.ReplaceAllString(line, "")
return line, nil, nil
}
cmd, args, err := splitCommand(line)
if err != nil {
return "", nil, err
}
node := &Node{}
node.Value = cmd
sexp, attrs, err := fullDispatch(cmd, args)
if err != nil {
return "", nil, err
}
if sexp.Value != "" || sexp.Next != nil || sexp.Children != nil {
node.Next = sexp
}
node.Attributes = attrs
node.Original = line
return "", node, nil
}
// The main parse routine. Handles an io.ReadWriteCloser and returns the root
// of the AST.
func Parse(rwc io.Reader) (*Node, error) {
root := &Node{}
scanner := bufio.NewScanner(rwc)
for scanner.Scan() {
scannedLine := strings.TrimLeftFunc(scanner.Text(), unicode.IsSpace)
line, child, err := parseLine(scannedLine)
if err != nil {
return nil, err
}
if line != "" && child == nil {
for scanner.Scan() {
newline := scanner.Text()
if stripComments(strings.TrimSpace(newline)) == "" {
continue
}
line, child, err = parseLine(line + newline)
if err != nil {
return nil, err
}
if child != nil {
break
}
}
if child == nil && line != "" {
line, child, err = parseLine(line)
if err != nil {
return nil, err
}
}
}
if child != nil {
root.Children = append(root.Children, child)
}
}
return root, nil
}
+82
View File
@@ -0,0 +1,82 @@
package parser
import (
"fmt"
"io/ioutil"
"os"
"path/filepath"
"testing"
)
const testDir = "testfiles"
const negativeTestDir = "testfiles-negative"
func getDirs(t *testing.T, dir string) []os.FileInfo {
f, err := os.Open(dir)
if err != nil {
t.Fatal(err)
}
defer f.Close()
dirs, err := f.Readdir(0)
if err != nil {
t.Fatal(err)
}
return dirs
}
func TestTestNegative(t *testing.T) {
for _, dir := range getDirs(t, negativeTestDir) {
dockerfile := filepath.Join(negativeTestDir, dir.Name(), "Dockerfile")
df, err := os.Open(dockerfile)
if err != nil {
t.Fatalf("Dockerfile missing for %s: %s", dir.Name(), err.Error())
}
_, err = Parse(df)
if err == nil {
t.Fatalf("No error parsing broken dockerfile for %s", dir.Name())
}
df.Close()
}
}
func TestTestData(t *testing.T) {
for _, dir := range getDirs(t, testDir) {
dockerfile := filepath.Join(testDir, dir.Name(), "Dockerfile")
resultfile := filepath.Join(testDir, dir.Name(), "result")
df, err := os.Open(dockerfile)
if err != nil {
t.Fatalf("Dockerfile missing for %s: %s", dir.Name(), err.Error())
}
rf, err := os.Open(resultfile)
if err != nil {
t.Fatalf("Result file missing for %s: %s", dir.Name(), err.Error())
}
ast, err := Parse(df)
if err != nil {
t.Fatalf("Error parsing %s's dockerfile: %s", dir.Name(), err.Error())
}
content, err := ioutil.ReadAll(rf)
if err != nil {
t.Fatalf("Error reading %s's result file: %s", dir.Name(), err.Error())
}
if ast.Dump()+"\n" != string(content) {
fmt.Fprintln(os.Stderr, "Result:\n"+ast.Dump())
fmt.Fprintln(os.Stderr, "Expected:\n"+string(content))
t.Fatalf("%s: AST dump of dockerfile does not match result", dir.Name())
}
df.Close()
rf.Close()
}
}
@@ -0,0 +1,2 @@
<html>
</html>
@@ -0,0 +1 @@
CMD [ "echo", [ "nested json" ] ]
@@ -0,0 +1,25 @@
FROM brimstone/ubuntu:14.04
MAINTAINER brimstone@the.narro.ws
# TORUN -v /var/run/docker.sock:/var/run/docker.sock
ENV GOPATH /go
# Set our command
ENTRYPOINT ["/usr/local/bin/consuldock"]
# Install the packages we need, clean up after them and us
RUN apt-get update \
&& dpkg -l | awk '/^ii/ {print $2}' > /tmp/dpkg.clean \
&& apt-get install -y --no-install-recommends git golang ca-certificates \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists \
&& go get -v github.com/brimstone/consuldock \
&& mv $GOPATH/bin/consuldock /usr/local/bin/consuldock \
&& dpkg -l | awk '/^ii/ {print $2}' > /tmp/dpkg.dirty \
&& apt-get remove --purge -y $(diff /tmp/dpkg.clean /tmp/dpkg.dirty | awk '/^>/ {print $2}') \
&& rm /tmp/dpkg.* \
&& rm -rf $GOPATH
@@ -0,0 +1,5 @@
(from "brimstone/ubuntu:14.04")
(maintainer "brimstone@the.narro.ws")
(env "GOPATH" "/go")
(entrypoint "/usr/local/bin/consuldock")
(run "apt-get update && dpkg -l | awk '/^ii/ {print $2}' > /tmp/dpkg.clean && apt-get install -y --no-install-recommends git golang ca-certificates && apt-get clean && rm -rf /var/lib/apt/lists && go get -v github.com/brimstone/consuldock && mv $GOPATH/bin/consuldock /usr/local/bin/consuldock && dpkg -l | awk '/^ii/ {print $2}' > /tmp/dpkg.dirty && apt-get remove --purge -y $(diff /tmp/dpkg.clean /tmp/dpkg.dirty | awk '/^>/ {print $2}') && rm /tmp/dpkg.* && rm -rf $GOPATH")
@@ -0,0 +1,52 @@
FROM brimstone/ubuntu:14.04
CMD []
ENTRYPOINT ["/usr/bin/consul", "agent", "-server", "-data-dir=/consul", "-client=0.0.0.0", "-ui-dir=/webui"]
EXPOSE 8500 8600 8400 8301 8302
RUN apt-get update \
&& apt-get install -y unzip wget \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists
RUN cd /tmp \
&& wget https://dl.bintray.com/mitchellh/consul/0.3.1_web_ui.zip \
-O web_ui.zip \
&& unzip web_ui.zip \
&& mv dist /webui \
&& rm web_ui.zip
RUN apt-get update \
&& dpkg -l | awk '/^ii/ {print $2}' > /tmp/dpkg.clean \
&& apt-get install -y --no-install-recommends unzip wget \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists \
&& cd /tmp \
&& wget https://dl.bintray.com/mitchellh/consul/0.3.1_web_ui.zip \
-O web_ui.zip \
&& unzip web_ui.zip \
&& mv dist /webui \
&& rm web_ui.zip \
&& dpkg -l | awk '/^ii/ {print $2}' > /tmp/dpkg.dirty \
&& apt-get remove --purge -y $(diff /tmp/dpkg.clean /tmp/dpkg.dirty | awk '/^>/ {print $2}') \
&& rm /tmp/dpkg.*
ENV GOPATH /go
RUN apt-get update \
&& dpkg -l | awk '/^ii/ {print $2}' > /tmp/dpkg.clean \
&& apt-get install -y --no-install-recommends git golang ca-certificates build-essential \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists \
&& go get -v github.com/hashicorp/consul \
&& mv $GOPATH/bin/consul /usr/bin/consul \
&& dpkg -l | awk '/^ii/ {print $2}' > /tmp/dpkg.dirty \
&& apt-get remove --purge -y $(diff /tmp/dpkg.clean /tmp/dpkg.dirty | awk '/^>/ {print $2}') \
&& rm /tmp/dpkg.* \
&& rm -rf $GOPATH
@@ -0,0 +1,9 @@
(from "brimstone/ubuntu:14.04")
(cmd)
(entrypoint "/usr/bin/consul" "agent" "-server" "-data-dir=/consul" "-client=0.0.0.0" "-ui-dir=/webui")
(expose "8500" "8600" "8400" "8301" "8302")
(run "apt-get update && apt-get install -y unzip wget && apt-get clean && rm -rf /var/lib/apt/lists")
(run "cd /tmp && wget https://dl.bintray.com/mitchellh/consul/0.3.1_web_ui.zip -O web_ui.zip && unzip web_ui.zip && mv dist /webui && rm web_ui.zip")
(run "apt-get update && dpkg -l | awk '/^ii/ {print $2}' > /tmp/dpkg.clean && apt-get install -y --no-install-recommends unzip wget && apt-get clean && rm -rf /var/lib/apt/lists && cd /tmp && wget https://dl.bintray.com/mitchellh/consul/0.3.1_web_ui.zip -O web_ui.zip && unzip web_ui.zip && mv dist /webui && rm web_ui.zip && dpkg -l | awk '/^ii/ {print $2}' > /tmp/dpkg.dirty && apt-get remove --purge -y $(diff /tmp/dpkg.clean /tmp/dpkg.dirty | awk '/^>/ {print $2}') && rm /tmp/dpkg.*")
(env "GOPATH" "/go")
(run "apt-get update && dpkg -l | awk '/^ii/ {print $2}' > /tmp/dpkg.clean && apt-get install -y --no-install-recommends git golang ca-certificates build-essential && apt-get clean && rm -rf /var/lib/apt/lists && go get -v github.com/hashicorp/consul && mv $GOPATH/bin/consul /usr/bin/consul && dpkg -l | awk '/^ii/ {print $2}' > /tmp/dpkg.dirty && apt-get remove --purge -y $(diff /tmp/dpkg.clean /tmp/dpkg.dirty | awk '/^>/ {print $2}') && rm /tmp/dpkg.* && rm -rf $GOPATH")
@@ -0,0 +1,36 @@
FROM ubuntu:14.04
RUN echo hello\
world\
goodnight \
moon\
light\
ning
RUN echo hello \
world
RUN echo hello \
world
RUN echo hello \
goodbye\
frog
RUN echo hello \
world
RUN echo hi \
\
world \
\
good\
\
night
RUN echo goodbye\
frog
RUN echo good\
bye\
frog
RUN echo hello \
# this is a comment
# this is a comment with a blank line surrounding it
this is some more useful stuff
@@ -0,0 +1,10 @@
(from "ubuntu:14.04")
(run "echo hello world goodnight moon lightning")
(run "echo hello world")
(run "echo hello world")
(run "echo hello goodbyefrog")
(run "echo hello world")
(run "echo hi world goodnight")
(run "echo goodbyefrog")
(run "echo goodbyefrog")
(run "echo hello this is some more useful stuff")
@@ -0,0 +1,54 @@
FROM cpuguy83/ubuntu
ENV NAGIOS_HOME /opt/nagios
ENV NAGIOS_USER nagios
ENV NAGIOS_GROUP nagios
ENV NAGIOS_CMDUSER nagios
ENV NAGIOS_CMDGROUP nagios
ENV NAGIOSADMIN_USER nagiosadmin
ENV NAGIOSADMIN_PASS nagios
ENV APACHE_RUN_USER nagios
ENV APACHE_RUN_GROUP nagios
ENV NAGIOS_TIMEZONE UTC
RUN sed -i 's/universe/universe multiverse/' /etc/apt/sources.list
RUN apt-get update && apt-get install -y iputils-ping netcat build-essential snmp snmpd snmp-mibs-downloader php5-cli apache2 libapache2-mod-php5 runit bc postfix bsd-mailx
RUN ( egrep -i "^${NAGIOS_GROUP}" /etc/group || groupadd $NAGIOS_GROUP ) && ( egrep -i "^${NAGIOS_CMDGROUP}" /etc/group || groupadd $NAGIOS_CMDGROUP )
RUN ( id -u $NAGIOS_USER || useradd --system $NAGIOS_USER -g $NAGIOS_GROUP -d $NAGIOS_HOME ) && ( id -u $NAGIOS_CMDUSER || useradd --system -d $NAGIOS_HOME -g $NAGIOS_CMDGROUP $NAGIOS_CMDUSER )
ADD http://downloads.sourceforge.net/project/nagios/nagios-3.x/nagios-3.5.1/nagios-3.5.1.tar.gz?r=http%3A%2F%2Fwww.nagios.org%2Fdownload%2Fcore%2Fthanks%2F%3Ft%3D1398863696&ts=1398863718&use_mirror=superb-dca3 /tmp/nagios.tar.gz
RUN cd /tmp && tar -zxvf nagios.tar.gz && cd nagios && ./configure --prefix=${NAGIOS_HOME} --exec-prefix=${NAGIOS_HOME} --enable-event-broker --with-nagios-command-user=${NAGIOS_CMDUSER} --with-command-group=${NAGIOS_CMDGROUP} --with-nagios-user=${NAGIOS_USER} --with-nagios-group=${NAGIOS_GROUP} && make all && make install && make install-config && make install-commandmode && cp sample-config/httpd.conf /etc/apache2/conf.d/nagios.conf
ADD http://www.nagios-plugins.org/download/nagios-plugins-1.5.tar.gz /tmp/
RUN cd /tmp && tar -zxvf nagios-plugins-1.5.tar.gz && cd nagios-plugins-1.5 && ./configure --prefix=${NAGIOS_HOME} && make && make install
RUN sed -i.bak 's/.*\=www\-data//g' /etc/apache2/envvars
RUN export DOC_ROOT="DocumentRoot $(echo $NAGIOS_HOME/share)"; sed -i "s,DocumentRoot.*,$DOC_ROOT," /etc/apache2/sites-enabled/000-default
RUN ln -s ${NAGIOS_HOME}/bin/nagios /usr/local/bin/nagios && mkdir -p /usr/share/snmp/mibs && chmod 0755 /usr/share/snmp/mibs && touch /usr/share/snmp/mibs/.foo
RUN echo "use_timezone=$NAGIOS_TIMEZONE" >> ${NAGIOS_HOME}/etc/nagios.cfg && echo "SetEnv TZ \"${NAGIOS_TIMEZONE}\"" >> /etc/apache2/conf.d/nagios.conf
RUN mkdir -p ${NAGIOS_HOME}/etc/conf.d && mkdir -p ${NAGIOS_HOME}/etc/monitor && ln -s /usr/share/snmp/mibs ${NAGIOS_HOME}/libexec/mibs
RUN echo "cfg_dir=${NAGIOS_HOME}/etc/conf.d" >> ${NAGIOS_HOME}/etc/nagios.cfg
RUN echo "cfg_dir=${NAGIOS_HOME}/etc/monitor" >> ${NAGIOS_HOME}/etc/nagios.cfg
RUN download-mibs && echo "mibs +ALL" > /etc/snmp/snmp.conf
RUN sed -i 's,/bin/mail,/usr/bin/mail,' /opt/nagios/etc/objects/commands.cfg && \
sed -i 's,/usr/usr,/usr,' /opt/nagios/etc/objects/commands.cfg
RUN cp /etc/services /var/spool/postfix/etc/
RUN mkdir -p /etc/sv/nagios && mkdir -p /etc/sv/apache && rm -rf /etc/sv/getty-5 && mkdir -p /etc/sv/postfix
ADD nagios.init /etc/sv/nagios/run
ADD apache.init /etc/sv/apache/run
ADD postfix.init /etc/sv/postfix/run
ADD postfix.stop /etc/sv/postfix/finish
ADD start.sh /usr/local/bin/start_nagios
ENV APACHE_LOCK_DIR /var/run
ENV APACHE_LOG_DIR /var/log/apache2
EXPOSE 80
VOLUME ["/opt/nagios/var", "/opt/nagios/etc", "/opt/nagios/libexec", "/var/log/apache2", "/usr/share/snmp/mibs"]
CMD ["/usr/local/bin/start_nagios"]
@@ -0,0 +1,40 @@
(from "cpuguy83/ubuntu")
(env "NAGIOS_HOME" "/opt/nagios")
(env "NAGIOS_USER" "nagios")
(env "NAGIOS_GROUP" "nagios")
(env "NAGIOS_CMDUSER" "nagios")
(env "NAGIOS_CMDGROUP" "nagios")
(env "NAGIOSADMIN_USER" "nagiosadmin")
(env "NAGIOSADMIN_PASS" "nagios")
(env "APACHE_RUN_USER" "nagios")
(env "APACHE_RUN_GROUP" "nagios")
(env "NAGIOS_TIMEZONE" "UTC")
(run "sed -i 's/universe/universe multiverse/' /etc/apt/sources.list")
(run "apt-get update && apt-get install -y iputils-ping netcat build-essential snmp snmpd snmp-mibs-downloader php5-cli apache2 libapache2-mod-php5 runit bc postfix bsd-mailx")
(run "( egrep -i \"^${NAGIOS_GROUP}\" /etc/group || groupadd $NAGIOS_GROUP ) && ( egrep -i \"^${NAGIOS_CMDGROUP}\" /etc/group || groupadd $NAGIOS_CMDGROUP )")
(run "( id -u $NAGIOS_USER || useradd --system $NAGIOS_USER -g $NAGIOS_GROUP -d $NAGIOS_HOME ) && ( id -u $NAGIOS_CMDUSER || useradd --system -d $NAGIOS_HOME -g $NAGIOS_CMDGROUP $NAGIOS_CMDUSER )")
(add "http://downloads.sourceforge.net/project/nagios/nagios-3.x/nagios-3.5.1/nagios-3.5.1.tar.gz?r=http%3A%2F%2Fwww.nagios.org%2Fdownload%2Fcore%2Fthanks%2F%3Ft%3D1398863696&ts=1398863718&use_mirror=superb-dca3" "/tmp/nagios.tar.gz")
(run "cd /tmp && tar -zxvf nagios.tar.gz && cd nagios && ./configure --prefix=${NAGIOS_HOME} --exec-prefix=${NAGIOS_HOME} --enable-event-broker --with-nagios-command-user=${NAGIOS_CMDUSER} --with-command-group=${NAGIOS_CMDGROUP} --with-nagios-user=${NAGIOS_USER} --with-nagios-group=${NAGIOS_GROUP} && make all && make install && make install-config && make install-commandmode && cp sample-config/httpd.conf /etc/apache2/conf.d/nagios.conf")
(add "http://www.nagios-plugins.org/download/nagios-plugins-1.5.tar.gz" "/tmp/")
(run "cd /tmp && tar -zxvf nagios-plugins-1.5.tar.gz && cd nagios-plugins-1.5 && ./configure --prefix=${NAGIOS_HOME} && make && make install")
(run "sed -i.bak 's/.*\\=www\\-data//g' /etc/apache2/envvars")
(run "export DOC_ROOT=\"DocumentRoot $(echo $NAGIOS_HOME/share)\"; sed -i \"s,DocumentRoot.*,$DOC_ROOT,\" /etc/apache2/sites-enabled/000-default")
(run "ln -s ${NAGIOS_HOME}/bin/nagios /usr/local/bin/nagios && mkdir -p /usr/share/snmp/mibs && chmod 0755 /usr/share/snmp/mibs && touch /usr/share/snmp/mibs/.foo")
(run "echo \"use_timezone=$NAGIOS_TIMEZONE\" >> ${NAGIOS_HOME}/etc/nagios.cfg && echo \"SetEnv TZ \\\"${NAGIOS_TIMEZONE}\\\"\" >> /etc/apache2/conf.d/nagios.conf")
(run "mkdir -p ${NAGIOS_HOME}/etc/conf.d && mkdir -p ${NAGIOS_HOME}/etc/monitor && ln -s /usr/share/snmp/mibs ${NAGIOS_HOME}/libexec/mibs")
(run "echo \"cfg_dir=${NAGIOS_HOME}/etc/conf.d\" >> ${NAGIOS_HOME}/etc/nagios.cfg")
(run "echo \"cfg_dir=${NAGIOS_HOME}/etc/monitor\" >> ${NAGIOS_HOME}/etc/nagios.cfg")
(run "download-mibs && echo \"mibs +ALL\" > /etc/snmp/snmp.conf")
(run "sed -i 's,/bin/mail,/usr/bin/mail,' /opt/nagios/etc/objects/commands.cfg && sed -i 's,/usr/usr,/usr,' /opt/nagios/etc/objects/commands.cfg")
(run "cp /etc/services /var/spool/postfix/etc/")
(run "mkdir -p /etc/sv/nagios && mkdir -p /etc/sv/apache && rm -rf /etc/sv/getty-5 && mkdir -p /etc/sv/postfix")
(add "nagios.init" "/etc/sv/nagios/run")
(add "apache.init" "/etc/sv/apache/run")
(add "postfix.init" "/etc/sv/postfix/run")
(add "postfix.stop" "/etc/sv/postfix/finish")
(add "start.sh" "/usr/local/bin/start_nagios")
(env "APACHE_LOCK_DIR" "/var/run")
(env "APACHE_LOG_DIR" "/var/log/apache2")
(expose "80")
(volume "/opt/nagios/var" "/opt/nagios/etc" "/opt/nagios/libexec" "/var/log/apache2" "/usr/share/snmp/mibs")
(cmd "/usr/local/bin/start_nagios")
+104
View File
@@ -0,0 +1,104 @@
# This file describes the standard way to build Docker, using docker
#
# Usage:
#
# # Assemble the full dev environment. This is slow the first time.
# docker build -t docker .
#
# # Mount your source in an interactive container for quick testing:
# docker run -v `pwd`:/go/src/github.com/docker/docker --privileged -i -t docker bash
#
# # Run the test suite:
# docker run --privileged docker hack/make.sh test
#
# # Publish a release:
# docker run --privileged \
# -e AWS_S3_BUCKET=baz \
# -e AWS_ACCESS_KEY=foo \
# -e AWS_SECRET_KEY=bar \
# -e GPG_PASSPHRASE=gloubiboulga \
# docker hack/release.sh
#
# Note: Apparmor used to mess with privileged mode, but this is no longer
# the case. Therefore, you don't have to disable it anymore.
#
FROM ubuntu:14.04
MAINTAINER Tianon Gravi <admwiggin@gmail.com> (@tianon)
# Packaged dependencies
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -yq \
apt-utils \
aufs-tools \
automake \
btrfs-tools \
build-essential \
curl \
dpkg-sig \
git \
iptables \
libapparmor-dev \
libcap-dev \
libsqlite3-dev \
lxc=1.0* \
mercurial \
pandoc \
parallel \
reprepro \
ruby1.9.1 \
ruby1.9.1-dev \
s3cmd=1.1.0* \
--no-install-recommends
# Get lvm2 source for compiling statically
RUN git clone --no-checkout https://git.fedorahosted.org/git/lvm2.git /usr/local/lvm2 && cd /usr/local/lvm2 && git checkout -q v2_02_103
# see https://git.fedorahosted.org/cgit/lvm2.git/refs/tags for release tags
# note: we don't use "git clone -b" above because it then spews big nasty warnings about 'detached HEAD' state that we can't silence as easily as we can silence them using "git checkout" directly
# Compile and install lvm2
RUN cd /usr/local/lvm2 && ./configure --enable-static_link && make device-mapper && make install_device-mapper
# see https://git.fedorahosted.org/cgit/lvm2.git/tree/INSTALL
# Install Go
RUN curl -sSL https://golang.org/dl/go1.3.src.tar.gz | tar -v -C /usr/local -xz
ENV PATH /usr/local/go/bin:$PATH
ENV GOPATH /go:/go/src/github.com/docker/docker/vendor
RUN cd /usr/local/go/src && ./make.bash --no-clean 2>&1
# Compile Go for cross compilation
ENV DOCKER_CROSSPLATFORMS \
linux/386 linux/arm \
darwin/amd64 darwin/386 \
freebsd/amd64 freebsd/386 freebsd/arm
# (set an explicit GOARM of 5 for maximum compatibility)
ENV GOARM 5
RUN cd /usr/local/go/src && bash -xc 'for platform in $DOCKER_CROSSPLATFORMS; do GOOS=${platform%/*} GOARCH=${platform##*/} ./make.bash --no-clean 2>&1; done'
# Grab Go's cover tool for dead-simple code coverage testing
RUN go get golang.org/x/tools/cmd/cover
# TODO replace FPM with some very minimal debhelper stuff
RUN gem install --no-rdoc --no-ri fpm --version 1.0.2
# Get the "busybox" image source so we can build locally instead of pulling
RUN git clone -b buildroot-2014.02 https://github.com/jpetazzo/docker-busybox.git /docker-busybox
# Setup s3cmd config
RUN /bin/echo -e '[default]\naccess_key=$AWS_ACCESS_KEY\nsecret_key=$AWS_SECRET_KEY' > /.s3cfg
# Set user.email so crosbymichael's in-container merge commits go smoothly
RUN git config --global user.email 'docker-dummy@example.com'
# Add an unprivileged user to be used for tests which need it
RUN groupadd -r docker
RUN useradd --create-home --gid docker unprivilegeduser
VOLUME /var/lib/docker
WORKDIR /go/src/github.com/docker/docker
ENV DOCKER_BUILDTAGS apparmor selinux
# Wrap all commands in the "docker-in-docker" script to allow nested containers
ENTRYPOINT ["hack/dind"]
# Upload docker source
COPY . /go/src/github.com/docker/docker
+24
View File
@@ -0,0 +1,24 @@
(from "ubuntu:14.04")
(maintainer "Tianon Gravi <admwiggin@gmail.com> (@tianon)")
(run "apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -yq apt-utils aufs-tools automake btrfs-tools build-essential curl dpkg-sig git iptables libapparmor-dev libcap-dev libsqlite3-dev lxc=1.0* mercurial pandoc parallel reprepro ruby1.9.1 ruby1.9.1-dev s3cmd=1.1.0* --no-install-recommends")
(run "git clone --no-checkout https://git.fedorahosted.org/git/lvm2.git /usr/local/lvm2 && cd /usr/local/lvm2 && git checkout -q v2_02_103")
(run "cd /usr/local/lvm2 && ./configure --enable-static_link && make device-mapper && make install_device-mapper")
(run "curl -sSL https://golang.org/dl/go1.3.src.tar.gz | tar -v -C /usr/local -xz")
(env "PATH" "/usr/local/go/bin:$PATH")
(env "GOPATH" "/go:/go/src/github.com/docker/docker/vendor")
(run "cd /usr/local/go/src && ./make.bash --no-clean 2>&1")
(env "DOCKER_CROSSPLATFORMS" "linux/386 linux/arm darwin/amd64 darwin/386 freebsd/amd64 freebsd/386 freebsd/arm")
(env "GOARM" "5")
(run "cd /usr/local/go/src && bash -xc 'for platform in $DOCKER_CROSSPLATFORMS; do GOOS=${platform%/*} GOARCH=${platform##*/} ./make.bash --no-clean 2>&1; done'")
(run "go get golang.org/x/tools/cmd/cover")
(run "gem install --no-rdoc --no-ri fpm --version 1.0.2")
(run "git clone -b buildroot-2014.02 https://github.com/jpetazzo/docker-busybox.git /docker-busybox")
(run "/bin/echo -e '[default]\\naccess_key=$AWS_ACCESS_KEY\\nsecret_key=$AWS_SECRET_KEY' > /.s3cfg")
(run "git config --global user.email 'docker-dummy@example.com'")
(run "groupadd -r docker")
(run "useradd --create-home --gid docker unprivilegeduser")
(volume "/var/lib/docker")
(workdir "/go/src/github.com/docker/docker")
(env "DOCKER_BUILDTAGS" "apparmor selinux")
(entrypoint "hack/dind")
(copy "." "/go/src/github.com/docker/docker")
+15
View File
@@ -0,0 +1,15 @@
FROM ubuntu
ENV name value
ENV name=value
ENV name=value name2=value2
ENV name="value value1"
ENV name=value\ value2
ENV name="value'quote space'value2"
ENV name='value"double quote"value2'
ENV name=value\ value2 name2=value2\ value3
ENV name=value \
name1=value1 \
name2="value2a \
value2b" \
name3="value3a\n\"value3b\"" \
name4="value4a\\nvalue4b" \
+10
View File
@@ -0,0 +1,10 @@
(from "ubuntu")
(env "name" "value")
(env "name" "value")
(env "name" "value" "name2" "value2")
(env "name" "value value1")
(env "name" "value value2")
(env "name" "value'quote space'value2")
(env "name" "value\"double quote\"value2")
(env "name" "value value2" "name2" "value2 value3")
(env "name" "value" "name1" "value1" "name2" "value2a value2b" "name3" "value3an\"value3b\"" "name4" "value4a\\nvalue4b")
@@ -0,0 +1,14 @@
FROM ubuntu:14.04
MAINTAINER Erik \\Hollensbe <erik@hollensbe.org>\"
RUN apt-get \update && \
apt-get \"install znc -y
ADD \conf\\" /.znc
RUN foo \
bar \
baz
CMD [ "\/usr\\\"/bin/znc", "-f", "-r" ]
+6
View File
@@ -0,0 +1,6 @@
(from "ubuntu:14.04")
(maintainer "Erik \\\\Hollensbe <erik@hollensbe.org>\\\"")
(run "apt-get \\update && apt-get \\\"install znc -y")
(add "\\conf\\\\\"" "/.znc")
(run "foo bar baz")
(cmd "/usr\\\"/bin/znc" "-f" "-r")
@@ -0,0 +1,15 @@
FROM ubuntu:14.04
RUN apt-get update && apt-get install wget -y
RUN wget http://s3.amazonaws.com/influxdb/influxdb_latest_amd64.deb
RUN dpkg -i influxdb_latest_amd64.deb
RUN rm -r /opt/influxdb/shared
VOLUME /opt/influxdb/shared
CMD /usr/bin/influxdb --pidfile /var/run/influxdb.pid -config /opt/influxdb/shared/config.toml
EXPOSE 8083
EXPOSE 8086
EXPOSE 8090
EXPOSE 8099
+11
View File
@@ -0,0 +1,11 @@
(from "ubuntu:14.04")
(run "apt-get update && apt-get install wget -y")
(run "wget http://s3.amazonaws.com/influxdb/influxdb_latest_amd64.deb")
(run "dpkg -i influxdb_latest_amd64.deb")
(run "rm -r /opt/influxdb/shared")
(volume "/opt/influxdb/shared")
(cmd "/usr/bin/influxdb --pidfile /var/run/influxdb.pid -config /opt/influxdb/shared/config.toml")
(expose "8083")
(expose "8086")
(expose "8090")
(expose "8099")
@@ -0,0 +1 @@
CMD "[\"echo\", \"Phew, I just managed to escaped those double quotes\"]"
@@ -0,0 +1 @@
(cmd "\"[\\\"echo\\\", \\\"Phew, I just managed to escaped those double quotes\\\"]\"")
@@ -0,0 +1 @@
CMD '["echo", "Well, JSON in a string is JSON too?"]'
@@ -0,0 +1 @@
(cmd "'[\"echo\", \"Well, JSON in a string is JSON too?\"]'")
@@ -0,0 +1 @@
CMD ['echo','single quotes are invalid JSON']
@@ -0,0 +1 @@
(cmd "['echo','single quotes are invalid JSON']")
@@ -0,0 +1 @@
CMD ["echo", "Please, close the brackets when you're done"
@@ -0,0 +1 @@
(cmd "[\"echo\", \"Please, close the brackets when you're done\"")
@@ -0,0 +1 @@
CMD ["echo", "look ma, no quote!]
@@ -0,0 +1 @@
(cmd "[\"echo\", \"look ma, no quote!]")
@@ -0,0 +1,7 @@
FROM ubuntu:14.04
MAINTAINER James Turnbull "james@example.com"
ENV REFRESHED_AT 2014-06-01
RUN apt-get update
RUN apt-get -y install redis-server redis-tools
EXPOSE 6379
ENTRYPOINT [ "/usr/bin/redis-server" ]
@@ -0,0 +1,7 @@
(from "ubuntu:14.04")
(maintainer "James Turnbull \"james@example.com\"")
(env "REFRESHED_AT" "2014-06-01")
(run "apt-get update")
(run "apt-get -y install redis-server redis-tools")
(expose "6379")
(entrypoint "/usr/bin/redis-server")
@@ -0,0 +1,48 @@
FROM busybox:buildroot-2014.02
MAINTAINER docker <docker@docker.io>
ONBUILD RUN ["echo", "test"]
ONBUILD RUN echo test
ONBUILD COPY . /
# RUN Commands \
# linebreak in comment \
RUN ["ls", "-la"]
RUN ["echo", "'1234'"]
RUN echo "1234"
RUN echo 1234
RUN echo '1234' && \
echo "456" && \
echo 789
RUN sh -c 'echo root:testpass \
> /tmp/passwd'
RUN mkdir -p /test /test2 /test3/test
# ENV \
ENV SCUBA 1 DUBA 3
ENV SCUBA "1 DUBA 3"
# CMD \
CMD ["echo", "test"]
CMD echo test
CMD echo "test"
CMD echo 'test'
CMD echo 'test' | wc -
#EXPOSE\
EXPOSE 3000
EXPOSE 9000 5000 6000
USER docker
USER docker:root
VOLUME ["/test"]
VOLUME ["/test", "/test2"]
VOLUME /test3
WORKDIR /test
ADD . /
COPY . copy
@@ -0,0 +1,29 @@
(from "busybox:buildroot-2014.02")
(maintainer "docker <docker@docker.io>")
(onbuild (run "echo" "test"))
(onbuild (run "echo test"))
(onbuild (copy "." "/"))
(run "ls" "-la")
(run "echo" "'1234'")
(run "echo \"1234\"")
(run "echo 1234")
(run "echo '1234' && echo \"456\" && echo 789")
(run "sh -c 'echo root:testpass > /tmp/passwd'")
(run "mkdir -p /test /test2 /test3/test")
(env "SCUBA" "1 DUBA 3")
(env "SCUBA" "\"1 DUBA 3\"")
(cmd "echo" "test")
(cmd "echo test")
(cmd "echo \"test\"")
(cmd "echo 'test'")
(cmd "echo 'test' | wc -")
(expose "3000")
(expose "9000" "5000" "6000")
(user "docker")
(user "docker:root")
(volume "/test")
(volume "/test" "/test2")
(volume "/test3")
(workdir "/test")
(add "." "/")
(copy "." "copy")
+16
View File
@@ -0,0 +1,16 @@
FROM ubuntu:14.04
RUN apt-get update -qy && apt-get install mutt offlineimap vim-nox abook elinks curl tmux cron zsh -y
ADD .muttrc /
ADD .offlineimaprc /
ADD .tmux.conf /
ADD mutt /.mutt
ADD vim /.vim
ADD vimrc /.vimrc
ADD crontab /etc/crontab
RUN chmod 644 /etc/crontab
RUN mkdir /Mail
RUN mkdir /.offlineimap
RUN echo "export TERM=screen-256color" >/.zshenv
CMD setsid cron; tmux -2
+14
View File
@@ -0,0 +1,14 @@
(from "ubuntu:14.04")
(run "apt-get update -qy && apt-get install mutt offlineimap vim-nox abook elinks curl tmux cron zsh -y")
(add ".muttrc" "/")
(add ".offlineimaprc" "/")
(add ".tmux.conf" "/")
(add "mutt" "/.mutt")
(add "vim" "/.vim")
(add "vimrc" "/.vimrc")
(add "crontab" "/etc/crontab")
(run "chmod 644 /etc/crontab")
(run "mkdir /Mail")
(run "mkdir /.offlineimap")
(run "echo \"export TERM=screen-256color\" >/.zshenv")
(cmd "setsid cron; tmux -2")
@@ -0,0 +1,3 @@
FROM foo
VOLUME /opt/nagios/var /opt/nagios/etc /opt/nagios/libexec /var/log/apache2 /usr/share/snmp/mibs
@@ -0,0 +1,2 @@
(from "foo")
(volume "/opt/nagios/var" "/opt/nagios/etc" "/opt/nagios/libexec" "/var/log/apache2" "/usr/share/snmp/mibs")
@@ -0,0 +1,7 @@
FROM ubuntu:14.04
RUN apt-get update && apt-get install libcap2-bin mumble-server -y
ADD ./mumble-server.ini /etc/mumble-server.ini
CMD /usr/sbin/murmurd
+4
View File
@@ -0,0 +1,4 @@
(from "ubuntu:14.04")
(run "apt-get update && apt-get install libcap2-bin mumble-server -y")
(add "./mumble-server.ini" "/etc/mumble-server.ini")
(cmd "/usr/sbin/murmurd")
+14
View File
@@ -0,0 +1,14 @@
FROM ubuntu:14.04
MAINTAINER Erik Hollensbe <erik@hollensbe.org>
RUN apt-get update && apt-get install nginx-full -y
RUN rm -rf /etc/nginx
ADD etc /etc/nginx
RUN chown -R root:root /etc/nginx
RUN /usr/sbin/nginx -qt
RUN mkdir /www
CMD ["/usr/sbin/nginx"]
VOLUME /www
EXPOSE 80
+11
View File
@@ -0,0 +1,11 @@
(from "ubuntu:14.04")
(maintainer "Erik Hollensbe <erik@hollensbe.org>")
(run "apt-get update && apt-get install nginx-full -y")
(run "rm -rf /etc/nginx")
(add "etc" "/etc/nginx")
(run "chown -R root:root /etc/nginx")
(run "/usr/sbin/nginx -qt")
(run "mkdir /www")
(cmd "/usr/sbin/nginx")
(volume "/www")
(expose "80")
+23
View File
@@ -0,0 +1,23 @@
FROM ubuntu:12.04
EXPOSE 27015
EXPOSE 27005
EXPOSE 26901
EXPOSE 27020
RUN apt-get update && apt-get install libc6-dev-i386 curl unzip -y
RUN mkdir -p /steam
RUN curl http://media.steampowered.com/client/steamcmd_linux.tar.gz | tar vxz -C /steam
ADD ./script /steam/script
RUN /steam/steamcmd.sh +runscript /steam/script
RUN curl http://mirror.pointysoftware.net/alliedmodders/mmsource-1.10.0-linux.tar.gz | tar vxz -C /steam/tf2/tf
RUN curl http://mirror.pointysoftware.net/alliedmodders/sourcemod-1.5.3-linux.tar.gz | tar vxz -C /steam/tf2/tf
ADD ./server.cfg /steam/tf2/tf/cfg/server.cfg
ADD ./ctf_2fort.cfg /steam/tf2/tf/cfg/ctf_2fort.cfg
ADD ./sourcemod.cfg /steam/tf2/tf/cfg/sourcemod/sourcemod.cfg
RUN rm -r /steam/tf2/tf/addons/sourcemod/configs
ADD ./configs /steam/tf2/tf/addons/sourcemod/configs
RUN mkdir -p /steam/tf2/tf/addons/sourcemod/translations/en
RUN cp /steam/tf2/tf/addons/sourcemod/translations/*.txt /steam/tf2/tf/addons/sourcemod/translations/en
CMD cd /steam/tf2 && ./srcds_run -port 27015 +ip 0.0.0.0 +map ctf_2fort -autoupdate -steam_dir /steam -steamcmd_script /steam/script +tf_bot_quota 12 +tf_bot_quota_mode fill
+20
View File
@@ -0,0 +1,20 @@
(from "ubuntu:12.04")
(expose "27015")
(expose "27005")
(expose "26901")
(expose "27020")
(run "apt-get update && apt-get install libc6-dev-i386 curl unzip -y")
(run "mkdir -p /steam")
(run "curl http://media.steampowered.com/client/steamcmd_linux.tar.gz | tar vxz -C /steam")
(add "./script" "/steam/script")
(run "/steam/steamcmd.sh +runscript /steam/script")
(run "curl http://mirror.pointysoftware.net/alliedmodders/mmsource-1.10.0-linux.tar.gz | tar vxz -C /steam/tf2/tf")
(run "curl http://mirror.pointysoftware.net/alliedmodders/sourcemod-1.5.3-linux.tar.gz | tar vxz -C /steam/tf2/tf")
(add "./server.cfg" "/steam/tf2/tf/cfg/server.cfg")
(add "./ctf_2fort.cfg" "/steam/tf2/tf/cfg/ctf_2fort.cfg")
(add "./sourcemod.cfg" "/steam/tf2/tf/cfg/sourcemod/sourcemod.cfg")
(run "rm -r /steam/tf2/tf/addons/sourcemod/configs")
(add "./configs" "/steam/tf2/tf/addons/sourcemod/configs")
(run "mkdir -p /steam/tf2/tf/addons/sourcemod/translations/en")
(run "cp /steam/tf2/tf/addons/sourcemod/translations/*.txt /steam/tf2/tf/addons/sourcemod/translations/en")
(cmd "cd /steam/tf2 && ./srcds_run -port 27015 +ip 0.0.0.0 +map ctf_2fort -autoupdate -steam_dir /steam -steamcmd_script /steam/script +tf_bot_quota 12 +tf_bot_quota_mode fill")
@@ -0,0 +1,9 @@
FROM ubuntu:14.04
RUN apt-get update -qy && apt-get install tmux zsh weechat-curses -y
ADD .weechat /.weechat
ADD .tmux.conf /
RUN echo "export TERM=screen-256color" >/.zshenv
CMD zsh -c weechat
+6
View File
@@ -0,0 +1,6 @@
(from "ubuntu:14.04")
(run "apt-get update -qy && apt-get install tmux zsh weechat-curses -y")
(add ".weechat" "/.weechat")
(add ".tmux.conf" "/")
(run "echo \"export TERM=screen-256color\" >/.zshenv")
(cmd "zsh -c weechat")
+7
View File
@@ -0,0 +1,7 @@
FROM ubuntu:14.04
MAINTAINER Erik Hollensbe <erik@hollensbe.org>
RUN apt-get update && apt-get install znc -y
ADD conf /.znc
CMD [ "/usr/bin/znc", "-f", "-r" ]
+5
View File
@@ -0,0 +1,5 @@
(from "ubuntu:14.04")
(maintainer "Erik Hollensbe <erik@hollensbe.org>")
(run "apt-get update && apt-get install znc -y")
(add "conf" "/.znc")
(cmd "/usr/bin/znc" "-f" "-r")
+94
View File
@@ -0,0 +1,94 @@
package parser
import (
"fmt"
"strings"
)
// QuoteString walks characters (after trimming), escapes any quotes and
// escapes, then wraps the whole thing in quotes. Very useful for generating
// argument output in nodes.
func QuoteString(str string) string {
result := ""
chars := strings.Split(strings.TrimSpace(str), "")
for _, char := range chars {
switch char {
case `"`:
result += `\"`
case `\`:
result += `\\`
default:
result += char
}
}
return `"` + result + `"`
}
// dumps the AST defined by `node` as a list of sexps. Returns a string
// suitable for printing.
func (node *Node) Dump() string {
str := ""
str += node.Value
for _, n := range node.Children {
str += "(" + n.Dump() + ")\n"
}
if node.Next != nil {
for n := node.Next; n != nil; n = n.Next {
if len(n.Children) > 0 {
str += " " + n.Dump()
} else {
str += " " + QuoteString(n.Value)
}
}
}
return strings.TrimSpace(str)
}
// performs the dispatch based on the two primal strings, cmd and args. Please
// look at the dispatch table in parser.go to see how these dispatchers work.
func fullDispatch(cmd, args string) (*Node, map[string]bool, error) {
fn := dispatch[cmd]
// Ignore invalid Dockerfile instructions
if fn == nil {
fn = parseIgnore
}
sexp, attrs, err := fn(args)
if err != nil {
return nil, nil, err
}
return sexp, attrs, nil
}
// splitCommand takes a single line of text and parses out the cmd and args,
// which are used for dispatching to more exact parsing functions.
func splitCommand(line string) (string, string, error) {
cmdline := TOKEN_WHITESPACE.Split(line, 2)
if len(cmdline) != 2 {
return "", "", fmt.Errorf("We do not understand this file. Please ensure it is a valid Dockerfile. Parser error at %q", line)
}
cmd := strings.ToLower(cmdline[0])
// the cmd should never have whitespace, but it's possible for the args to
// have trailing whitespace.
return cmd, strings.TrimSpace(cmdline[1]), nil
}
// covers comments and empty lines. Lines should be trimmed before passing to
// this function.
func stripComments(line string) string {
// string is already trimmed at this point
if TOKEN_COMMENT.MatchString(line) {
return TOKEN_COMMENT.ReplaceAllString(line, "")
}
return line
}
+59
View File
@@ -0,0 +1,59 @@
package builder
import (
"regexp"
"strings"
)
var (
// `\\\\+|[^\\]|\b|\A` - match any number of "\\" (ie, properly-escaped backslashes), or a single non-backslash character, or a word boundary, or beginning-of-line
// `\$` - match literal $
// `[[:alnum:]_]+` - match things like `$SOME_VAR`
// `{[[:alnum:]_]+}` - match things like `${SOME_VAR}`
tokenEnvInterpolation = regexp.MustCompile(`(\\|\\\\+|[^\\]|\b|\A)\$([[:alnum:]_]+|{[[:alnum:]_]+})`)
// this intentionally punts on more exotic interpolations like ${SOME_VAR%suffix} and lets the shell handle those directly
)
// handle environment replacement. Used in dispatcher.
func (b *Builder) replaceEnv(str string) string {
for _, match := range tokenEnvInterpolation.FindAllString(str, -1) {
idx := strings.Index(match, "\\$")
if idx != -1 {
if idx+2 >= len(match) {
str = strings.Replace(str, match, "\\$", -1)
continue
}
prefix := match[:idx]
stripped := match[idx+2:]
str = strings.Replace(str, match, prefix+"$"+stripped, -1)
continue
}
match = match[strings.Index(match, "$"):]
matchKey := strings.Trim(match, "${}")
for _, keyval := range b.Config.Env {
tmp := strings.SplitN(keyval, "=", 2)
if tmp[0] == matchKey {
str = strings.Replace(str, match, tmp[1], -1)
break
}
}
}
return str
}
func handleJsonArgs(args []string, attributes map[string]bool) []string {
if len(args) == 0 {
return []string{}
}
if attributes != nil && attributes["json"] {
return args
}
// literal string command, not an exec array
return []string{strings.Join(args, " ")}
}
+3 -3
View File
@@ -10,7 +10,6 @@ import (
"github.com/docker/docker/engine"
"github.com/docker/docker/events"
"github.com/docker/docker/pkg/parsers/kernel"
"github.com/docker/docker/registry"
)
func Register(eng *engine.Engine) error {
@@ -26,7 +25,8 @@ func Register(eng *engine.Engine) error {
if err := eng.Register("version", dockerVersion); err != nil {
return err
}
return registry.NewService().Install(eng)
return nil
}
// remote: a RESTful api for cross-docker communication
@@ -61,7 +61,7 @@ func dockerVersion(job *engine.Job) engine.Status {
v := &engine.Env{}
v.SetJson("Version", dockerversion.VERSION)
v.SetJson("ApiVersion", api.APIVERSION)
v.Set("GitCommit", dockerversion.GITCOMMIT)
v.SetJson("GitCommit", dockerversion.GITCOMMIT)
v.Set("GoVersion", runtime.Version())
v.Set("Os", runtime.GOOS)
v.Set("Arch", runtime.GOARCH)
+8 -3
View File
@@ -76,7 +76,7 @@ check_flags() {
for flag in "$@"; do
echo "- $(check_flag "$flag")"
done
}
}
if [ ! -e "$CONFIG" ]; then
wrap_warning "warning: $CONFIG does not exist, searching other paths for kernel config..."
@@ -135,7 +135,7 @@ flags=(
DEVPTS_MULTIPLE_INSTANCES
CGROUPS CGROUP_CPUACCT CGROUP_DEVICE CGROUP_FREEZER CGROUP_SCHED
MACVLAN VETH BRIDGE
NF_NAT_IPV4 IP_NF_TARGET_MASQUERADE
NF_NAT_IPV4 IP_NF_FILTER IP_NF_TARGET_MASQUERADE
NETFILTER_XT_MATCH_{ADDRTYPE,CONNTRACK}
NF_NAT NF_NAT_NEEDED
)
@@ -146,6 +146,7 @@ echo 'Optional Features:'
flags=(
MEMCG_SWAP
RESOURCE_COUNTERS
CGROUP_PERF
)
check_flags "${flags[@]}"
@@ -156,12 +157,16 @@ echo '- Storage Drivers:'
if ! is_set AUFS_FS && grep -q aufs /proc/filesystems; then
echo " $(wrap_color '(note that some kernels include AUFS patches but not the AUFS_FS flag)' bold black)"
fi
check_flags EXT4_FS_POSIX_ACL EXT4_FS_SECURITY | sed 's/^/ /'
echo '- "'$(wrap_color 'btrfs' blue)'":'
check_flags BTRFS_FS | sed 's/^/ /'
echo '- "'$(wrap_color 'devicemapper' blue)'":'
check_flags BLK_DEV_DM DM_THIN_PROVISIONING EXT4_FS | sed 's/^/ /'
check_flags BLK_DEV_DM DM_THIN_PROVISIONING EXT4_FS EXT4_FS_POSIX_ACL EXT4_FS_SECURITY | sed 's/^/ /'
echo '- "'$(wrap_color 'overlay' blue)'":'
check_flags OVERLAY_FS | sed 's/^/ /'
} | sed 's/^/ /'
echo
+2
View File
@@ -0,0 +1,2 @@
Tianon Gravi <admwiggin@gmail.com> (@tianon)
Jessie Frazelle <jess@docker.com> (@jfrazelle)
File diff suppressed because it is too large Load Diff
+33 -5
View File
@@ -16,7 +16,7 @@
function __fish_docker_no_subcommand --description 'Test if docker has yet to be given the subcommand'
for i in (commandline -opc)
if contains -- $i attach build commit cp diff events export history images import info insert inspect kill load login logs port ps pull push restart rm rmi run save search start stop tag top version wait
if contains -- $i attach build commit cp create diff events export history images import info insert inspect kill load login logs port ps pull push restart rm rmi run save search start stop tag top version wait
return 1
end
end
@@ -53,7 +53,7 @@ complete -c docker -f -n '__fish_docker_no_subcommand' -s d -l daemon -d 'Enable
complete -c docker -f -n '__fish_docker_no_subcommand' -l dns -d 'Force docker to use specific DNS servers'
complete -c docker -f -n '__fish_docker_no_subcommand' -s e -l exec-driver -d 'Force the docker runtime to use a specific exec driver'
complete -c docker -f -n '__fish_docker_no_subcommand' -s g -l graph -d 'Path to use as the root of the docker runtime'
complete -c docker -f -n '__fish_docker_no_subcommand' -l icc -d 'Enable inter-container communication'
complete -c docker -f -n '__fish_docker_no_subcommand' -l icc -d 'Allow unrestricted inter-container and Docker daemon host communication'
complete -c docker -f -n '__fish_docker_no_subcommand' -l ip -d 'Default IP address to use when binding container ports'
complete -c docker -f -n '__fish_docker_no_subcommand' -l ip-forward -d 'Disable enabling of net.ipv4.ip_forward'
complete -c docker -f -n '__fish_docker_no_subcommand' -l iptables -d "Disable docker's addition of iptables rules"
@@ -67,11 +67,12 @@ complete -c docker -f -n '__fish_docker_no_subcommand' -s v -l version -d 'Print
# attach
complete -c docker -f -n '__fish_docker_no_subcommand' -a attach -d 'Attach to a running container'
complete -c docker -A -f -n '__fish_seen_subcommand_from attach' -l no-stdin -d 'Do not attach stdin'
complete -c docker -A -f -n '__fish_seen_subcommand_from attach' -l sig-proxy -d 'Proxify all received signal to the process (even in non-tty mode)'
complete -c docker -A -f -n '__fish_seen_subcommand_from attach' -l sig-proxy -d 'Proxify all received signal to the process (non-TTY mode only)'
complete -c docker -A -f -n '__fish_seen_subcommand_from attach' -a '(__fish_print_docker_containers running)' -d "Container"
# build
complete -c docker -f -n '__fish_docker_no_subcommand' -a build -d 'Build an image from a Dockerfile'
complete -c docker -A -f -n '__fish_seen_subcommand_from build' -l force-rm -d 'Always remove intermediate containers, even after unsuccessful builds'
complete -c docker -A -f -n '__fish_seen_subcommand_from build' -l no-cache -d 'Do not use cache when building the image'
complete -c docker -A -f -n '__fish_seen_subcommand_from build' -s q -l quiet -d 'Suppress the verbose output generated by the containers'
complete -c docker -A -f -n '__fish_seen_subcommand_from build' -l rm -d 'Remove intermediate containers after a successful build'
@@ -87,6 +88,33 @@ complete -c docker -A -f -n '__fish_seen_subcommand_from commit' -a '(__fish_pri
# cp
complete -c docker -f -n '__fish_docker_no_subcommand' -a cp -d "Copy files/folders from a container's filesystem to the host path"
# create
complete -c docker -f -n '__fish_docker_no_subcommand' -a run -d 'Run a command in a new container'
complete -c docker -A -f -n '__fish_seen_subcommand_from run' -s P -l publish-all -d 'Publish all exposed ports to the host interfaces'
complete -c docker -A -f -n '__fish_seen_subcommand_from run' -s a -l attach -d 'Attach to stdin, stdout or stderr.'
complete -c docker -A -f -n '__fish_seen_subcommand_from run' -s c -l cpu-shares -d 'CPU shares (relative weight)'
complete -c docker -A -f -n '__fish_seen_subcommand_from run' -l cidfile -d 'Write the container ID to the file'
complete -c docker -A -f -n '__fish_seen_subcommand_from run' -l dns -d 'Set custom dns servers'
complete -c docker -A -f -n '__fish_seen_subcommand_from run' -s e -l env -d 'Set environment variables'
complete -c docker -A -f -n '__fish_seen_subcommand_from run' -l entrypoint -d 'Overwrite the default entrypoint of the image'
complete -c docker -A -f -n '__fish_seen_subcommand_from run' -l expose -d 'Expose a port from the container without publishing it to your host'
complete -c docker -A -f -n '__fish_seen_subcommand_from run' -s h -l hostname -d 'Container host name'
complete -c docker -A -f -n '__fish_seen_subcommand_from run' -s i -l interactive -d 'Keep stdin open even if not attached'
complete -c docker -A -f -n '__fish_seen_subcommand_from run' -l link -d 'Add link to another container (name:alias)'
complete -c docker -A -f -n '__fish_seen_subcommand_from run' -l lxc-conf -d 'Add custom lxc options -lxc-conf="lxc.cgroup.cpuset.cpus = 0,1"'
complete -c docker -A -f -n '__fish_seen_subcommand_from run' -s m -l memory -d 'Memory limit (format: <number><optional unit>, where unit = b, k, m or g)'
complete -c docker -A -f -n '__fish_seen_subcommand_from run' -s n -l networking -d 'Enable networking for this container'
complete -c docker -A -f -n '__fish_seen_subcommand_from run' -l name -d 'Assign a name to the container'
complete -c docker -A -f -n '__fish_seen_subcommand_from run' -s p -l publish -d "Publish a container's port to the host (format: ip:hostPort:containerPort | ip::containerPort | hostPort:containerPort) (use 'docker port' to see the actual mapping)"
complete -c docker -A -f -n '__fish_seen_subcommand_from run' -l privileged -d 'Give extended privileges to this container'
complete -c docker -A -f -n '__fish_seen_subcommand_from run' -s t -l tty -d 'Allocate a pseudo-tty'
complete -c docker -A -f -n '__fish_seen_subcommand_from run' -s u -l user -d 'Username or UID'
complete -c docker -A -f -n '__fish_seen_subcommand_from run' -s v -l volume -d 'Bind mount a volume (e.g. from the host: -v /host:/container, from docker: -v /container)'
complete -c docker -A -f -n '__fish_seen_subcommand_from run' -l volumes-from -d 'Mount volumes from the specified container(s)'
complete -c docker -A -f -n '__fish_seen_subcommand_from run' -s w -l workdir -d 'Working directory inside the container'
complete -c docker -A -f -n '__fish_seen_subcommand_from run' -a '(__fish_print_docker_images)' -d "Image"
# diff
complete -c docker -f -n '__fish_docker_no_subcommand' -a diff -d "Inspect changes on a container's filesystem"
complete -c docker -A -f -n '__fish_seen_subcommand_from diff' -a '(__fish_print_docker_containers all)' -d "Container"
@@ -157,7 +185,7 @@ complete -c docker -A -f -n '__fish_seen_subcommand_from ps' -s l -l latest -d '
complete -c docker -A -f -n '__fish_seen_subcommand_from ps' -s n -d 'Show n last created containers, include non-running ones.'
complete -c docker -A -f -n '__fish_seen_subcommand_from ps' -l no-trunc -d "Don't truncate output"
complete -c docker -A -f -n '__fish_seen_subcommand_from ps' -s q -l quiet -d 'Only display numeric IDs'
complete -c docker -A -f -n '__fish_seen_subcommand_from ps' -s s -l size -d 'Display sizes'
complete -c docker -A -f -n '__fish_seen_subcommand_from ps' -s s -l size -d 'Display total file sizes'
complete -c docker -A -f -n '__fish_seen_subcommand_from ps' -l since -d 'Show only containers created since Id or Name, include non-running ones.'
# pull
@@ -209,7 +237,7 @@ complete -c docker -A -f -n '__fish_seen_subcommand_from run' -l name -d 'Assign
complete -c docker -A -f -n '__fish_seen_subcommand_from run' -s p -l publish -d "Publish a container's port to the host (format: ip:hostPort:containerPort | ip::containerPort | hostPort:containerPort) (use 'docker port' to see the actual mapping)"
complete -c docker -A -f -n '__fish_seen_subcommand_from run' -l privileged -d 'Give extended privileges to this container'
complete -c docker -A -f -n '__fish_seen_subcommand_from run' -l rm -d 'Automatically remove the container when it exits (incompatible with -d)'
complete -c docker -A -f -n '__fish_seen_subcommand_from run' -l sig-proxy -d 'Proxify all received signal to the process (even in non-tty mode)'
complete -c docker -A -f -n '__fish_seen_subcommand_from run' -l sig-proxy -d 'Proxify all received signal to the process (non-TTY mode only)'
complete -c docker -A -f -n '__fish_seen_subcommand_from run' -s t -l tty -d 'Allocate a pseudo-tty'
complete -c docker -A -f -n '__fish_seen_subcommand_from run' -s u -l user -d 'Username or UID'
complete -c docker -A -f -n '__fish_seen_subcommand_from run' -s v -l volume -d 'Bind mount a volume (e.g. from the host: -v /host:/container, from docker: -v /container)'
+165 -92
View File
@@ -5,7 +5,7 @@
# version: 0.3.0
# github: https://github.com/felixr/docker-zsh-completion
#
# contributers:
# contributors:
# - Felix Riedel
# - Vincent Bernat
#
@@ -37,65 +37,86 @@
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
__parse_docker_list() {
awk '
NR == 1 {
idx=1;i=0;f[i]=0
header=$0
while ( match(header, / ([A-Z]+|[A-Z]+ [A-Z]+)/) ) {
idx += RSTART+1
f[++i]=idx
header = substr($0,idx)
}
f[++i]=999
}
__docker_get_containers() {
local kind expl
declare -a running stopped lines args
NR > 1 '"$1"' {
for(j=0;j<i;j++) {
x[j] = substr($0, f[j], f[j+1]-f[j]-1)
gsub(/[ ]+$/, "", x[j])
kind=$1
shift
[[ $kind = (stopped|all) ]] && args=($args -a)
lines=(${(f)"$(_call_program commands docker ps ${args})"})
# Parse header line to find columns
local i=1 j=1 k header=${lines[1]}
declare -A begin end
while (( $j < ${#header} - 1 )) {
i=$(( $j + ${${header[$j,-1]}[(i)[^ ]]} - 1))
j=$(( $i + ${${header[$i,-1]}[(i) ]} - 1))
k=$(( $j + ${${header[$j,-1]}[(i)[^ ]]} - 2))
begin[${header[$i,$(($j-1))]}]=$i
end[${header[$i,$(($j-1))]}]=$k
}
printf("%s:%7s, %s\n", x[0], x[3], x[1])
if (x[6] != "") {
split(x[6], names, /,/)
for (name in names) printf("%s:%7s, %s\n", names[name], x[3], x[1])
}
}
'| sed -e 's/ \([hdwm]\)\(inutes\|ays\|ours\|eeks\)/\1/'
lines=(${lines[2,-1]})
# Container ID
local line
local s
for line in $lines; do
s="${line[${begin[CONTAINER ID]},${end[CONTAINER ID]}]%% ##}"
s="$s:${(l:15:: :::)${${line[${begin[CREATED]},${end[CREATED]}]/ ago/}%% ##}}"
s="$s, ${${${line[$begin[IMAGE],$end[IMAGE]]}/:/\\:}%% ##}"
if [[ ${line[${begin[STATUS]},${end[STATUS]}]} = Exit* ]]; then
stopped=($stopped $s)
else
running=($running $s)
fi
done
# Names
local name
local -a names
for line in $lines; do
names=(${(ps:,:)${${line[${begin[NAMES]},-1]}%% *}})
for name in $names; do
s="${name}:${(l:15:: :::)${${line[${begin[CREATED]},${end[CREATED]}]/ ago/}%% ##}}"
s="$s, ${${${line[$begin[IMAGE],$end[IMAGE]]}/:/\\:}%% ##}"
if [[ ${line[${begin[STATUS]},${end[STATUS]}]} = Exit* ]]; then
stopped=($stopped $s)
else
running=($running $s)
fi
done
done
[[ $kind = (running|all) ]] && _describe -t containers-running "running containers" running
[[ $kind = (stopped|all) ]] && _describe -t containers-stopped "stopped containers" stopped
}
__docker_stoppedcontainers() {
local expl
declare -a stoppedcontainers
stoppedcontainers=(${(f)"$(_call_program commands docker ps -a | __parse_docker_list '&& / Exit/')"})
_describe -t containers-stopped "Stopped Containers" stoppedcontainers "$@"
__docker_get_containers stopped "$@"
}
__docker_runningcontainers() {
local expl
declare -a containers
containers=(${(f)"$(_call_program commands docker ps | __parse_docker_list)"})
_describe -t containers-active "Running Containers" containers "$@"
__docker_get_containers running "$@"
}
__docker_containers () {
__docker_stoppedcontainers "$@"
__docker_runningcontainers "$@"
__docker_get_containers all "$@"
}
__docker_images () {
local expl
declare -a images
images=(${(f)"$(_call_program commands docker images | awk '(NR > 1 && $1 != "<none>"){printf("%s", $1);if ($2 != "<none>") printf("\\:%s", $2); printf("\n")}')"})
images=($images ${(f)"$(_call_program commands docker images | awk '(NR > 1){printf("%s:%-15s in %s\n", $3,$2,$1)}')"})
_describe -t docker-images "Images" images
images=(${${${${(f)"$(_call_program commands docker images)"}[2,-1]}/ ##/\\:}%% *})
images=(${${images%\\:<none>}#<none>} ${${${(f)"$(_call_program commands docker images)"}[2,-1]}/(#b)([^ ]##) ##([^ ]##) ##([^ ]##)*/${match[3]}:${(r:15:: :::)match[2]} in ${match[1]}})
_describe -t docker-images "images" images
}
__docker_tags() {
local expl
declare -a tags
tags=(${(f)"$(_call_program commands docker images | awk '(NR>1){print $2}'| sort | uniq)"})
tags=(${${${${${(f)"$(_call_program commands docker images)"}#* }## #}%% *}[2,-1]})
_describe -t docker-tags "tags" tags
}
@@ -124,16 +145,15 @@ __docker_search() {
if ( [[ ${(P)+cachename} -eq 0 ]] || _cache_invalid ${cachename#_} ) \
&& ! _retrieve_cache ${cachename#_}; then
_message "Searching for ${searchterm}..."
result=(${(f)"$(_call_program commands docker search ${searchterm} | awk '(NR>2){print $1}')"})
result=(${${${(f)"$(_call_program commands docker search ${searchterm})"}%% *}[2,-1]})
_store_cache ${cachename#_} result
fi
_wanted dockersearch expl 'Available images' compadd -a result
_wanted dockersearch expl 'available images' compadd -a result
}
__docker_caching_policy()
{
# oldp=( "$1"(Nmh+24) ) # 24 hour
oldp=( "$1"(Nmh+1) ) # 24 hour
oldp=( "$1"(Nmh+1) ) # 1 hour
(( $#oldp ))
}
@@ -141,8 +161,8 @@ __docker_caching_policy()
__docker_repositories () {
local expl
declare -a repos
repos=(${(f)"$(_call_program commands docker images | sed -e '1d' -e 's/[ ].*//' | sort | uniq)"})
_describe -t docker-repos "Repositories" repos "$@"
repos=(${${${(f)"$(_call_program commands docker images)"}%% *}[2,-1]})
_describe -t docker-repos "repositories" repos "$@"
}
__docker_commands () {
@@ -157,8 +177,9 @@ __docker_commands () {
if ( [[ ${+_docker_subcommands} -eq 0 ]] || _cache_invalid docker_subcommands) \
&& ! _retrieve_cache docker_subcommands;
then
_docker_subcommands=(${${(f)"$(_call_program commands
docker 2>&1 | sed -e '1,6d' -e '/^[ ]*$/d' -e 's/[ ]*\([^ ]\+\)\s*\([^ ].*\)/\1:\2/' )"}})
local -a lines
lines=(${(f)"$(_call_program commands docker 2>&1)"})
_docker_subcommands=(${${${lines[$((${lines[(i)Commands:]} + 1)),${lines[(I) *]}]}## #}/ ##/:})
_docker_subcommands=($_docker_subcommands 'help:Show help for a command')
_store_cache docker_subcommands _docker_subcommands
fi
@@ -171,21 +192,23 @@ __docker_subcommand () {
(attach)
_arguments \
'--no-stdin[Do not attach stdin]' \
'--sig-proxy[Proxify all received signal]' \
'--sig-proxy[Proxy all received signals to the process (non-TTY mode only)]' \
':containers:__docker_runningcontainers'
;;
(build)
_arguments \
'--force-rm[Always remove intermediate containers]' \
'--no-cache[Do not use cache when building the image]' \
'-q[Suppress verbose build output]' \
{-q,--quiet}'[Suppress verbose build output]' \
'--rm[Remove intermediate containers after a successful build]' \
'-t=-:repository:__docker_repositories_with_tags' \
{-t,--tag=-}'[Repository, name and tag to be applied]:repository:__docker_repositories_with_tags' \
':path or URL:_directories'
;;
(commit)
_arguments \
'--author=-[Author]:author: ' \
'-m=-[Commit message]:message: ' \
{-a,--author=-}'[Author]:author: ' \
{-m,--message=-}'[Commit message]:message: ' \
{-p,--pause}'[Pause container during commit]' \
'--run=-[Configuration automatically applied when the image is run]:configuration: ' \
':container:__docker_containers' \
':repository:__docker_repositories_with_tags'
@@ -207,24 +230,37 @@ __docker_subcommand () {
(diff|export)
_arguments '*:containers:__docker_containers'
;;
(events)
_arguments \
'--since=-[Events created since this timestamp]:timestamp: ' \
'--until=-[Events created until this timestamp]:timestamp: '
;;
(exec)
_arguments \
{-d,--detach}'[Detached mode: leave the container running in the background]' \
{-i,--interactive}'[Keep stdin open even if not attached]' \
{-t,--tty}'[Allocate a pseudo-tty]' \
':containers:__docker_runningcontainers'
;;
(history)
_arguments \
'--no-trunc[Do not truncate output]' \
'-q[Only show numeric IDs]' \
{-q,--quiet}'[Only show numeric IDs]' \
'*:images:__docker_images'
;;
(images)
_arguments \
'-a[Show all images]' \
{-a,--all}'[Show all images]' \
'*'{-f,--filter=-}'[Filter values]:filter: ' \
'--no-trunc[Do not truncate output]' \
'-q[Only show numeric IDs]' \
{-q,--quiet}'[Only show numeric IDs]' \
'--tree[Output graph in tree format]' \
'--viz[Output graph in graphviz format]' \
':repository:__docker_repositories'
;;
(inspect)
_arguments \
'--format=-[Format the output using the given go template]:template: ' \
{-f,--format=-}'[Format the output using the given go template]:template: ' \
'*:containers:__docker_containers'
;;
(import)
@@ -245,20 +281,29 @@ __docker_subcommand () {
'3:file:_files'
;;
(kill)
_arguments '*:containers:__docker_runningcontainers'
_arguments \
{-s,--signal=-}'[Signal to send]:signal:_signals' \
'*:containers:__docker_runningcontainers'
;;
(load)
_arguments \
{-i,--input=-}'[Read from tar archive file]:tar:_files'
;;
(login)
_arguments \
'-e=-[Email]:email: ' \
'-p=-[Password]:password: ' \
'-u=-[Username]:username: ' \
{-e,--email=-}'[Email]:email: ' \
{-p,--password=-}'[Password]:password: ' \
{-u,--user=-}'[Username]:username: ' \
':server: '
;;
(logout)
_arguments \
':server: '
;;
(logs)
_arguments \
'-f[Follow log output]' \
{-f,--follow}'[Follow log output]' \
{-t,--timestamps}'[Show timestamps]' \
'*:containers:__docker_containers'
;;
(port)
@@ -266,24 +311,32 @@ __docker_subcommand () {
'1:containers:__docker_runningcontainers' \
'2:port:_ports'
;;
(pause|unpause)
_arguments \
'1:containers:__docker_runningcontainers'
;;
(start)
_arguments \
'-a[Attach container'"'"'s stdout/stderr and forward all signals]' \
'-i[Attach container'"'"'s stding]' \
{-a,--attach}'[Attach container'"'"'s stdout/stderr and forward all signals]' \
{-i,--interactive}'[Attach container'"'"'s stding]' \
'*:containers:__docker_stoppedcontainers'
;;
(rm)
_arguments \
'--link[Remove the specified link and not the underlying container]' \
'-v[Remove the volumes associated to the container]' \
{-f,--force}'[Force removal]' \
{-l,--link}'[Remove the specified link and not the underlying container]' \
{-v,--volumes}'[Remove the volumes associated to the container]' \
'*:containers:__docker_stoppedcontainers'
;;
(rmi)
_arguments \
{-f,--force}'[Force removal]' \
'--no-prune[Do not delete untagged parents]' \
'*:images:__docker_images'
;;
(restart|stop)
_arguments '-t=-[Number of seconds to try to stop for before killing the container]:seconds to before killing:(1 5 10 30 60)' \
_arguments \
{-t,--time=-}'[Number of seconds to try to stop for before killing the container]:seconds to before killing:(1 5 10 30 60)' \
'*:containers:__docker_runningcontainers'
;;
(top)
@@ -299,47 +352,58 @@ __docker_subcommand () {
;;
(ps)
_arguments \
'-a[Show all containers]' \
{-a,--all}'[Show all containers]' \
'--before=-[Show only container created before...]:containers:__docker_containers' \
'-l[Show only the latest created container]' \
'-n=-[Show n last created containers, include non-running one]:n:(1 5 10 25 50)' \
'*'{-f,--filter=-}'[Filter values]:filter: ' \
{-l,--latest}'[Show only the latest created container]' \
'-n[Show n last created containers, include non-running one]:n:(1 5 10 25 50)' \
'--no-trunc[Do not truncate output]' \
'-q[Only show numeric IDs]' \
'-s[Display sizes]' \
{-q,--quiet}'[Only show numeric IDs]' \
{-s,--size}'[Display total file sizes]' \
'--since=-[Show only containers created since...]:containers:__docker_containers'
;;
(tag)
_arguments \
'-f[force]'\
{-f,--force}'[force]'\
':image:__docker_images'\
':repository:__docker_repositories_with_tags'
;;
(run)
(create|run)
_arguments \
'-P[Publish all exposed ports to the host]' \
'-a[Attach to stdin, stdout or stderr]' \
'-c=-[CPU shares (relative weight)]:CPU shares:(0 10 100 200 500 800 1000)' \
{-a,--attach}'[Attach to stdin, stdout or stderr]' \
'*--add-host=-[Add a custom host-to-IP mapping]:host\:ip mapping: ' \
{-c,--cpu-shares=-}'[CPU shares (relative weight)]:CPU shares:(0 10 100 200 500 800 1000)' \
'*--cap-add=-[Add Linux capabilities]:capability: ' \
'*--cap-drop=-[Drop Linux capabilities]:capability: ' \
'--cidfile=-[Write the container ID to the file]:CID file:_files' \
'-d[Detached mode: leave the container running in the background]' \
'--cpuset=-[CPUs in which to allow execution]:CPU set: ' \
{-d,--detach}'[Detached mode: leave the container running in the background]' \
'*--device=-[Add a host device to the container]:device:_files' \
'*--dns=-[Set custom dns servers]:dns server: ' \
'*-e=-[Set environment variables]:environment variable: ' \
'*--dns-search=-[Set custom DNS search domains]:dns domains: ' \
'*'{-e,--environment=-}'[Set environment variables]:environment variable: ' \
'--entrypoint=-[Overwrite the default entrypoint of the image]:entry point: ' \
'*--env-file=-[Read environment variables from a file]:environment file:_files' \
'*--expose=-[Expose a port from the container without publishing it]: ' \
'-h=-[Container host name]:hostname:_hosts' \
'-i[Keep stdin open even if not attached]' \
'--link=-[Add link to another container]:link:->link' \
'--lxc-conf=-[Add custom lxc options]:lxc options: ' \
'-m=-[Memory limit (in bytes)]:limit: ' \
{-h,--hostname=-}'[Container host name]:hostname:_hosts' \
{-i,--interactive}'[Keep stdin open even if not attached]' \
'*--link=-[Add link to another container]:link:->link' \
'*--lxc-conf=-[Add custom lxc options]:lxc options: ' \
'-m[Memory limit (in bytes)]:limit: ' \
'--name=-[Container name]:name: ' \
'*-p=-[Expose a container'"'"'s port to the host]:port:_ports' \
'--net=-[Network mode]:network mode:(bridge none container: host)' \
{-P,--publish-all}'[Publish all exposed ports]' \
'*'{-p,--publish=-}'[Expose a container'"'"'s port to the host]:port:_ports' \
'--privileged[Give extended privileges to this container]' \
'--restart=-[Restart policy]:restart policy:(no on-failure always)' \
'--rm[Remove intermediate containers when it exits]' \
'--sig-proxy[Proxify all received signal]' \
'-t[Allocate a pseudo-tty]' \
'-u=-[Username or UID]:user:_users' \
'*-v=-[Bind mount a volume (e.g. from the host: -v /host:/container, from docker: -v /container)]:volume: '\
'--volumes-from=-[Mount volumes from the specified container]:volume: ' \
'-w=-[Working directory inside the container]:directory:_directories' \
'*--security-opt=-[Security options]:security option: ' \
'--sig-proxy[Proxy all received signals to the process (non-TTY mode only)]' \
{-t,--tty}'[Allocate a pseudo-tty]' \
{-u,--user=-}'[Username or UID]:user:_users' \
'*-v[Bind mount a volume]:volume: '\
'*--volumes-from=-[Mount volumes from the specified container]:volume: ' \
{-w,--workdir=-}'[Working directory inside the container]:directory:_directories' \
'(-):images:__docker_images' \
'(-):command: _command_names -e' \
'*::arguments: _normal'
@@ -359,10 +423,11 @@ __docker_subcommand () {
_arguments ':name:__docker_search'
;;
(push)
_arguments ':repository:__docker_repositories_with_tags'
_arguments ':images:__docker_images'
;;
(save)
_arguments \
{-o,--output=-}'[Write to file]:file:_files' \
':images:__docker_images'
;;
(wait)
@@ -389,7 +454,7 @@ _docker () {
typeset -A opt_args
_arguments -C \
'-H=-[tcp://host:port to bind/connect to]:socket: ' \
'-H[tcp://host:port to bind/connect to]:socket: ' \
'(-): :->command' \
'(-)*:: :->option-or-argument'
@@ -408,3 +473,11 @@ _docker () {
}
_docker "$@"
# Local Variables:
# mode: Shell-Script
# sh-indentation: 4
# indent-tabs-mode: nil
# sh-basic-offset: 4
# End:
# vim: ft=zsh sw=4 ts=4 et
+2 -2
View File
@@ -7,5 +7,5 @@ desktop applications.
Examples
========
* Data container: ./data/Dockerfile creates a data image sharing /data volume
* Iceweasel: ./iceweasel/Dockerfile shows a way to dockerize a common multimedia application
* Chromium: ./chromium/Dockerfile shows a way to dockerize a common application
* Gparted: ./gparted/Dockerfile shows a way to dockerize a common application w devices
@@ -0,0 +1,36 @@
# VERSION: 0.1
# DESCRIPTION: Create chromium container with its dependencies
# AUTHOR: Jessica Frazelle <jess@docker.com>
# COMMENTS:
# This file describes how to build a Chromium container with all
# dependencies installed. It uses native X11 unix socket.
# Tested on Debian Jessie
# USAGE:
# # Download Chromium Dockerfile
# wget http://raw.githubusercontent.com/docker/docker/master/contrib/desktop-integration/chromium/Dockerfile
#
# # Build chromium image
# docker build -t chromium .
#
# # Run stateful data-on-host chromium. For ephemeral, remove -v /data/chromium:/data
# docker run -v /data/chromium:/data -v /tmp/.X11-unix:/tmp/.X11-unix \
# -e DISPLAY=unix$DISPLAY chromium
# # To run stateful dockerized data containers
# docker run --volumes-from chromium-data -v /tmp/.X11-unix:/tmp/.X11-unix \
# -e DISPLAY=unix$DISPLAY chromium
# Base docker image
FROM debian:jessie
MAINTAINER Jessica Frazelle <jess@docker.com>
# Install Chromium
RUN apt-get update && apt-get install -y \
chromium \
chromium-l10n \
libcanberra-gtk-module \
libexif-dev \
--no-install-recommends
# Autorun chromium
CMD ["/usr/bin/chromium", "--no-sandbox", "--user-data-dir=/data"]
@@ -1,38 +0,0 @@
# VERSION: 0.1
# DESCRIPTION: Create data image sharing /data volume
# AUTHOR: Daniel Mizyrycki <daniel@dotcloud.com>
# COMMENTS:
# This image is used as base for all data containers.
# /data volume is owned by sysadmin.
# USAGE:
# # Download data Dockerfile
# wget http://raw.githubusercontent.com/dotcloud/docker/master/contrib/desktop-integration/data/Dockerfile
#
# # Build data image
# docker build -t data .
#
# # Create a data container. (eg: iceweasel-data)
# docker run --name iceweasel-data data true
#
# # List data from it
# docker run --volumes-from iceweasel-data busybox ls -al /data
docker-version 0.6.5
# Smallest base image, just to launch a container
FROM busybox
MAINTAINER Daniel Mizyrycki <daniel@docker.com>
# Create a regular user
RUN echo 'sysadmin:x:1000:1000::/data:/bin/sh' >> /etc/passwd
RUN echo 'sysadmin:x:1000:' >> /etc/group
# Create directory for that user
RUN mkdir /data
RUN chown sysadmin.sysadmin /data
# Add content to /data. This will keep sysadmin ownership
RUN touch /data/init_volume
# Create /data volume
VOLUME /data
@@ -0,0 +1,31 @@
# VERSION: 0.1
# DESCRIPTION: Create gparted container with its dependencies
# AUTHOR: Jessica Frazelle <jess@docker.com>
# COMMENTS:
# This file describes how to build a gparted container with all
# dependencies installed. It uses native X11 unix socket.
# Tested on Debian Jessie
# USAGE:
# # Download gparted Dockerfile
# wget http://raw.githubusercontent.com/docker/docker/master/contrib/desktop-integration/gparted/Dockerfile
#
# # Build gparted image
# docker build -t gparted .
#
# docker run -v /tmp/.X11-unix:/tmp/.X11-unix \
# --device=/dev/sda:/dev/sda \
# -e DISPLAY=unix$DISPLAY gparted
#
# Base docker image
FROM debian:jessie
MAINTAINER Jessica Frazelle <jess@docker.com>
# Install Gparted and its dependencies
RUN apt-get update && apt-get install -y \
gparted \
libcanberra-gtk-module \
--no-install-recommends
# Autorun gparted
CMD ["/usr/sbin/gparted"]
@@ -1,41 +0,0 @@
# VERSION: 0.7
# DESCRIPTION: Create iceweasel container with its dependencies
# AUTHOR: Daniel Mizyrycki <daniel@dotcloud.com>
# COMMENTS:
# This file describes how to build a Iceweasel container with all
# dependencies installed. It uses native X11 unix socket and alsa
# sound devices. Tested on Debian 7.2
# USAGE:
# # Download Iceweasel Dockerfile
# wget http://raw.githubusercontent.com/dotcloud/docker/master/contrib/desktop-integration/iceweasel/Dockerfile
#
# # Build iceweasel image
# docker build -t iceweasel .
#
# # Run stateful data-on-host iceweasel. For ephemeral, remove -v /data/iceweasel:/data
# docker run -v /data/iceweasel:/data -v /tmp/.X11-unix:/tmp/.X11-unix \
# -v /dev/snd:/dev/snd --lxc-conf='lxc.cgroup.devices.allow = c 116:* rwm' \
# -e DISPLAY=unix$DISPLAY iceweasel
#
# # To run stateful dockerized data containers
# docker run --volumes-from iceweasel-data -v /tmp/.X11-unix:/tmp/.X11-unix \
# -v /dev/snd:/dev/snd --lxc-conf='lxc.cgroup.devices.allow = c 116:* rwm' \
# -e DISPLAY=unix$DISPLAY iceweasel
docker-version 0.6.5
# Base docker image
FROM debian:wheezy
MAINTAINER Daniel Mizyrycki <daniel@docker.com>
# Install Iceweasel and "sudo"
RUN apt-get update && apt-get install -y iceweasel sudo
# create sysadmin account
RUN useradd -m -d /data -p saIVpsc0EVTwA sysadmin
RUN sed -Ei 's/sudo:x:27:/sudo:x:27:sysadmin/' /etc/group
RUN sed -Ei 's/(\%sudo\s+ALL=\(ALL\:ALL\) )ALL/\1 NOPASSWD:ALL/' /etc/sudoers
# Autorun iceweasel. -no-remote is necessary to create a new container, as
# iceweasel appears to communicate with itself through X11.
CMD ["/usr/bin/sudo", "-u", "sysadmin", "-H", "-E", "/usr/bin/iceweasel", "-no-remote"]
+8 -4
View File
@@ -3,12 +3,15 @@ package main
import (
"flag"
"fmt"
"github.com/docker/docker/daemon/graphdriver/devmapper"
"os"
"path"
"sort"
"strconv"
"strings"
log "github.com/Sirupsen/logrus"
"github.com/docker/docker/daemon/graphdriver/devmapper"
"github.com/docker/docker/pkg/devicemapper"
)
func usage() {
@@ -60,6 +63,7 @@ func main() {
if *flDebug {
os.Setenv("DEBUG", "1")
log.SetLevel(log.DebugLevel)
}
if flag.NArg() < 1 {
@@ -69,7 +73,7 @@ func main() {
args := flag.Args()
home := path.Join(*root, "devicemapper")
devices, err := devmapper.NewDeviceSet(home, false)
devices, err := devmapper.NewDeviceSet(home, false, nil)
if err != nil {
fmt.Println("Can't initialize device mapper: ", err)
os.Exit(1)
@@ -142,7 +146,7 @@ func main() {
usage()
}
err := devices.RemoveDevice(args[1])
err := devicemapper.RemoveDevice(args[1])
if err != nil {
fmt.Println("Can't remove device: ", err)
os.Exit(1)
@@ -153,7 +157,7 @@ func main() {
usage()
}
err := devices.MountDevice(args[1], args[2], false)
err := devices.MountDevice(args[1], args[2], "")
if err != nil {
fmt.Println("Can't create snap device: ", err)
os.Exit(1)
-2
View File
@@ -2,8 +2,6 @@
# This Dockerfile will create an image that allows to generate upstart and
# systemd scripts (more to come)
#
# docker-version 0.6.2
#
FROM ubuntu:12.10
MAINTAINER Guillaume J. Charmes <guillaume@docker.com>
+1
View File
@@ -1,2 +1,3 @@
Lokesh Mandvekar <lsm5@fedoraproject.org> (@lsm5)
Brandon Philips <brandon.philips@coreos.com> (@philips)
Jessie Frazelle <jess@docker.com> (@jfrazelle)
+1 -1
View File
@@ -10,4 +10,4 @@ LimitNOFILE=1048576
LimitNPROC=1048576
[Install]
Also=docker.socket
WantedBy=multi-user.target
+1
View File
@@ -1,5 +1,6 @@
[Unit]
Description=Docker Socket for the API
PartOf=docker.service
[Socket]
ListenStream=/var/run/docker.sock
+1 -1
View File
@@ -68,7 +68,7 @@ start() {
stop() {
echo -n $"Stopping $prog: "
killproc -p $pidfile $prog
killproc -p $pidfile -d 300 $prog
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
+2
View File
@@ -0,0 +1,2 @@
Tianon Gravi <admwiggin@gmail.com> (@tianon)
Jessie Frazelle <jess@docker.com> (@jfrazelle)
+1 -1
View File
@@ -60,6 +60,6 @@ mknod -m 600 $DEV/initctl p
mknod -m 666 $DEV/ptmx c 5 2
ln -sf /proc/self/fd $DEV/fd
tar --numeric-owner -C $ROOTFS -c . | docker import - archlinux
tar --numeric-owner --xattrs --acls -C $ROOTFS -c . | docker import - archlinux
docker run -i -t archlinux echo Success.
rm -rf $ROOTFS

Some files were not shown because too many files have changed in this diff Show More