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.AuthConfigs = authConfigs
|
||||
|
||||
out = output
|
||||
if buildOptions.SuppressOutput {
|
||||
out = notVerboseBuffer
|
||||
|
|
|
@ -6534,3 +6534,26 @@ func (s *DockerSuite) TestBuildWorkdirWindowsPath(c *check.C) {
|
|||
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