Browse code

Check for apparmor enabled on host to populate profile Docker-DCO-1.1-Signed-off-by: Michael Crosby <michael@crosbymichael.com> (github: crosbymichael)

Michael Crosby authored on 2014/04/09 19:22:17
Showing 3 changed files
... ...
@@ -17,7 +17,7 @@ func IsEnabled() bool {
17 17
 }
18 18
 
19 19
 func ApplyProfile(pid int, name string) error {
20
-	if !IsEnabled() || name == "" {
20
+	if name == "" {
21 21
 		return nil
22 22
 	}
23 23
 
... ...
@@ -6,6 +6,7 @@ import (
6 6
 
7 7
 	"github.com/dotcloud/docker/pkg/label"
8 8
 	"github.com/dotcloud/docker/pkg/libcontainer"
9
+	"github.com/dotcloud/docker/pkg/libcontainer/apparmor"
9 10
 	"github.com/dotcloud/docker/runtime/execdriver"
10 11
 	"github.com/dotcloud/docker/runtime/execdriver/native/configuration"
11 12
 	"github.com/dotcloud/docker/runtime/execdriver/native/template"
... ...
@@ -80,7 +81,9 @@ func (d *driver) setPrivileged(container *libcontainer.Container) error {
80 80
 		c.Enabled = true
81 81
 	}
82 82
 	container.Cgroups.DeviceAccess = true
83
-	container.Context["apparmor_profile"] = "unconfined"
83
+	if apparmor.IsEnabled() {
84
+		container.Context["apparmor_profile"] = "unconfined"
85
+	}
84 86
 	return nil
85 87
 }
86 88
 
... ...
@@ -3,6 +3,7 @@ package template
3 3
 import (
4 4
 	"github.com/dotcloud/docker/pkg/cgroups"
5 5
 	"github.com/dotcloud/docker/pkg/libcontainer"
6
+	"github.com/dotcloud/docker/pkg/libcontainer/apparmor"
6 7
 )
7 8
 
8 9
 // New returns the docker default configuration for libcontainer
... ...
@@ -36,10 +37,11 @@ func New() *libcontainer.Container {
36 36
 			Parent:       "docker",
37 37
 			DeviceAccess: false,
38 38
 		},
39
-		Context: libcontainer.Context{
40
-			"apparmor_profile": "docker-default",
41
-		},
39
+		Context: libcontainer.Context{},
42 40
 	}
43 41
 	container.CapabilitiesMask.Get("MKNOD").Enabled = true
42
+	if apparmor.IsEnabled() {
43
+		container.Context["apparmor_profile"] = "docker-default"
44
+	}
44 45
 	return container
45 46
 }