Browse Source

Add USER instruction

Victor Vieux 12 years ago
parent
commit
5ee3c58d25
3 changed files with 24 additions and 0 deletions
  1. 5 0
      buildfile.go
  2. 11 0
      buildfile_test.go
  3. 8 0
      docs/sources/use/builder.rst

+ 5 - 0
buildfile.go

@@ -197,6 +197,11 @@ func (b *buildFile) CmdExpose(args string) error {
 	return b.commit("", b.config.Cmd, fmt.Sprintf("EXPOSE %v", ports))
 	return b.commit("", b.config.Cmd, fmt.Sprintf("EXPOSE %v", ports))
 }
 }
 
 
+func (b *buildFile) CmdUser(args string) error {
+	b.config.User = args
+	return b.commit("", b.config.Cmd, fmt.Sprintf("USER %v", args))
+}
+
 func (b *buildFile) CmdInsert(args string) error {
 func (b *buildFile) CmdInsert(args string) error {
 	return fmt.Errorf("INSERT has been deprecated. Please use ADD instead")
 	return fmt.Errorf("INSERT has been deprecated. Please use ADD instead")
 }
 }

+ 11 - 0
buildfile_test.go

@@ -270,6 +270,17 @@ func TestBuildMaintainer(t *testing.T) {
 	}
 	}
 }
 }
 
 
+func TestBuildUser(t *testing.T) {
+	img := buildImage(testContextTemplate{`
+        from {IMAGE}
+        user dockerio
+    `, nil, nil}, t, nil, true)
+
+	if img.Config.User != "dockerio" {
+		t.Fail()
+	}
+}
+
 func TestBuildEnv(t *testing.T) {
 func TestBuildEnv(t *testing.T) {
 	img := buildImage(testContextTemplate{`
 	img := buildImage(testContextTemplate{`
         from {IMAGE}
         from {IMAGE}

+ 8 - 0
docs/sources/use/builder.rst

@@ -203,6 +203,14 @@ to the entrypoint.
 The ``VOLUME`` instruction will add one or more new volumes to any
 The ``VOLUME`` instruction will add one or more new volumes to any
 container created from the image.
 container created from the image.
 
 
+3.10 USER
+---------
+
+    ``USER daemon``
+
+The ``USER`` instruction sets the username or UID to use when running
+the image.
+
 4. Dockerfile Examples
 4. Dockerfile Examples
 ======================
 ======================