Support --label flag on run-container command

This commit is contained in:
Bryan Boreham committed 2018-08-08 13:24:53 +00:00
1 parent e669ac6ef8
commit 374fed4699
1 file changed
+14 -1
+14 -1
View File
@@ -91,6 +91,7 @@ func containerFQDN(args []string) error {
func runContainer(args []string) error {
env := []string{}
labels := map[string]string{}
name := ""
net := ""
pid := ""
@@ -109,6 +110,10 @@ func runContainer(args []string) error {
env = append(env, args[i+1])
}
args = append(args[:i], args[i+2:]...)
case "-l", "--label":
key, value := parseLabel(args[i+1])
labels[key] = value
args = append(args[:i], args[i+2:]...)
case "--name":
name = args[i+1]
args = append(args[:i], args[i+2:]...)
@@ -166,7 +171,7 @@ func runContainer(args []string) error {
return fmt.Errorf("unable to connect to docker: %s", err)
}
config := docker.Config{Image: image, Env: env, Cmd: cmds}
config := docker.Config{Image: image, Env: env, Cmd: cmds, Labels: labels}
hostConfig := docker.HostConfig{NetworkMode: net, PidMode: pid, Privileged: privileged, RestartPolicy: restart, Binds: volumes, VolumesFrom: volumesFrom}
container, err := c.CreateContainer(docker.CreateContainerOptions{Name: name, Config: &config, HostConfig: &hostConfig})
if err != nil {
@@ -182,6 +187,14 @@ func runContainer(args []string) error {
return nil
}
func parseLabel(s string) (key, value string) {
pos := strings.Index(s, "=")
if pos == -1 { // no value - set it to blank
return s, ""
}
return s[:pos], s[pos+1:]
}
func listContainers(args []string) error {
if len(args) > 1 {
cmdUsage("list-containers", "[<label>]")