Move base image selection to a utility function
| ... | ... |
@@ -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 |
+} |