4598 Commits

Author SHA1 Message Date
Brian Goff
d1c9e9cfe9 Ensure unmount before removing local volume.
When there is an error unmounting a local volume, it is still possible
to call `Remove()` on the volume causing removal of the mounted
resources which is generally not desirable.

This ensures that resources are unmounted before attempting removal.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
(cherry picked from commit db3576f8a0)
Signed-off-by: Victor Vieux <victorvieux@gmail.com>
2017-05-04 13:56:32 -07:00
Daniel Nephin
a4e352ccb0 Fix cache miss when builtin build args are used.
Signed-off-by: Daniel Nephin <dnephin@docker.com>
2017-05-01 18:20:32 -04:00
Dave Tucker
8c532a6822 builder: Make builtin arg pruning work with > 1 arg
The previous implementation would error out with "Unexpected EOF" which
was caused by an underlying "array index out-of-bounds" error.
The root cause was deleting items from the same array that was being
iterated over. The iteration was unaware that the array size had
changed, resulting in an error.

The new implementation builds a new array instead of mutating a copy of
the old one.

Fixes: #32744

Signed-off-by: Dave Tucker <dt@docker.com>
2017-05-01 18:18:01 -04:00
Aaron Lehmann
2c09664574 integration-cli: Have TestSwarmJoinPromoteLocked wait for the role to change in the certificate
Since the certificate may be renewed multiple times, this check is
necessary.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
(cherry picked from commit 2b5ef9bfef)
2017-04-17 22:22:39 -07:00
Ying Li
13eac920b4 Add tests to ensure we can add an external CA to the cluster without
error.

Signed-off-by: Ying Li <ying.li@docker.com>
2017-04-12 16:53:07 -07:00
Sebastiaan van Stijn
f30e94a495 Merge pull request #32505 from fcrisciani/conntrack_test
Conntrack flush support
2017-04-11 16:40:56 +02:00
Sebastiaan van Stijn
a258ef58d8 Merge pull request #32284 from aaronlehmann/fix-service-defaults
Improve default handling for "service create"
2017-04-11 13:06:53 +02:00
Flavio Crisciani
1c4286bcff Adding test for docker/docker#8795
When a container was being destroyed was possible to have
flows in conntrack left behind on the host.
If a flow is present into the conntrack table, the packet
processing will skip the POSTROUTING table of iptables and
will use the information in conntrack to do the translation.
For this reason is possible that long lived flows created
towards a container that is destroyed, will actually affect
new flows incoming to the host, creating erroneous conditions
where traffic cannot reach new containers.
The fix takes care of cleaning them up when a container is
destroyed.

The test of this commit is actually reproducing the condition
where an UDP flow is established towards a container that is then
destroyed. The test verifies that the flow established is gone
after the container is destroyed.

Signed-off-by: Flavio Crisciani <flavio.crisciani@docker.com>
2017-04-10 21:31:35 -07:00
Victor Vieux
18ae574cab Merge pull request #32496 from tonistiigi/build-target
builder: add an option for specifying build target
2017-04-10 19:02:21 -07:00
Victor Vieux
17a3e4511d Merge pull request #32462 from dperny/service-logs-general-availability
Remove experimental from service logs
2017-04-10 18:30:20 -07:00
Tonis Tiigi
33e07f41ad builder: add an option for specifying build target
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2017-04-10 16:21:43 -07:00
Aaron Lehmann
1d274e9acf Change "service inspect" to show defaults in place of empty fields
This adds a new parameter insertDefaults to /services/{id}. When this is
set, an empty field (such as UpdateConfig) will be populated with
default values in the API response. Make "service inspect" use this, so
that empty fields do not result in missing information when inspecting a
service.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2017-04-10 13:41:16 -07:00
Drew Erny
306cfecc8c Remove experimental from service logs
Service logs API is now stable. Service logs now support all features,
except retrieving details provided to the log driver.

Signed-off-by: Drew Erny <drew.erny@docker.com>
2017-04-10 13:40:45 -07:00
Sebastiaan van Stijn
28334c1d82 Merge pull request #28403 from cpuguy83/logging_plugins
Implement plugins for logging drivers
2017-04-10 21:57:56 +02:00
Vincent Demeester
778e32a2fa Merge pull request #31236 from tonistiigi/docker-stdin
build: accept -f - to read Dockerfile from stdin
2017-04-10 20:14:54 +02:00
Sebastiaan van Stijn
5b1cae2271 Merge pull request #31148 from yongtang/31032-NanoCPU-update
Add `--cpus` support for `docker update`
2017-04-10 20:02:15 +02:00
Vincent Demeester
4460312ce1 Merge pull request #30740 from yongtang/29999-prune-filter-label
Add `label` filter for `docker system prune`
2017-04-10 19:38:01 +02:00
Daniel Nephin
4d9e32a08e Merge pull request #31352 from dnephin/allow-arg-in-fromt
[dockerfile] Allow ARG in FROM
2017-04-10 13:23:40 -04:00
Brian Goff
27bd6842f8 Implement plugins for logging drivers
Logging plugins use the same HTTP interface as other plugins for basic
command operations meanwhile actual logging operations are handled (on
Unix) via a fifo.

