Commit Graph

620 Commits

Author SHA1 Message Date
2f9b83d720 Clean integration-cli/utils.go from most of its content
Most of the code is now on pkg/integration.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
Upstream-commit: def13fa23c812d367e3c61d9c39bdcee66929c17
Component: engine
2016-12-28 19:05:48 +01:00
c3b264f4f3 Global variable workingDirectory is not needed…
… and given where it was used, it should be quicker to create an empty
folder instead of passing potentially a big context with unrelated file.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
Upstream-commit: 3dd25b97902e064f43d56632d3a72768e36eecc5
Component: engine
2016-12-19 13:25:11 +01:00
94e0a7d0c7 Use *check.C in StartWithBusybox, Start, Stop and Restart…
… to make sure it doesn't fail. It also introduce StartWithError,
StopWithError and RestartWithError in case we care about the
error (and want the error to happen).

This removes the need to check for error and make the intent more
clear : I want a deamon with busybox loaded on it — if an error occur
it should fail the test, but it's not the test code that has the
responsability to check that.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
Upstream-commit: c502fb49dc7af89adfb2a9686354aa78c2c46002
Component: engine
2016-12-12 09:46:47 +01:00
71651385ac Extract daemon to its own package
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
Upstream-commit: 48de91a33f097d4c20515088af1f5bcb9a98c5c9
Component: engine
2016-12-09 22:26:42 +01:00
913e79bf2c Merge pull request #29224 from vdemeester/check-no-errors
Use check in params so we don't ignore errors
Upstream-commit: 7ea31b4034a52ffc67067222e24265d19bcff6ba
Component: engine
2016-12-09 00:26:20 +01:00
53aa37ffde Remove some unused global variables
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
Upstream-commit: 58ad9177d7454893b4b5fca59e4b6b5b9e622308
Component: engine
2016-12-08 19:51:42 +01:00
e76537d57c Fix issue for --hostname when running in "--net=host"
This fix tries to address the issue raised in 29129 where
"--hostname" not working when running in "--net=host" for
`docker run`.

The fix fixes the issue by not resetting the `container.Config.Hostname`
if the `Hostname` has already been assigned through `--hostname`.

An integration test has been added to cover the changes.

