소스 검색

Merge pull request #9481 from glours/add-tags-to-build

add tags property to build section
Guillaume Lours 3 년 전
부모
커밋
e806acce88
4개의 변경된 파일51개의 추가작업 그리고 0개의 파일을 삭제
  1. 4 0
      pkg/compose/build.go
  2. 21 0
      pkg/e2e/compose_build_test.go
  3. 17 0
      pkg/e2e/fixtures/build-test/tags/Dockerfile
  4. 9 0
      pkg/e2e/fixtures/build-test/tags/compose.yaml

+ 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
+