The plugin interface looks like so:

```go
type loggingPlugin interface {
  StartLogging(fifoPath string, loggingContext Context) error
  StopLogging(fifoPath)
```

This means a plugin must implement `LoggingDriver.StartLogging` and
`LoggingDriver.StopLogging` endpoints and be able to consume the passed
in fifo.

Logs are sent via stream encoder to the fifo encoded with protobuf.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2017-04-10 13:17:20 -04:00
Vincent Demeester
a48f4257f0 Merge pull request #32084 from simonferquel/multi-stage-builds-windows
Multi stage builds cleanup for Windows
2017-04-10 17:36:36 +02:00
Sebastiaan van Stijn
61d3ddfe78 Merge pull request #32285 from dmcgowan/revert-fix-for-flaky-misconfigured-token-test
Revert change to TestPushMisconfiguredTokenServiceResponseError
2017-04-10 16:34:58 +02:00
Sebastiaan van Stijn
b0831acb09 Merge pull request #32062 from aaronlehmann/change-network-attachments
Support service network attachment changes
2017-04-10 12:49:28 +02:00
Alessandro Boch
010e5a228a Add test over ipv6 and container run in host network
Signed-off-by: Alessandro Boch <aboch@docker.com>
2017-04-07 16:58:20 -07:00
Aaron Lehmann
0f2669a638 cli: Allow service's networks to be updated
Resolve networks IDs on the client side.

Avoid filling in deprecated Spec.Networks field.

Sort networks in the TaskSpec for update stability.

Add an integration test for changing service networks.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2017-04-07 16:46:25 -07:00
Brian Goff
4a1a64c677 Merge pull request #32154 from dperny/refactor-logs
Refactor logs and support service logs with TTY
2017-04-07 18:06:50 -04:00
Daniel Nephin
239c53bf83 Refactor BuildArgs
Add MetaArgs for ARG that occur before the first FROM
Integration test for these cases.

Signed-off-by: Daniel Nephin <dnephin@docker.com>
2017-04-07 17:57:47 -04:00
Simon Ferquel
b0e7588873 Test and fix forbidden path for COPY --from on Windows
Paths resolving to c:\ or c:\windows are forbidden

Replaced the obscure (and non-working) regex with a simple case
insensitive comparison to the black listed paths (we should forbid c:\,
c:\windows but not d:\)

Also, add a test ensuring paths are case insensitive on windows

Also, made sure existing multi-staged build tests pass on windows

Signed-off-by: Simon Ferquel <simon.ferquel@docker.com>
2017-04-07 18:00:36 +02:00
Drew Erny
1044093bb0 refactor logs and support service logs /w tty
Refactor container logs system to make communicating log messages
internally much simpler. Move responsibility for marshalling log
messages into the REST server. Support TTY logs. Pave the way for fixing
the ambiguous bytestream format. Pave the way for fixing details.

Signed-off-by: Drew Erny <drew.erny@docker.com>
2017-04-06 17:54:11 -07:00
Aaron Lehmann
6763641d69 Add integration test for START_FIRST update order
Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2017-04-06 17:23:36 -07:00
Yong Tang
6102243692 Add --cpus support for docker update
This fix tries to address the issue raised in 31032 where it was
not possible to specify `--cpus` for `docker update`.

This fix adds `--cpus` support for `docker update`. In case both
`--cpus` and `--cpu-period/--cpu-quota` have been specified,
an error will be returned.

Related docs has been updated.

Integration tests have been added.

This fix fixes 31032.

This fix is related to 27921, 27958.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
2017-04-06 15:40:12 -07:00
Daniel Nephin
8cd6c30a48 Upadte archive.ReplaceFileTarWrapper() to not expect a sorted archive
Improve test coverage of ReplaceFileTarWrapper()

Signed-off-by: Daniel Nephin <dnephin@docker.com>
2017-04-06 13:36:34 -04:00
Yong Tang
7025247324 Add label filter for docker system prune
This fix tries to address the issue raised in 29999 where it was not
possible to mask these items (like important non-removable stuff)
from `docker system prune`.

