Commit graph

63 commits

Author SHA1 Message Date
John Howard
5207ff7202 Windows: Plumb through user
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-11-08 17:41:56 -08:00
Darren Stahl
4e15420b9b Windows: Add cpu count option
Signed-off-by: Darren Stahl <darst@microsoft.com>
2016-11-04 13:38:50 -07:00
Tonis Tiigi
37a3be2449 Move stdio attach from libcontainerd backend to callback
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2016-10-24 00:20:36 -07:00
Tonis Tiigi
6d26464502 Fix issues with fifos blocking on open
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2016-10-20 17:02:02 -07:00
Antonio Murdaca
1808348136
record pid of exec'd process
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-10-20 17:06:11 +02:00
Darren Stahl
69985e85d3 Implement Pause Resume support for Windows
Signed-off-by: Darren Stahl <darst@microsoft.com>
2016-10-11 16:23:35 -07:00
Vincent Demeester
b3cc3d7bf9 Merge pull request #23389 from Microsoft/jjh/credentialspec
Windows: Support credential specs
2016-10-07 18:32:44 +02:00
John Howard
e85867cb68 Windows: Support credential specs
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-10-06 09:32:22 -07:00
Darren Stahl
267c04aa36 Revendor hcsshim to v0.5.1
Signed-off-by: Darren Stahl <darst@microsoft.com>
2016-10-05 14:40:51 -07:00
Alexander Morozov
33ae7d4c19 Merge pull request #27149 from swernli/servicing_fix
Fixing servicing bug by always specifying LayerFolderPath
2016-10-05 13:21:47 -07:00
Michael Crosby
214b70e6ef Merge pull request #27038 from jstarks/non_base_utilityvm
Windows: support Windows servicing layers
2016-10-05 10:02:31 -07:00
Brian Goff
c48317ad7c Merge pull request #27152 from darrenstahlmsft/Rounding
Windows: fix rounding error in container resources
2016-10-04 21:08:14 -04:00
Stefan J. Wernli
78540d0d18 Fixing servicing bug by always specifying LayerFolderPath
During the recent OCI changes, I mistakenly thought LayerFolderPath is only needed for Windows Server containers (isolation=process) and not for Hyper-V Containers, but it turns out it is also required for servicing containers used to finish installing updates.  Since the servicing containers need to reuse the container's create options, this change makes it so that LayerFolderPath is always filled in for all containers as part of constructing the create options.

Signed-off-by: Stefan J. Wernli <swernli@microsoft.com>
2016-10-04 15:29:30 -07:00
Darren Stahl
1b48203f17 Windows: fix rounding error in container resources
Signed-off-by: Darren Stahl <darst@microsoft.com>
2016-10-04 14:11:32 -07:00
allencloud
5143be0ccf add lock in libcontainerd client AddProcess of Windows
Signed-off-by: allencloud <allen.sun@daocloud.io>
2016-10-04 10:29:21 +08:00
John Starks
2a765279fa Windows: Use the top-most utility VM image
Microsoft will be distributing non-base layers that have utility VM image
updates. Update libcontainerd to use the top-most utility VM image that is
available in the image chain when launching Hyper-V-isolated container.

