浏览代码

add tags property to build section

Signed-off-by: Guillaume Lours <[email protected]>
Guillaume Lours 3 年之前
父节点
当前提交
a2770b66ff

+ 4 - 0
pkg/compose/build.go

@@ -275,6 +275,10 @@ func (s *composeService) toBuildOptions(project *types.Project, service types.Se
 		sessionConfig = append(sessionConfig, p)
 	}
 
+	if len(service.Build.Tags) > 0 {
+		tags = append(tags, service.Build.Tags...)
+	}
+
 	return build.Options{
 		Inputs: build.Inputs{
 			ContextPath:    service.Build.Context,

+ 21 - 0
pkg/e2e/compose_build_test.go

@@ -181,3 +181,24 @@ func TestBuildSecrets(t *testing.T) {
 		res.Assert(t, icmd.Success)
 	})
 }
+
+func TestBuildTags(t *testing.T) {
+	c := NewParallelE2eCLI(t, binDir)
+
+	t.Run("build with tags", func(t *testing.T) {
+
+		// ensure local test run does not reuse previously build image
+		c.RunDockerOrExitError("rmi", "build-test-tags")
+
+		c.RunDockerComposeCmd("--project-directory", "./fixtures/build-test/tags", "build", "--no-cache")
+
+		res := c.RunDockerCmd("image", "inspect", "build-test-tags")
+		expectedOutput := `"RepoTags": [
+            "docker/build-test-tags:1.0.0",
+            "build-test-tags:latest",
+            "other-image-name:v1.0.0"
+        ],
+`
+		res.Assert(t, icmd.Expected{Out: expectedOutput})
+	})
+}

+ 17 - 0
pkg/e2e/fixtures/build-test/tags/Dockerfile

@@ -0,0 +1,17 @@
+#   Copyright 2020 Docker Compose CLI authors
+
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+
+#       http://www.apache.org/licenses/LICENSE-2.0
+
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+
+FROM nginx:alpine
+
+RUN echo "SUCCESS"

+ 9 - 0
pkg/e2e/fixtures/build-test/tags/compose.yaml

@@ -0,0 +1,9 @@
+services:
+  nginx:
+    image: build-test-tags
+    build:
+      context: .
+      tags:
+        - docker.io/docker/build-test-tags:1.0.0
+        - other-image-name:v1.0.0
+