package main import ( "context" "fmt" "os" "os/signal" "syscall" "github.com/moby/sys/reexec" "github.com/moby/term" "github.com/moby/moby/v2/daemon/command" ) func main() { if reexec.Init() { return } ctx := context.Background() // Ignore SIGPIPE events. These are generated by systemd when journald is restarted while // the docker daemon is not restarted and also running under systemd. // Fixes https://github.com/moby/moby/issues/19728 signal.Ignore(syscall.SIGPIPE) // Set terminal emulation based on platform as required. _, stdout, stderr := term.StdStreams() r, err := command.NewDaemonRunner(stdout, stderr) if err != nil { _, _ = fmt.Fprintln(stderr, err) os.Exit(1) } if err := r.Run(ctx); err != nil { _, _ = fmt.Fprintln(stderr, err) os.Exit(1) } }