diff --git a/cli/command/image/build.go b/cli/command/image/build.go index 40b246c5c4..1b03038b7c 100644 --- a/cli/command/image/build.go +++ b/cli/command/image/build.go @@ -265,7 +265,7 @@ func runBuild(dockerCli command.Cli, options buildOptions) error { } // And canonicalize dockerfile name to a platform-independent one - relDockerfile = archive.CanonicalTarNameForPath(relDockerfile) + relDockerfile = filepath.ToSlash(relDockerfile) excludes = build.TrimBuildFilesFromExcludes(excludes, relDockerfile, options.dockerfileFromStdin()) buildCtx, err = archive.TarWithOptions(contextDir, &archive.TarOptions{ diff --git a/cli/command/image/build/dockerignore.go b/cli/command/image/build/dockerignore.go index 38cde094ac..c7360d402e 100644 --- a/cli/command/image/build/dockerignore.go +++ b/cli/command/image/build/dockerignore.go @@ -32,6 +32,9 @@ func TrimBuildFilesFromExcludes(excludes []string, dockerfile string, dockerfile if keep, _ := fileutils.Matches(".dockerignore", excludes); keep { excludes = append(excludes, "!.dockerignore") } + + // canonicalize dockerfile name to be platform-independent. + dockerfile = filepath.ToSlash(dockerfile) if keep, _ := fileutils.Matches(dockerfile, excludes); keep && !dockerfileFromStdin { excludes = append(excludes, "!"+dockerfile) }