Signed-off-by: John Starks <jostarks@microsoft.com>
2016-09-29 10:49:02 -07:00
John Howard
02309170a5 Remove hacked Windows OCI spec, compile fixups
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-09-27 12:07:35 -07:00
msabansal
d1e0a78614 Changes required to support windows service discovery
Signed-off-by: msabansal <sabansal@microsoft.com>
2016-09-22 12:21:21 -07:00
John Howard
410a8612f4 Windows OCI: Remove endpoint list
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-09-22 10:08:13 -07:00
Michael Crosby
3990f28162 Merge pull request #26746 from Microsoft/jjh/hvruntime
Windows: OCI HVRuntime and LayerPaths to options
2016-09-22 09:55:58 -07:00
Darren Stahl
f6d5f7b975 Revert the fix to invalid handles due to a platform bug
Signed-off-by: Darren Stahl <darst@microsoft.com>
2016-09-20 17:31:24 -07:00
John Howard
a3aceeac50 Windows: OCI HVRuntime and LayerPaths to options
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-09-20 13:51:53 -07:00
John Howard
4348878242 Merge pull request #25849 from darrenstahlmsft/LibcontainerdRaces
Lock all calls to hcsshim to prevent close races
2016-09-20 10:34:54 -07:00
John Howard
bbbc720620 Oops, break should have been continue
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-09-19 14:41:27 -07:00
Sebastiaan van Stijn
8c508ef813 Merge pull request #26579 from Microsoft/jjh/ociprocess
Windows: OCI `process` struct and console size to uint
2016-09-19 22:52:16 +02:00
Darren Stahl
740e26f384 Lock all calls to hcsshim to prevent close races
Signed-off-by: Darren Stahl <darst@microsoft.com>
2016-09-19 12:59:02 -07:00
John Howard
53774423ff Windows: OCI process struct convergence
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-09-19 10:34:31 -07:00
John Howard
72de562943 Windows: Remove osversion from OCI
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-09-19 10:16:15 -07:00
Tõnis Tiigi
b72c7f74a6 Merge pull request #26577 from Microsoft/jjh/fstabmount
Windows: Move to fstab options as per OCI
2016-09-19 10:13:46 -07:00
Brian Goff
bc60f5af84 Merge pull request #26650 from Microsoft/jjh/firststart
Windows: OCI remove first start
2016-09-18 09:27:10 -04:00
John Howard
f7fd408ba7 Windows: OCI remove first start
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-09-16 16:05:55 -07:00
John Howard
340e5233b2 Windows: stats support
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-09-16 11:56:15 -07:00
John Howard
bb585b9c10 Windows: Move to fstab options as per OCI
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-09-15 10:12:20 -07:00
boucher
d8fef66b03 Initial implementation of containerd Checkpoint API.
Signed-off-by: boucher <rboucher@gmail.com>
2016-09-08 21:31:52 -04:00
John Howard
52f0474851 Windows: docker top implementation
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-09-07 16:29:02 -07:00
Darren Stahl
c58d0358c3 Revendor hcsshim
Signed-off-by: Darren Stahl <darst@microsoft.com>
2016-08-16 17:28:49 -07:00
Sebastiaan van Stijn
92ef3f615a Merge pull request #25505 from darrenstahlmsft/SignalProcessNewAPI
Changed SignalProcess to use new hcsshim API
2016-08-11 23:21:31 +02:00
Sebastiaan van Stijn
04e021d751 Merge pull request #23391 from Microsoft/WindowsSandboxSize
Windows: Added support for storage-opt size
2016-08-09 15:34:39 +02:00
Darren Stahl
5eaf86c6db Changed SignalProcess to use new hcsshim API
Signed-off-by: Darren Stahl <darst@microsoft.com>
2016-08-08 14:03:12 -07:00
Kenfe-Mickael Laventure
5231c55346 Prepend libcontainerd log message with "libcontainerd:"
This will make it easier to pinpoint error messages in the daemon
logs.

Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
2016-07-22 15:20:14 -07:00
Kenfe-Mickael Laventure
c02f82756e Update libcontainerd.AddProcess to accept a context
Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
2016-07-19 08:24:39 -07:00
Tibor Vass
efcf24f0c4 Merge pull request #24156 from Microsoft/jjh/clearbasefs
Windows: Clear volume path for Hyper-V containers
2016-07-07 15:35:14 -07:00
Otto Kekäläinen
644a7426cc Fix spelling in comments, strings and documentation
Signed-off-by: Otto Kekäläinen <otto@seravo.fi>
2016-07-03 20:58:11 +03:00
John Howard
fd4f5c2365 Windows: Ensure VolumePath is not set for Hyper-V containers
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-06-29 16:49:09 -07:00
John Starks
8e34322253 Windows: Disable VM cloning for TP5 image
The Windows TP5 image is not compatible with the Hyper-V isolated
container clone feature. Detect old images and pass a flag specifying that
clone should not be enabled.

