diff --git a/daemon/execdriver/native/create.go b/daemon/execdriver/native/create.go index 13f81c7180..a96270d8b3 100644 --- a/daemon/execdriver/native/create.go +++ b/daemon/execdriver/native/create.go @@ -1,3 +1,5 @@ +// +build linux + package native import ( diff --git a/daemon/execdriver/native/driver.go b/daemon/execdriver/native/driver.go index 90333703c5..3f2036b8c0 100644 --- a/daemon/execdriver/native/driver.go +++ b/daemon/execdriver/native/driver.go @@ -1,3 +1,5 @@ +// +build linux + package native import ( @@ -16,6 +18,7 @@ import ( "github.com/docker/libcontainer/cgroups/fs" "github.com/docker/libcontainer/cgroups/systemd" "github.com/docker/libcontainer/namespaces" + "github.com/docker/libcontainer/syncpipe" "github.com/dotcloud/docker/daemon/execdriver" "github.com/dotcloud/docker/pkg/system" ) @@ -32,6 +35,7 @@ func init() { if err != nil { return err } + if err := json.NewDecoder(f).Decode(&container); err != nil { f.Close() return err @@ -42,13 +46,16 @@ func init() { if err != nil { return err } - syncPipe, err := namespaces.NewSyncPipeFromFd(0, uintptr(args.Pipe)) + + syncPipe, err := syncpipe.NewSyncPipeFromFd(0, uintptr(args.Pipe)) if err != nil { return err } + if err := namespaces.Init(container, rootfs, args.Console, syncPipe, args.Args); err != nil { return err } + return nil }) } diff --git a/daemon/execdriver/native/driver_unsupported.go b/daemon/execdriver/native/driver_unsupported.go new file mode 100644 index 0000000000..797b7d436f --- /dev/null +++ b/daemon/execdriver/native/driver_unsupported.go @@ -0,0 +1,13 @@ +// +build !linux + +package native + +import ( + "fmt" + + "github.com/dotcloud/docker/daemon/execdriver" +) + +func NewDriver(root, initPath string) (execdriver.Driver, error) { + return nil, fmt.Errorf("native driver not supported on non-linux") +} diff --git a/daemon/execdriver/native/info.go b/daemon/execdriver/native/info.go index c34d0297b1..a27d5640a4 100644 --- a/daemon/execdriver/native/info.go +++ b/daemon/execdriver/native/info.go @@ -1,3 +1,5 @@ +// +build linux + package native import (