mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Pass authentication credentials through to build
In Docker 1.10 and earlier, "docker build" can do a build FROM a private repository that hasn't yet been pulled. This doesn't work on master. I bisected this to https://github.com/docker/docker/pull/19414. AuthConfigs is deserialized from the HTTP request, but not included in the builder options. Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
This commit is contained in:
parent
2a16099f57
commit
6fed46aeb9
2 changed files with 25 additions and 0 deletions
|
@ -159,6 +159,8 @@ func (br *buildRouter) postBuild(ctx context.Context, w http.ResponseWriter, r *
|
||||||
buildOptions.Dockerfile = dockerfileName
|
buildOptions.Dockerfile = dockerfileName
|
||||||
}
|
}
|
||||||
|
|
||||||
|
buildOptions.AuthConfigs = authConfigs
|
||||||
|
|
||||||
out = output
|
out = output
|
||||||
if buildOptions.SuppressOutput {
|
if buildOptions.SuppressOutput {
|
||||||
out = notVerboseBuffer
|
out = notVerboseBuffer
|
||||||
|
|
|
@ -6534,3 +6534,26 @@ func (s *DockerSuite) TestBuildWorkdirWindowsPath(c *check.C) {
|
||||||
c.Fatal(err)
|
c.Fatal(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *DockerRegistryAuthSuite) TestBuildFromAuthenticatedRegistry(c *check.C) {
|
||||||
|
dockerCmd(c, "login", "-u", s.reg.username, "-p", s.reg.password, "-e", s.reg.email, privateRegistryURL)
|
||||||
|
|
||||||
|
baseImage := privateRegistryURL + "/baseimage"
|
||||||
|
|
||||||
|
_, err := buildImage(baseImage, `
|
||||||
|
FROM busybox
|
||||||
|
ENV env1 val1
|
||||||
|
`, true)
|
||||||
|
|
||||||
|
c.Assert(err, checker.IsNil)
|
||||||
|
|
||||||
|
dockerCmd(c, "push", baseImage)
|
||||||
|
dockerCmd(c, "rmi", baseImage)
|
||||||
|
|
||||||
|
_, err = buildImage(baseImage, fmt.Sprintf(`
|
||||||
|
FROM %s
|
||||||
|
ENV env2 val2
|
||||||
|
`, baseImage), true)
|
||||||
|
|
||||||
|
c.Assert(err, checker.IsNil)
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue