mirror of
https://github.com/docker/compose.git
synced 2025-07-20 20:24:30 +02:00
forward signal to container
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
This commit is contained in:
parent
419fcdd6c8
commit
fed8ef6b79
@ -19,6 +19,8 @@ package compose
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"os"
|
||||||
|
"os/signal"
|
||||||
|
|
||||||
"github.com/compose-spec/compose-go/types"
|
"github.com/compose-spec/compose-go/types"
|
||||||
"github.com/docker/cli/cli"
|
"github.com/docker/cli/cli"
|
||||||
@ -38,6 +40,14 @@ func (s *composeService) RunOneOffContainer(ctx context.Context, project *types.
|
|||||||
start.Attach = !opts.Detach
|
start.Attach = !opts.Detach
|
||||||
start.Containers = []string{containerID}
|
start.Containers = []string{containerID}
|
||||||
|
|
||||||
|
// remove cancellable context signal handler so we can forward signals to container without compose to exit
|
||||||
|
signal.Reset()
|
||||||
|
|
||||||
|
sigc := make(chan os.Signal, 128)
|
||||||
|
signal.Notify(sigc)
|
||||||
|
go cmd.ForwardAllSignals(ctx, s.dockerCli, containerID, sigc)
|
||||||
|
defer signal.Stop(sigc)
|
||||||
|
|
||||||
err = cmd.RunStart(s.dockerCli, &start)
|
err = cmd.RunStart(s.dockerCli, &start)
|
||||||
if sterr, ok := err.(cli.StatusError); ok {
|
if sterr, ok := err.(cli.StatusError); ok {
|
||||||
return sterr.StatusCode, nil
|
return sterr.StatusCode, nil
|
||||||
|
Loading…
x
Reference in New Issue
Block a user