github.com/psychoss/docker@v1.9.0/daemon/utils_linux.go (about)

     1  // +build linux
     2  
     3  package daemon
     4  
     5  import (
     6  	"errors"
     7  	"fmt"
     8  	"strings"
     9  
    10  	"github.com/docker/docker/runconfig"
    11  	"github.com/opencontainers/runc/libcontainer/selinux"
    12  )
    13  
    14  func selinuxSetDisabled() {
    15  	selinux.SetDisabled()
    16  }
    17  
    18  func selinuxFreeLxcContexts(label string) {
    19  	selinux.FreeLxcContexts(label)
    20  }
    21  
    22  func selinuxEnabled() bool {
    23  	return selinux.SelinuxEnabled()
    24  }
    25  
    26  func mergeLxcConfIntoOptions(hostConfig *runconfig.HostConfig) ([]string, error) {
    27  	if hostConfig == nil {
    28  		return nil, nil
    29  	}
    30  
    31  	out := []string{}
    32  
    33  	// merge in the lxc conf options into the generic config map
    34  	if lxcConf := hostConfig.LxcConf; lxcConf != nil {
    35  		lxSlice := lxcConf.Slice()
    36  		for _, pair := range lxSlice {
    37  			// because lxc conf gets the driver name lxc.XXXX we need to trim it off
    38  			// and let the lxc driver add it back later if needed
    39  			if !strings.Contains(pair.Key, ".") {
    40  				return nil, errors.New("Illegal Key passed into LXC Configurations")
    41  			}
    42  			parts := strings.SplitN(pair.Key, ".", 2)
    43  			out = append(out, fmt.Sprintf("%s=%s", parts[1], pair.Value))
    44  		}
    45  	}
    46  
    47  	return out, nil
    48  }