| // +build linux |
| |
| package daemon |
| |
| import ( |
| "errors" |
| "fmt" |
| "strings" |
| |
| "github.com/docker/docker/runconfig" |
| "github.com/opencontainers/runc/libcontainer/selinux" |
| ) |
| |
| func selinuxSetDisabled() { |
| selinux.SetDisabled() |
| } |
| |
| func selinuxFreeLxcContexts(label string) { |
| selinux.FreeLxcContexts(label) |
| } |
| |
| func selinuxEnabled() bool { |
| return selinux.SelinuxEnabled() |
| } |
| |
| func mergeLxcConfIntoOptions(hostConfig *runconfig.HostConfig) ([]string, error) { |
| if hostConfig == nil { |
| return nil, nil |
| } |
| |
| out := []string{} |
| |
| // merge in the lxc conf options into the generic config map |
| if lxcConf := hostConfig.LxcConf; lxcConf != nil { |
| lxSlice := lxcConf.Slice() |
| for _, pair := range lxSlice { |
| // because lxc conf gets the driver name lxc.XXXX we need to trim it off |
| // and let the lxc driver add it back later if needed |
| if !strings.Contains(pair.Key, ".") { |
| return nil, errors.New("Illegal Key passed into LXC Configurations") |
| } |
| parts := strings.SplitN(pair.Key, ".", 2) |
| out = append(out, fmt.Sprintf("%s=%s", parts[1], pair.Value)) |
| } |
| } |
| |
| return out, nil |
| } |