This fix fixes 29129.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Upstream-commit: b0a7b0120f4461daa34527a743087e73ef8f5963
Component: engine
2016-12-06 07:29:45 -08:00
78547424d3 Merge pull request #28823 from AkihiroSuda/ensure-dev-pts-readonly
add a test for ensuring the behavior of read-only /dev/shm
Upstream-commit: 11702c66cfce350ff710d5170921a83b9748d4bf
Component: engine
2016-12-06 08:39:43 -05:00
cecb5272ed add a test for ensuring the behavior of read-only /dev/shm
The test ensures that `docker run --read-only -v /var/empty:/dev/shm:ro`
makes /dev/shm read-only

Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
Upstream-commit: 46ade6acb5b6cdb80287a83afd16c20c6a8b4dff
Component: engine
2016-12-06 03:44:02 +00:00
c0aa09b760 Merge pull request #28988 from vdemeester/28985-dont-validate-hostname
Remove hostname validation as it seems to break users
Upstream-commit: 3cb310c21049f652dd00d20899cb1ece1ee9aa8f
Component: engine
2016-12-02 21:16:56 -05:00
a66f1eed5f Merge pull request #28838 from AkihiroSuda/remove-run-mount
[Revert #26825] cli: remove `--mount` from `docker run`
Upstream-commit: caaa52c124539acb396c0b711ab95bc7ed459540
Component: engine
2016-11-30 11:56:42 -08:00
c46ac53d0a Remove hostname validation as it seems to break users
Validation is still done by swarmkit on the service side.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
Upstream-commit: ef39256dfb711f8382a5c021b85d6c7d613282b0
Component: engine
2016-11-30 19:22:07 +01:00
89a9795d2b Merge pull request #28710 from miaoyq/eliminate-redundant-parameters
Eliminate the redundant parameter
Upstream-commit: 76a0dfaa8e77fc04d97357fcb999d669b6485db2
Component: engine
2016-11-26 14:37:17 +01:00
8f7e98f07f cli: remove --mount from docker run
This commit reverts 273eeb813c1db0f42c2ad5e053972eeb00907568 (#26825).
For the discussion so far, please refer to #28527.

Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
Upstream-commit: e6d9b7de649c0b3b59c7d9b698af1c58f6dce289
Component: engine
2016-11-26 04:55:28 +00:00
2c0a815816 Windows: Update TP5 refs in run_test.go
Signed-off-by: John Howard <jhoward@microsoft.com>
Upstream-commit: 38faf6e04377e063b54da1f610802a54a88371d0
Component: engine
2016-11-23 14:28:06 -08:00
160495ca21 Fixes some integration-cli on userns
Mainly adding requirements on Network or NotUserNamespace to make it pass.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
Upstream-commit: eb5fe064cfb8475e9f6fb9beac98ad6ce63be2a3
Component: engine
2016-11-23 14:03:53 +01:00
9b69a300d4 Eliminate redundant parameters
Signed-off-by: Yanqiang Miao <miao.yanqiang@zte.com.cn>

update

Signed-off-by: Yanqiang Miao <miao.yanqiang@zte.com.cn>
Upstream-commit: 58028a2919f1ee794a058fb3451a5145a6382b4d
Component: engine
2016-11-23 09:28:13 +08:00
c0d4c1f04f Fix race on sending stdin close event
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
Upstream-commit: 4e262f63876018ca78d54a98eee3f533352b0ac9
Component: engine
2016-11-21 17:43:01 -08:00
fef442cb37 Merge pull request #28098 from yongtang/25099-oom_score_adj-empty-env
Fix `/proc/<pid>/oom_score_adj: invalid argument` error caused by empty env name
Upstream-commit: c025049c27c2cc8a6f1f978769c89a1fdf07a6f3
Component: engine
2016-11-09 10:39:18 +01:00
547ab32cd4 TestRunDuplicateMount requires the same host
Signed-off-by: John Stephens <johnstep@docker.com>
Upstream-commit: bc87ec381579892642b73b4293886d80403fc2e8
Component: engine
2016-11-07 10:19:06 -08:00
77f8e3ea0c Fix /proc/<pid>/oom_score_adj: invalid argument error caused by empty env name
This fix is part of the fix for issue 25099. In 25099, if an env
has a empty name, then `docker run` will throw out an error:
```
ubuntu@ubuntu:~/docker$ docker run -e =A busybox true
docker: Error response from daemon: invalid header field value "oci runtime error:
container_linux.go:247: starting container process caused \"process_linux.go:295:
setting oom score for ready process caused \\\"write /proc/83582/oom_score_adj:
invalid argument\\\"\"\n".
```

This fix validates the Env in the container spec before it is sent
to containerd/runc.

Integration tests have been created to cover the changes.

This fix is part of fix for 25099 (not complete yet, non-utf case
may require a fix in `runc`).
This fix is related to 25300.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Upstream-commit: 818d55c34bed99b108e6102ef6aa6ef181567ce3
Component: engine
2016-11-07 08:15:26 -08:00
c8300bf35f Windows: Add cpu count option
Signed-off-by: Darren Stahl <darst@microsoft.com>
Upstream-commit: 4e15420b9be50ddd7fa65e5c7f9b732777f9cc35
Component: engine
2016-11-04 13:38:50 -07:00
2213e9bb9f cli: add --mount to docker run
Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
Upstream-commit: 273eeb813c1db0f42c2ad5e053972eeb00907568
Component: engine
2016-11-03 07:08:59 +00:00
21f49a2c56 Fix issue related to duplicate identical bind mounts for docker run
This fix tries to address the issue raised in 27969 where
duplicate identical bind mounts for `docker run` caused additional volumes
to be created.

The reason was that in `runconfig`, if duplicate identical bind mounts
have been specified, the `copts.volumes.Delete(bind)` will not truly
delete the second entry from the slice. (Only the first entry is deleted).

This fix fixes the issue.

An integration test has been added to cover the changes

This fix fixes 27969.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Upstream-commit: 90ce6de50b3e5e39f8417e9804970c0fd1377062
Component: engine
2016-11-01 20:31:34 -07:00
34bac6f06e Fix bunch of typos
Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
Upstream-commit: e6866492c4492db3bb9546afa2fbaed20f4c1883
Component: engine
2016-10-29 15:03:26 +08:00
54d7e7421f Merge pull request #27503 from Microsoft/validcredspec
Windows: Add cred spec test with well form credentials
Upstream-commit: 6e462412d721525ee85f8a8874e933f16d0a27ce
Component: engine
2016-10-25 13:44:52 -07:00
87b7e2db81 Windows: Update Dockerfile.windows
Signed-off-by: John Howard <jhoward@microsoft.com>
Upstream-commit: 9a19bd1b450a4f514d194d8a5571ab5be921464a
Component: engine
2016-10-21 16:06:29 -07:00
829ef91506 Windows: Cred spec test with well form credentials
Signed-off-by: John Howard <jhoward@microsoft.com>
Upstream-commit: b8977ae537d96b1023a5c65b14317cee6fb7e256
Component: engine
2016-10-18 12:17:56 -07:00
3962433600 Fix API incompatibilities between notary v0.3.0 and v0.4.2:
- some function signatures have changed - use the new ones
- re-generate the notary delegation key certs, since notary doesn't allow SHA1
- fix some error message mapping because now if a root rotation fails to validate trusted operations will fail

Signed-off-by: cyli <cyli@twistedmatrix.com>
Upstream-commit: 0797af39c2abb681a0e291651686872539a9e187
Component: engine
2016-10-14 17:53:34 -07:00
2db92bdde1 Merge pull request #27217 from Microsoft/jjh/servicingcitest
Windows: Test for container servicing
Upstream-commit: 9db46989294621ca63b200a690921ceb62c63db8
Component: engine
2016-10-12 15:50:52 +02:00
30c8a928f4 Merge pull request #26804 from stevvooe/clear-tlsconfig-unix-socket
client: pedantic checking of tlsconfig
Upstream-commit: 9bd8c1d3321d1b264e84ff5fba4dc04730c264f3
Component: engine
2016-10-11 15:47:47 -07:00
0e03874c86 Windows: Test for container servicing
Signed-off-by: John Howard <jhoward@microsoft.com>
Upstream-commit: 25a148918e352168d4b3654c8d05adc891d83c59
Component: engine
2016-10-07 10:47:54 -07:00
75a301f015 Windows: Support credential specs
Signed-off-by: John Howard <jhoward@microsoft.com>
Upstream-commit: e85867cb68cc28208c91bb43fc5cdcff824c468e
Component: engine
2016-10-06 09:32:22 -07:00
b172aee005 Merge pull request #27078 from darrenstahlmsft/InteractiveRestartTest
Increase timeout in TestRunInteractiveWithRestartPolicy
Upstream-commit: e22d4b9654620da086a6e90b95427ba6a7ef4422
Component: engine
2016-10-03 11:22:33 -07:00
d14cd42778 Increase timeout in TestRunInteractiveWithRestartPolicy
Signed-off-by: Darren Stahl <darst@microsoft.com>
Upstream-commit: 6eac29490f9bffcb21525f9fcba389ac3dc89e85
Component: engine
2016-09-30 15:30:18 -07:00
ed910442b7 [nit] integration-cli: obey Go's naming convention
No substantial code change.

 - Api         --> API
 - Cli         --> CLI
 - Http, Https --> HTTP, HTTPS
 - Id          --> ID
 - Uid,Gid,Pid --> UID,PID,PID
 - Ipam        --> IPAM
 - Tls         --> TLS (TestDaemonNoTlsCliTlsVerifyWithEnv --> TestDaemonTLSVerifyIssue13964)

Didn't touch in this commit:
 - Git: because it is officially "Git": https://git-scm.com/
 - Tar: because it is officially "Tar": https://www.gnu.org/software/tar/
 - Cpu, Nat, Mac, Ipc, Shm: for keeping a consistency with existing production code (not changable, for compatibility)

Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
Upstream-commit: 7fb7a477d79c67ab53c432977780662ccbfeec57
Component: engine
2016-09-30 01:21:05 +00:00
d96c693644 client: pedantic checking of tlsconfig
Under the convoluted code path for the transport configuration,
TLSConfig was being set even though the socket type is unix. This caused
other code detecting the TLSConfig to assume https, rather than using
the http scheme. This led to a situation where if `DOCKER_CERT_PATH` is
set, unix sockets start reverting to https. There is other odd behavior
from go-connections that is also reproduced here.

For the most part, we try to reproduce the side-effecting behavior from
go-connections to retain the current docker behavior. This whole mess
needs to ripped out and fixed, as this pile spaghetti is unnacceptable.

This code is way to convoluted for an http client. We'll need to fix
this but the Go API will break to do it.

Signed-off-by: Stephen J Day <stephen.day@docker.com>
Upstream-commit: dc9f5c2ca3cdf8fef5786a80a0a1b0e7c18d4420
Component: engine
2016-09-27 16:27:48 -07:00
a3e576de79 Merge pull request #26744 from LK4D4/attach_before_start
libcontainerd: attach streams before create
Upstream-commit: f67096c20b0bcbee115c9923861bfc25bbe3b4f2
Component: engine
2016-09-26 13:08:05 -07:00
91744d608c Windows: Remove interim build hacks from tests
Signed-off-by: John Howard <jhoward@microsoft.com>
Upstream-commit: b52c3ec4a45ee89d8ad713a16566fd470b4b5bf1
Component: engine
2016-09-21 11:11:13 -07:00
02d52c35b1 libcontainerd: attach streams before create
Fix #26371

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
Upstream-commit: 02d1934279294f28af6e509a29f909654677ed8b
Component: engine
2016-09-21 09:16:12 -07:00
8ee0f56810 Add init process for zombie fighting
This adds a small C binary for fighting zombies.  It is mounted under
`/dev/init` and is prepended to the args specified by the user.  You
enable it via a daemon flag, `dockerd --init`, as it is disable by
default for backwards compat.

You can also override the daemon option or specify this on a per
container basis with `docker run --init=true|false`.

You can test this by running a process like this as the pid 1 in a
container and see the extra zombie that appears in the container as it
is running.

```c

int main(int argc, char ** argv) {
	pid_t pid = fork();
	if (pid == 0) {
		pid = fork();
		if (pid == 0) {
			exit(0);
		}
		sleep(3);
		exit(0);
	}
	printf("got pid %d and exited\n", pid);
	sleep(20);
}
```

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
Upstream-commit: ee3ac3aa66bfb27b7c21dfb253fdaa113baedd4e
Component: engine
2016-09-19 17:33:50 -07:00
422892f89b Merge pull request #25540 from estesp/ro-plus-userns
Remove --read-only restriction when user ns enabled
Upstream-commit: 8ac2000f5065b887753ffe32d2b793bb4bbd84c5
Component: engine
2016-09-14 13:53:58 +02:00
06b2219a87 Add new HostConfig field, Mounts.
`Mounts` allows users to specify in a much safer way the volumes they
want to use in the container.
This replaces `Binds` and `Volumes`, which both still exist, but
`Mounts` and `Binds`/`Volumes` are exclussive.
The CLI will continue to use `Binds` and `Volumes` due to concerns with
parsing the volume specs on the client side and cross-platform support
(for now).

The new API follows exactly the services mount API.

Example usage of `Mounts`:

```
$ curl -XPOST localhost:2375/containers/create -d '{
  "Image": "alpine:latest",
  "HostConfig": {
    "Mounts": [{
      "Type": "Volume",
      "Target": "/foo"
      },{
      "Type": "bind",
      "Source": "/var/run/docker.sock",
      "Target": "/var/run/docker.sock",
      },{
      "Type": "volume",
      "Name": "important_data",
      "Target": "/var/data",
      "ReadOnly": true,
      "VolumeOptions": {
	"DriverConfig": {
	  Name: "awesomeStorage",
	  Options: {"size": "10m"},
	  Labels: {"some":"label"}
	}
      }]
    }
}'
```

There are currently 2 types of mounts:

  - **bind**: Paths on the host that get mounted into the
    container. Paths must exist prior to creating the container.
  - **volume**: Volumes that persist after the
    container is removed.

Not all fields are available in each type, and validation is done to
ensure these fields aren't mixed up between types.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
Upstream-commit: fc7b904dced4d18d49c8a6c47ae3f415d16d0c43
Component: engine
2016-09-13 09:55:35 -04:00
c9069cbf6e Remove --read-only restriction when user ns enabled
The restriction is no longer necessary given changes at the runc layer
related to mount options of the rootfs. Also cleaned up the docs on
restrictions left for userns enabled mode. Re-enabled tests related to
--read-only when testing a userns-enabled daemon in integration-cli.

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
Upstream-commit: 6062ae5742e49ec1a79073c327f3d1343c218a12
Component: engine
2016-09-09 13:23:41 -04:00
015d80b443 client: don't hide context errors
Instead of reformatting error from the request action, we wrap it,
allowing the cause to be recovered. This is important for consumers that
need to be able to detect context errors, such as `Cancelled` and
`DeadlineExceeded`.

Signed-off-by: Stephen J Day <stephen.day@docker.com>
Upstream-commit: 8e5ef8af5c90a3fbc93173cb485d42e044ca56ae
Component: engine
2016-09-08 17:47:43 -07:00
955f123fe8 Fix ulimits in docker inspect when daemon default exists
This fix tries to fix 26326 where `docker inspect` will not show
ulimit even when daemon default ulimit has been set.

This fix merge the HostConfig's ulimit with daemon default in
`docker inspect`, so that when daemon is started with `default-ulimit`
and HostConfig's ulimit is not set, `docker inspect` will output
the daemon default.

An integration test has been added to cover the changes.

This fix fixes 26326.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Upstream-commit: 7d705a7355d650feffc966e08efc0f92297145a8
Component: engine
2016-09-07 23:15:22 -07:00
4cf63a1696 Windows: Correct TestVolumesNoCopyData
Signed-off-by: John Howard <jhoward@microsoft.com>
Upstream-commit: 8a1fdce7fe991f64d7ba44ea39f6e9fe99199e0f
Component: engine
2016-09-06 15:38:19 -07:00
d5c2d4c2f5 Merge pull request #23830 from ardnaxelarak/23345_remove_name_from_volume_create
remove --name flag from volume create
Upstream-commit: 5168c93419547338b11f5d24d24a2a025ea64524
Component: engine
2016-08-26 21:52:07 +02:00
346f8a271b Add option to specify name without --name in volume create
Signed-off-by: Kara Alexandra <kalexandra@us.ibm.com>
Upstream-commit: ba3f0bf0e7d4f94eb94023278adcfad4ca8fe9d7
Component: engine
2016-08-25 14:20:06 -07:00
de17e6a998 Merge pull request #25354 from dnephin/remove-mflag-from-dockerd
Convert docker and dockerd commands to spf13/cobra
Upstream-commit: 25587906d122c4fce0eb1fbd3dfb805914455f59
Component: engine
2016-08-25 17:19:19 -04:00