This fix adds `label` and `label!` field for `--filter` in `system prune`,
so that it is possible to selectively prune items like:
```
$ docker container prune --filter label=foo

$ docker container prune --filter label!=bar
```

Additional unit tests and integration tests have been added.

This fix fixes 29999.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
2017-04-06 09:11:25 -07:00
David Sheets
3f6dc81e10 build: accept -f - to read Dockerfile from stdin
Heavily based on implementation by David Sheets

Signed-off-by: David Sheets <sheets@alum.mit.edu>
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2017-04-05 19:42:31 -04:00
Derek McGowan
5ff82cffee Revert retry count change
Allowing the retries to go up to 10 causes the test to always
hit the check against ensuring the retry wait went up to 15 seconds.
Additionally we have the max download attempts in the code set to
5. This change did not protect against using this test to expose
a problem in the underlying code. Remove checks for retry since
there may be additional requests before the upload.

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
2017-04-05 16:07:43 -07:00
Vincent Demeester
945a119c8a Merge pull request #32251 from AkihiroSuda/run-mount
cli: add `--mount` to `docker run`
2017-04-05 22:34:47 +02:00
Brian Goff
b7c3b312c9 Merge pull request #32268 from cpuguy83/volume_err_obfuscate
don't obfuscate error during volume create
2017-04-05 09:05:10 -04:00
Akihiro Suda
77fe35b3b9 cli: add --mount to docker run
Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
2017-04-05 04:52:08 +00:00
Tonis Tiigi
79ccb3478f Add a multi stage trusted build testcase
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2017-04-04 09:56:00 -07:00
Tonis Tiigi
672ea30a94 Add support for FROM using named block
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2017-04-04 09:34:28 -07:00
Tonis Tiigi
73b4b8ed7f Implicit copy-from with reference
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2017-04-04 09:34:28 -07:00
Tonis Tiigi
87512bbc84 Add named context support
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2017-04-04 09:34:28 -07:00
Victor Vieux
170be9c267 Merge pull request #32015 from dperny/service-logs-support-task-logs
Add Support for Service Task Logs
2017-04-04 00:15:13 -07:00
Drew Erny
d330dc3223 Add support for task and arbitrary combo logs
Refactored the API to more easily accept new endpoints. Added REST,
client, and CLI endpoints for getting logs from a specific task. All
that is needed after this commit to enable arbitrary service log
selectors is a REST endpoint and handler.

Task logs can be retrieved by putting in a task ID at the CLI instead of
a service ID.

Signed-off-by: Drew Erny <drew.erny@docker.com>
2017-04-03 18:40:54 -07:00
Brian Goff
53c7995c8b Merge pull request #32312 from thaJeztah/unit-test-remove-errormessage
create unit tests for rm (running, paused, restarting) errormessages
2017-04-03 21:05:30 -04:00
Brian Goff
3b80094665 don't obfuscate error during create
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2017-04-03 21:04:40 -04:00
Victor Vieux
21ec12b967 Merge pull request #31144 from aaronlehmann/synchronous-service-commands
Synchronous service create and service update
2017-04-03 17:44:03 -07:00
Vincent Demeester
3fb84ca2f5 Merge pull request #32076 from tmp6154/master
Bump up nproc in TestExecUlimits
2017-04-03 22:30:28 +02:00
Sebastiaan van Stijn
2759194d44 create unit tests for rm (running, paused, restarting) errormessages
These integration tests were basically testing if a
decent error message was printed when attempting
to remove a running, paused, or restarting container.

Moving these tests to a unit-test to make the tests
not flaky (especially on the "restarting" container
test).

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2017-04-03 21:58:05 +02:00
Aaron Lehmann
330a003533 Synchronous service create and service update
Change "service create" and "service update" to wait until the creation
or update finishes, when --detach=false is specified. Show progress bars
for the overall operation and for each individual task (when there are a
small enough number of tasks), unless "-q" / "--quiet" is specified.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2017-04-03 09:46:01 -07:00
Vitaly Ostrosablin
d4e132f84d Change TestExecUlimits to use nofile instead of nproc
Test used to check whether ulimits applied by docker are in effect by
setting up nproc. However, in some environments (e.g. inside Virtuozzo
Containers), number of processes is higher and testcase fails. Hence, we
instead change testcase to check ulimits by setting nofile limit instead
of nproc.

Signed-off-by: Vitaly Ostrosablin <vostrosablin@virtuozzo.com>
2017-04-03 10:43:43 +03:00