Signed-off-by: John Starks <jostarks@microsoft.com>
2016-06-24 16:12:44 -07:00
Alexander Morozov
57e14714ee all: fix usage of some variables
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2016-06-22 10:40:32 -07:00
Darren Stahl
7e5ee6d176 Windows: Added support for storage-opt size
Signed-off-by: Darren Stahl <darst@microsoft.com>
2016-06-21 10:53:29 -07:00
Thomas Leonard
b6c7becbfe
Add support for user-defined healthchecks
This PR adds support for user-defined health-check probes for Docker
containers. It adds a `HEALTHCHECK` instruction to the Dockerfile syntax plus
some corresponding "docker run" options. It can be used with a restart policy
to automatically restart a container if the check fails.

The `HEALTHCHECK` instruction has two forms:

* `HEALTHCHECK [OPTIONS] CMD command` (check container health by running a command inside the container)
* `HEALTHCHECK NONE` (disable any healthcheck inherited from the base image)

The `HEALTHCHECK` instruction tells Docker how to test a container to check that
it is still working. This can detect cases such as a web server that is stuck in
an infinite loop and unable to handle new connections, even though the server
process is still running.

When a container has a healthcheck specified, it has a _health status_ in
addition to its normal status. This status is initially `starting`. Whenever a
health check passes, it becomes `healthy` (whatever state it was previously in).
After a certain number of consecutive failures, it becomes `unhealthy`.

The options that can appear before `CMD` are:

* `--interval=DURATION` (default: `30s`)
* `--timeout=DURATION` (default: `30s`)
* `--retries=N` (default: `1`)

The health check will first run **interval** seconds after the container is
started, and then again **interval** seconds after each previous check completes.

If a single run of the check takes longer than **timeout** seconds then the check
is considered to have failed.

It takes **retries** consecutive failures of the health check for the container
to be considered `unhealthy`.

There can only be one `HEALTHCHECK` instruction in a Dockerfile. If you list
more than one then only the last `HEALTHCHECK` will take effect.

The command after the `CMD` keyword can be either a shell command (e.g. `HEALTHCHECK
CMD /bin/check-running`) or an _exec_ array (as with other Dockerfile commands;
see e.g. `ENTRYPOINT` for details).

The command's exit status indicates the health status of the container.
The possible values are:

- 0: success - the container is healthy and ready for use
- 1: unhealthy - the container is not working correctly
- 2: starting - the container is not ready for use yet, but is working correctly

If the probe returns 2 ("starting") when the container has already moved out of the
"starting" state then it is treated as "unhealthy" instead.

For example, to check every five minutes or so that a web-server is able to
serve the site's main page within three seconds:

    HEALTHCHECK --interval=5m --timeout=3s \
      CMD curl -f http://localhost/ || exit 1

To help debug failing probes, any output text (UTF-8 encoded) that the command writes
on stdout or stderr will be stored in the health status and can be queried with
`docker inspect`. Such output should be kept short (only the first 4096 bytes
are stored currently).

When the health status of a container changes, a `health_status` event is
generated with the new status. The health status is also displayed in the
`docker ps` output.

Signed-off-by: Thomas Leonard <thomas.leonard@docker.com>
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2016-06-02 23:58:34 +02:00
Vincent Demeester
c7aba69cc1 Merge pull request #22989 from Microsoft/StartCleanup
Windows: Adding missing cleanup call when container start fails
2016-06-01 15:42:47 +02:00
Darren Stahl
054992e291 Windows: Adding missing cleanup call when container start fails
Signed-off-by: Darren Stahl <darst@microsoft.com>
2016-05-31 10:19:05 -07:00