Browse code

Merge pull request #20011 from Microsoft/MinimalBaseImage

Move base image selection to a utility function

David Calavera authored on 2016/02/05 11:06:30
Showing 2 changed files
... ...
@@ -114,18 +114,16 @@ func (s *DockerSuite) TestBuildEnvironmentReplacementUser(c *check.C) {
114 114
 func (s *DockerSuite) TestBuildEnvironmentReplacementVolume(c *check.C) {
115 115
 	name := "testbuildenvironmentreplacement"
116 116
 
117
-	var baseImage, volumePath string
117
+	var volumePath string
118 118
 
119 119
 	if daemonPlatform == "windows" {
120
-		baseImage = "windowsservercore"
121 120
 		volumePath = "c:/quux"
122 121
 	} else {
123
-		baseImage = "scratch"
124 122
 		volumePath = "/quux"
125 123
 	}
126 124
 
127 125
 	_, err := buildImage(name, `
128
-  FROM `+baseImage+`
126
+  FROM `+minimalBaseImage()+`
129 127
   ENV volume `+volumePath+`
130 128
   VOLUME ${volume}
131 129
   `, true)
... ...
@@ -201,16 +199,8 @@ func (s *DockerSuite) TestBuildEnvironmentReplacementWorkdir(c *check.C) {
201 201
 func (s *DockerSuite) TestBuildEnvironmentReplacementAddCopy(c *check.C) {
202 202
 	name := "testbuildenvironmentreplacement"
203 203
 
204
-	var baseImage string
205
-
206
-	if daemonPlatform == "windows" {
207
-		baseImage = "windowsservercore"
208
-	} else {
209
-		baseImage = "scratch"
210
-	}
211
-
212 204
 	ctx, err := fakeContext(`
213
-  FROM `+baseImage+`
205
+  FROM `+minimalBaseImage()+`
214 206
   ENV baz foo
215 207
   ENV quux bar
216 208
   ENV dot .
... ...
@@ -697,14 +687,7 @@ func (s *DockerSuite) TestBuildSixtySteps(c *check.C) {
697 697
 	// TP5 timeframe when perf is better.
698 698
 	name := "foobuildsixtysteps"
699 699
 
700
-	var baseImage string
701
-	if daemonPlatform == "windows" {
702
-		baseImage = "windowsservercore"
703
-	} else {
704
-		baseImage = "scratch"
705
-	}
706
-
707
-	ctx, err := fakeContext("FROM "+baseImage+"\n"+strings.Repeat("ADD foo /\n", 60),
700
+	ctx, err := fakeContext("FROM "+minimalBaseImage()+"\n"+strings.Repeat("ADD foo /\n", 60),
708 701
 		map[string]string{
709 702
 			"foo": "test1",
710 703
 		})
... ...
@@ -844,14 +827,7 @@ RUN [ $(ls -l /exists/exists_file | awk '{print $3":"$4}') = 'dockerio:dockerio'
844 844
 func (s *DockerSuite) TestBuildAddMultipleFilesToFile(c *check.C) {
845 845
 	name := "testaddmultiplefilestofile"
846 846
 
847
-	var baseImage string
848
-	if daemonPlatform == "windows" {
849
-		baseImage = "windowsservercore"
850
-	} else {
851
-		baseImage = "scratch"
852
-	}
853
-
854
-	ctx, err := fakeContext(`FROM `+baseImage+`
847
+	ctx, err := fakeContext(`FROM `+minimalBaseImage()+`
855 848
 	ADD file1.txt file2.txt test
856 849
 	`,
857 850
 		map[string]string{
... ...
@@ -873,14 +849,7 @@ func (s *DockerSuite) TestBuildAddMultipleFilesToFile(c *check.C) {
873 873
 func (s *DockerSuite) TestBuildJSONAddMultipleFilesToFile(c *check.C) {
874 874
 	name := "testjsonaddmultiplefilestofile"
875 875
 
876
-	var baseImage string
877
-	if daemonPlatform == "windows" {
878
-		baseImage = "windowsservercore"
879
-	} else {
880
-		baseImage = "scratch"
881
-	}
882
-
883
-	ctx, err := fakeContext(`FROM `+baseImage+`
876
+	ctx, err := fakeContext(`FROM `+minimalBaseImage()+`
884 877
 	ADD ["file1.txt", "file2.txt", "test"]
885 878
 	`,
886 879
 		map[string]string{
... ...
@@ -902,14 +871,7 @@ func (s *DockerSuite) TestBuildJSONAddMultipleFilesToFile(c *check.C) {
902 902
 func (s *DockerSuite) TestBuildAddMultipleFilesToFileWild(c *check.C) {
903 903
 	name := "testaddmultiplefilestofilewild"
904 904
 
905
-	var baseImage string
906
-	if daemonPlatform == "windows" {
907
-		baseImage = "windowsservercore"
908
-	} else {
909
-		baseImage = "scratch"
910
-	}
911
-
912
-	ctx, err := fakeContext(`FROM `+baseImage+`
905
+	ctx, err := fakeContext(`FROM `+minimalBaseImage()+`
913 906
 	ADD file*.txt test
914 907
 	`,
915 908
 		map[string]string{
... ...
@@ -931,14 +893,7 @@ func (s *DockerSuite) TestBuildAddMultipleFilesToFileWild(c *check.C) {
931 931
 func (s *DockerSuite) TestBuildJSONAddMultipleFilesToFileWild(c *check.C) {
932 932
 	name := "testjsonaddmultiplefilestofilewild"
933 933
 
934
-	var baseImage string
935
-	if daemonPlatform == "windows" {
936
-		baseImage = "windowsservercore"
937
-	} else {
938
-		baseImage = "scratch"
939
-	}
940
-
941
-	ctx, err := fakeContext(`FROM `+baseImage+`
934
+	ctx, err := fakeContext(`FROM `+minimalBaseImage()+`
942 935
 	ADD ["file*.txt", "test"]
943 936
 	`,
944 937
 		map[string]string{
... ...
@@ -960,14 +915,7 @@ func (s *DockerSuite) TestBuildJSONAddMultipleFilesToFileWild(c *check.C) {
960 960
 func (s *DockerSuite) TestBuildCopyMultipleFilesToFile(c *check.C) {
961 961
 	name := "testcopymultiplefilestofile"
962 962
 
963
-	var baseImage string
964
-	if daemonPlatform == "windows" {
965
-		baseImage = "windowsservercore"
966
-	} else {
967
-		baseImage = "scratch"
968
-	}
969
-
970
-	ctx, err := fakeContext(`FROM `+baseImage+`
963
+	ctx, err := fakeContext(`FROM `+minimalBaseImage()+`
971 964
 	COPY file1.txt file2.txt test
972 965
 	`,
973 966
 		map[string]string{
... ...
@@ -989,14 +937,7 @@ func (s *DockerSuite) TestBuildCopyMultipleFilesToFile(c *check.C) {
989 989
 func (s *DockerSuite) TestBuildJSONCopyMultipleFilesToFile(c *check.C) {
990 990
 	name := "testjsoncopymultiplefilestofile"
991 991
 
992
-	var baseImage string
993
-	if daemonPlatform == "windows" {
994
-		baseImage = "windowsservercore"
995
-	} else {
996
-		baseImage = "scratch"
997
-	}
998
-
999
-	ctx, err := fakeContext(`FROM `+baseImage+`
992
+	ctx, err := fakeContext(`FROM `+minimalBaseImage()+`
1000 993
 	COPY ["file1.txt", "file2.txt", "test"]
1001 994
 	`,
1002 995
 		map[string]string{
... ...
@@ -1364,14 +1305,7 @@ RUN [ $(ls -l /exists | awk '{print $3":"$4}') = 'dockerio:dockerio' ]`, expecte
1364 1364
 func (s *DockerSuite) TestBuildAddEtcToRoot(c *check.C) {
1365 1365
 	name := "testaddetctoroot"
1366 1366
 
1367
-	var baseImage string
1368
-	if daemonPlatform == "windows" {
1369
-		baseImage = "windowsservercore"
1370
-	} else {
1371
-		baseImage = "scratch"
1372
-	}
1373
-
1374
-	ctx, err := fakeContext(`FROM `+baseImage+`
1367
+	ctx, err := fakeContext(`FROM `+minimalBaseImage()+`
1375 1368
 ADD . /`,
1376 1369
 		map[string]string{
1377 1370
 			"etc/test_file": "test1",
... ...
@@ -1593,14 +1527,7 @@ RUN [ $(ls -l /exists | awk '{print $3":"$4}') = 'dockerio:dockerio' ]`, expecte
1593 1593
 func (s *DockerSuite) TestBuildCopyEtcToRoot(c *check.C) {
1594 1594
 	name := "testcopyetctoroot"
1595 1595
 
1596
-	var baseImage string
1597
-	if daemonPlatform == "windows" {
1598
-		baseImage = "windowsservercore"
1599
-	} else {
1600
-		baseImage = "scratch"
1601
-	}
1602
-
1603
-	ctx, err := fakeContext(`FROM `+baseImage+`
1596
+	ctx, err := fakeContext(`FROM `+minimalBaseImage()+`
1604 1597
 COPY . /`,
1605 1598
 		map[string]string{
1606 1599
 			"etc/test_file": "test1",
... ...
@@ -1618,14 +1545,7 @@ COPY . /`,
1618 1618
 func (s *DockerSuite) TestBuildCopyDisallowRemote(c *check.C) {
1619 1619
 	name := "testcopydisallowremote"
1620 1620
 
1621
-	var baseImage string
1622
-	if daemonPlatform == "windows" {
1623
-		baseImage = "windowsservercore"
1624
-	} else {
1625
-		baseImage = "scratch"
1626
-	}
1627
-
1628
-	_, out, err := buildImageWithOut(name, `FROM `+baseImage+`
1621
+	_, out, err := buildImageWithOut(name, `FROM `+minimalBaseImage()+`
1629 1622
 COPY https://index.docker.io/robots.txt /`,
1630 1623
 		true)
1631 1624
 	if err == nil || !strings.Contains(out, "Source can't be a URL for COPY") {
... ...
@@ -1752,3 +1752,12 @@ func runSleepingContainerInImage(c *check.C, image string, extraArgs ...string)
1752 1752
 	args = append(args, defaultSleepCommand...)
1753 1753
 	return dockerCmd(c, args...)
1754 1754
 }
1755
+
1756
+// minimalBaseImage returns the name of the minimal base image for the current
1757
+// daemon platform.
1758
+func minimalBaseImage() string {
1759
+	if daemonPlatform == "windows" {
1760
+		return WindowsBaseImage
1761
+	}
1762
+	return "scratch"
1763
+}