forked from moby/moby
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add the remainder of the FreeBSD go files to get the daemon to compile
- Loading branch information
R. Tyler Croy
committed
Sep 4, 2017
1 parent
e4e8039
commit 25cb15b
Showing
6 changed files
with
199 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
package daemon | ||
|
||
import ( | ||
"github.com/docker/docker/container" | ||
) | ||
|
||
func (daemon *Daemon) saveApparmorConfig(container *container.Container) error { | ||
return nil | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
package daemon | ||
|
||
import ( | ||
"github.com/docker/docker/container" | ||
"github.com/docker/docker/libcontainerd" | ||
) | ||
|
||
// platformConstructExitStatus returns a platform specific exit status structure | ||
func platformConstructExitStatus(e libcontainerd.StateInfo) *container.ExitStatus { | ||
return &container.ExitStatus{ | ||
ExitCode: int(e.ExitCode), | ||
} | ||
} | ||
|
||
// postRunProcessing perfoms any processing needed on the container after it has stopped. | ||
func (daemon *Daemon) postRunProcessing(container *container.Container, e libcontainerd.StateInfo) error { | ||
return nil | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,74 @@ | ||
package daemon | ||
|
||
import ( | ||
"fmt" | ||
"sort" | ||
|
||
containertypes "github.com/docker/docker/api/types/container" | ||
"github.com/docker/docker/container" | ||
"github.com/docker/docker/oci" | ||
"github.com/opencontainers/runtime-spec/specs-go" | ||
) | ||
|
||
func setResources(s *specs.Spec, r containertypes.Resources) error { | ||
return nil | ||
} | ||
|
||
func setUser(s *specs.Spec, c *container.Container) error { | ||
return nil | ||
} | ||
|
||
func getUser(c *container.Container, username string) (uint32, uint32, []uint32, error) { | ||
return 0, 0, nil, nil | ||
} | ||
|
||
// mergeUlimits merge the Ulimits from HostConfig with daemon defaults, and update HostConfig | ||
// It will do nothing on non-Linux platform | ||
func (daemon *Daemon) mergeUlimits(c *containertypes.HostConfig) { | ||
return | ||
} | ||
|
||
func (daemon *Daemon) createSpec(c *container.Container) (*specs.Spec, error) { | ||
s := oci.DefaultSpec() | ||
if err := daemon.populateCommonSpec(&s, c); err != nil { | ||
return nil, err | ||
} | ||
|
||
if err := setResources(&s, c.HostConfig.Resources); err != nil { | ||
return nil, fmt.Errorf("runtime spec resources: %v", err) | ||
} | ||
|
||
if err := setUser(&s, c); err != nil { | ||
return nil, fmt.Errorf("spec user: %v", err) | ||
} | ||
|
||
if err := daemon.setNetworkInterface(&s, c); err != nil { | ||
return nil, err | ||
} | ||
|
||
if err := daemon.setupIpcDirs(c); err != nil { | ||
return nil, err | ||
} | ||
|
||
ms, err := daemon.setupMounts(c) | ||
if err != nil { | ||
return nil, err | ||
} | ||
ms = append(ms, c.IpcMounts()...) | ||
tmpfsMounts, err := c.TmpfsMounts() | ||
if err != nil { | ||
return nil, err | ||
} | ||
ms = append(ms, tmpfsMounts...) | ||
sort.Sort(mounts(ms)) | ||
|
||
return (*specs.Spec)(&s), nil | ||
} | ||
|
||
func (daemon *Daemon) setNetworkInterface(s *specs.Spec, c *container.Container) error { | ||
return nil | ||
} | ||
|
||
func (daemon *Daemon) populateCommonSpec(s *specs.Spec, c *container.Container) error { | ||
return nil | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
package daemon | ||
|
||
import ( | ||
"github.com/docker/docker/api/types/container" | ||
"github.com/docker/docker/libcontainerd" | ||
) | ||
|
||
func toContainerdResources(resources container.Resources) libcontainerd.Resources { | ||
var r libcontainerd.Resources | ||
return r | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
package oci | ||
|
||
import ( | ||
"runtime" | ||
|
||
"github.com/opencontainers/runtime-spec/specs-go" | ||
) | ||
|
||
// DefaultSpec returns default oci spec used by docker. | ||
func DefaultSpec() specs.Spec { | ||
s := specs.Spec{ | ||
Version: "0.6.0", | ||
Platform: specs.Platform{ | ||
OS: "SunOS", | ||
Arch: runtime.GOARCH, | ||
}, | ||
} | ||
s.Solaris = &specs.Solaris{} | ||
return s | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
package mount | ||
|
||
// MakeShared ensures a mounted filesystem has the SHARED mount option enabled. | ||
// See the supported options in flags.go for further reference. | ||
func MakeShared(mountPoint string) error { | ||
return ensureMountedAs(mountPoint, "shared") | ||
} | ||
|
||
// MakeRShared ensures a mounted filesystem has the RSHARED mount option enabled. | ||
// See the supported options in flags.go for further reference. | ||
func MakeRShared(mountPoint string) error { | ||
return ensureMountedAs(mountPoint, "rshared") | ||
} | ||
|
||
// MakePrivate ensures a mounted filesystem has the PRIVATE mount option enabled. | ||
// See the supported options in flags.go for further reference. | ||
func MakePrivate(mountPoint string) error { | ||
return ensureMountedAs(mountPoint, "private") | ||
} | ||
|
||
// MakeRPrivate ensures a mounted filesystem has the RPRIVATE mount option | ||
// enabled. See the supported options in flags.go for further reference. | ||
func MakeRPrivate(mountPoint string) error { | ||
return ensureMountedAs(mountPoint, "rprivate") | ||
} | ||
|
||
// MakeSlave ensures a mounted filesystem has the SLAVE mount option enabled. | ||
// See the supported options in flags.go for further reference. | ||
func MakeSlave(mountPoint string) error { | ||
return ensureMountedAs(mountPoint, "slave") | ||
} | ||
|
||
// MakeRSlave ensures a mounted filesystem has the RSLAVE mount option enabled. | ||
// See the supported options in flags.go for further reference. | ||
func MakeRSlave(mountPoint string) error { | ||
return ensureMountedAs(mountPoint, "rslave") | ||
} | ||
|
||
// MakeUnbindable ensures a mounted filesystem has the UNBINDABLE mount option | ||
// enabled. See the supported options in flags.go for further reference. | ||
func MakeUnbindable(mountPoint string) error { | ||
return ensureMountedAs(mountPoint, "unbindable") | ||
} | ||
|
||
// MakeRUnbindable ensures a mounted filesystem has the RUNBINDABLE mount | ||
// option enabled. See the supported options in flags.go for further reference. | ||
func MakeRUnbindable(mountPoint string) error { | ||
return ensureMountedAs(mountPoint, "runbindable") | ||
} | ||
|
||
func ensureMountedAs(mountPoint, options string) error { | ||
mounted, err := Mounted(mountPoint) | ||
if err != nil { | ||
return err | ||
} | ||
|
||
if !mounted { | ||
if err := Mount(mountPoint, mountPoint, "none", "bind,rw"); err != nil { | ||
return err | ||
} | ||
} | ||
if _, err = Mounted(mountPoint); err != nil { | ||
return err | ||
} | ||
|
||
return ForceMount("", mountPoint, "none", options) | ||
} |