Просмотр исходного кода

only Daemon.load needs to call label.ReserveLabel

Signed-off-by: Fabio Kung <fabio.kung@gmail.com>
Fabio Kung 8 лет назад
Родитель
Сommit
9134e87afc
3 измененных файлов с 6 добавлено и 6 удалено
  1. 0 4
      container/container.go
  2. 1 1
      container/view.go
  3. 5 1
      daemon/container.go

+ 0 - 4
container/container.go

@@ -45,7 +45,6 @@ import (
 	"github.com/docker/libnetwork/options"
 	"github.com/docker/libnetwork/types"
 	agentexec "github.com/docker/swarmkit/agent/exec"
-	"github.com/opencontainers/selinux/go-selinux/label"
 )
 
 const configFileName = "config.v2.json"
@@ -152,9 +151,6 @@ func (container *Container) FromDisk() error {
 		container.Platform = runtime.GOOS
 	}
 
-	if err := label.ReserveLabel(container.ProcessLabel); err != nil {
-		return err
-	}
 	return container.readHostConfig()
 }
 

+ 1 - 1
container/view.go

@@ -95,7 +95,7 @@ func (db *memDB) Save(c *Container) error {
 	txn := db.store.Txn(true)
 	defer txn.Commit()
 	deepCopy := NewBaseContainer(c.ID, c.Root)
-	err := deepCopy.FromDisk() // TODO: deal with reserveLabel
+	err := deepCopy.FromDisk()
 	if err != nil {
 		return err
 	}

+ 5 - 1
daemon/container.go

@@ -18,6 +18,7 @@ import (
 	"github.com/docker/docker/pkg/truncindex"
 	"github.com/docker/docker/runconfig"
 	"github.com/docker/go-connections/nat"
+	"github.com/opencontainers/selinux/go-selinux/label"
 )
 
 // GetContainer looks for a container using the provided information, which could be
@@ -90,6 +91,9 @@ func (daemon *Daemon) load(id string) (*container.Container, error) {
 	if err := container.FromDisk(); err != nil {
 		return nil, err
 	}
+	if err := label.ReserveLabel(container.ProcessLabel); err != nil {
+		return nil, err
+	}
 
 	if container.ID != id {
 		return container, fmt.Errorf("Container %s is stored at %s", container.ID, id)
@@ -307,7 +311,7 @@ func (daemon *Daemon) verifyContainerSettings(hostConfig *containertypes.HostCon
 			return nil, fmt.Errorf("maximum retry count cannot be negative")
 		}
 	case "":
-	// do nothing
+		// do nothing
 	default:
 		return nil, fmt.Errorf("invalid restart policy '%s'", p.Name)
 	}