From 5539b125fe01d4d0154e292607478b78edfaffe5 Mon Sep 17 00:00:00 2001 From: Trapier Marshall Date: Mon, 19 Feb 2018 13:46:23 -0500 Subject: [PATCH 1/3] Add swarm types to bash completion event type filter Signed-off-by: Trapier Marshall Upstream-commit: fb80101ca7af7a544e792cfad04d686edf23517a Component: cli --- components/cli/contrib/completion/bash/docker | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/cli/contrib/completion/bash/docker b/components/cli/contrib/completion/bash/docker index aa794126f4..efc64abede 100644 --- a/components/cli/contrib/completion/bash/docker +++ b/components/cli/contrib/completion/bash/docker @@ -4648,7 +4648,7 @@ _docker_system_events() { return ;; type) - COMPREPLY=( $( compgen -W "container daemon image network plugin volume" -- "${cur##*=}" ) ) + COMPREPLY=( $( compgen -W "config container daemon image network plugin secret service volume" -- "${cur##*=}" ) ) return ;; volume) From bf0c1bd1d9ede45d605ef7ab089f7c5b4996af6c Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Thu, 29 Jun 2017 01:18:06 -0700 Subject: [PATCH 2/3] Update docker kill reference docs - explain the either "name" or "id" can be used to reference a container - explain that signals can be sent by name or number Signed-off-by: Sebastiaan van Stijn Upstream-commit: 0c085c2a7719f8565e34444b15ea930fdd406b8d Component: cli --- .../cli/docs/reference/commandline/kill.md | 40 ++++++++++++++++++- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/components/cli/docs/reference/commandline/kill.md b/components/cli/docs/reference/commandline/kill.md index 5ec507d92e..ba77185be8 100644 --- a/components/cli/docs/reference/commandline/kill.md +++ b/components/cli/docs/reference/commandline/kill.md @@ -27,9 +27,45 @@ Options: ## Description -The main process inside the container will be sent `SIGKILL`, or any -signal specified with option `--signal`. +The `docker kill` subcommand kills one or more containers. The main process +inside the container is sent `SIGKILL` signal (default), or the signal that is +specified with the `--signal` option. You can kill a container using the +container's ID, ID-prefix, or name. > **Note**: `ENTRYPOINT` and `CMD` in the *shell* form run as a subcommand of > `/bin/sh -c`, which does not pass signals. This means that the executable is > not the container’s PID 1 and does not receive Unix signals. + +## Examples + + +### Send a KILL signal to a container + +The following example sends the default `KILL` signal to the container named +`my_container`: + +```bash +$ docker kill my_container +``` + +### Send a custom signal to a container + +The following example sends a `SIGHUP` signal to the container named +`my_container`: + +```bash +$ docker kill --signal=SIGHUP my_container +``` + + +You can specify a custom signal either by _name_, or _number_. The `SIG` prefix +is optional, so the following examples are equivalent: + +```bash +$ docker kill --signal=SIGHUP my_container +$ docker kill --signal=HUP my_container +$ docker kill --signal=1 my_container +``` + +Refer to the [`signal(7)`](http://man7.org/linux/man-pages/man7/signal.7.html) +man-page for a list of standard Linux signals. From 636258089970f7b4f55ff49b30e8e36dd019147c Mon Sep 17 00:00:00 2001 From: Silvin Lubecki Date: Tue, 20 Feb 2018 16:31:08 +0100 Subject: [PATCH 3/3] Fix stack marshaling for Kubernetes Signed-off-by: Silvin Lubecki Signed-off-by: Vincent Demeester Upstream-commit: 9b27e92903e23734660b4483caedf3f805454dc6 Component: cli --- .../cli/command/stack/kubernetes/deploy.go | 2 +- .../cli/command/stack/kubernetes/loader.go | 9 ++-- .../command/stack/kubernetes/loader_test.go | 44 +++++++++++++++++++ 3 files changed, 50 insertions(+), 5 deletions(-) create mode 100644 components/cli/cli/command/stack/kubernetes/loader_test.go diff --git a/components/cli/cli/command/stack/kubernetes/deploy.go b/components/cli/cli/command/stack/kubernetes/deploy.go index 02215a79c0..b319eba8b0 100644 --- a/components/cli/cli/command/stack/kubernetes/deploy.go +++ b/components/cli/cli/command/stack/kubernetes/deploy.go @@ -26,7 +26,7 @@ func RunDeploy(dockerCli *KubeCli, opts options.Deploy) error { if err != nil { return err } - stack, err := LoadStack(opts.Namespace, version, cfg) + stack, err := LoadStack(opts.Namespace, version, *cfg) if err != nil { return err } diff --git a/components/cli/cli/command/stack/kubernetes/loader.go b/components/cli/cli/command/stack/kubernetes/loader.go index 75a5473ab9..f39d31529c 100644 --- a/components/cli/cli/command/stack/kubernetes/loader.go +++ b/components/cli/cli/command/stack/kubernetes/loader.go @@ -8,15 +8,16 @@ import ( ) type versionedConfig struct { - composetypes.Config - Version string + *composetypes.Config `yaml:",inline"` + Version string } // LoadStack loads a stack from a Compose config, with a given name. -func LoadStack(name, version string, cfg *composetypes.Config) (*apiv1beta1.Stack, error) { +func LoadStack(name, version string, cfg composetypes.Config) (*apiv1beta1.Stack, error) { + cfg.Filename = "" res, err := yaml.Marshal(versionedConfig{ Version: version, - Config: *cfg, + Config: &cfg, }) if err != nil { return nil, err diff --git a/components/cli/cli/command/stack/kubernetes/loader_test.go b/components/cli/cli/command/stack/kubernetes/loader_test.go new file mode 100644 index 0000000000..7e2ff8d810 --- /dev/null +++ b/components/cli/cli/command/stack/kubernetes/loader_test.go @@ -0,0 +1,44 @@ +package kubernetes + +import ( + "testing" + + composetypes "github.com/docker/cli/cli/compose/types" + apiv1beta1 "github.com/docker/cli/kubernetes/compose/v1beta1" + "github.com/stretchr/testify/require" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +func TestLoadStack(t *testing.T) { + s, err := LoadStack("foo", "3.1", composetypes.Config{ + Filename: "banana", + Services: []composetypes.ServiceConfig{ + { + Name: "foo", + Image: "foo", + }, + { + Name: "bar", + Image: "bar", + }, + }, + }) + require.NoError(t, err) + require.Equal(t, &apiv1beta1.Stack{ + ObjectMeta: metav1.ObjectMeta{ + Name: "foo", + }, + Spec: apiv1beta1.StackSpec{ + ComposeFile: string(`configs: {} +networks: {} +secrets: {} +services: + bar: + image: bar + foo: + image: foo +volumes: {} +`), + }, + }, s) +}