1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00

Merge pull request #22932 from chenchun/fix_build

Fix building image  error if bridge network is disabled
This commit is contained in:
Alexander Morozov 2016-05-24 10:33:34 -07:00
commit 38217d4353
4 changed files with 30 additions and 1 deletions

View file

@ -9,6 +9,7 @@ import (
"github.com/docker/docker/layer" "github.com/docker/docker/layer"
"github.com/docker/docker/pkg/idtools" "github.com/docker/docker/pkg/idtools"
"github.com/docker/docker/pkg/stringid" "github.com/docker/docker/pkg/stringid"
"github.com/docker/docker/runconfig"
volumestore "github.com/docker/docker/volume/store" volumestore "github.com/docker/docker/volume/store"
"github.com/docker/engine-api/types" "github.com/docker/engine-api/types"
containertypes "github.com/docker/engine-api/types/container" containertypes "github.com/docker/engine-api/types/container"
@ -122,6 +123,9 @@ func (daemon *Daemon) create(params types.ContainerCreateConfig) (retC *containe
if params.NetworkingConfig != nil { if params.NetworkingConfig != nil {
endpointsConfigs = params.NetworkingConfig.EndpointsConfig endpointsConfigs = params.NetworkingConfig.EndpointsConfig
} }
// Make sure NetworkMode has an acceptable value. We do this to ensure
// backwards API compatibility.
container.HostConfig = runconfig.SetDefaultNetModeIfBlank(container.HostConfig)
if err := daemon.updateContainerNetworkSettings(container, endpointsConfigs); err != nil { if err := daemon.updateContainerNetworkSettings(container, endpointsConfigs); err != nil {
return nil, err return nil, err

View file

@ -486,3 +486,8 @@ func (d *Daemon) findContainerIP(id string) string {
} }
return strings.Trim(out, " \r\n'") return strings.Trim(out, " \r\n'")
} }
func (d *Daemon) buildImageWithOut(name, dockerfile string, useCache bool, buildFlags ...string) (string, int, error) {
buildCmd := buildImageCmdWithHost(name, dockerfile, d.sock(), useCache, buildFlags...)
return runCommandWithOutput(buildCmd)
}

View file

@ -2320,3 +2320,15 @@ func (s *DockerDaemonSuite) TestDaemonMaxConcurrencyWithConfigFileReload(c *chec
c.Assert(string(content), checker.Contains, expectedMaxConcurrentUploads) c.Assert(string(content), checker.Contains, expectedMaxConcurrentUploads)
c.Assert(string(content), checker.Contains, expectedMaxConcurrentDownloads) c.Assert(string(content), checker.Contains, expectedMaxConcurrentDownloads)
} }
func (s *DockerDaemonSuite) TestBuildOnDisabledBridgeNetworkDaemon(c *check.C) {
err := s.d.Start("-b=none", "--iptables=false")
c.Assert(err, check.IsNil)
s.d.c.Logf("dockerBinary %s", dockerBinary)
out, code, err := s.d.buildImageWithOut("busyboxs",
`FROM busybox
RUN cat /etc/hosts`, false)
comment := check.Commentf("Failed to build image. output %s, exitCode %d, err %v", out, code, err)
c.Assert(err, check.IsNil, comment)
c.Assert(code, check.Equals, 0, comment)
}

View file

@ -930,7 +930,15 @@ func getContainerState(c *check.C, id string) (int, bool, error) {
} }
func buildImageCmd(name, dockerfile string, useCache bool, buildFlags ...string) *exec.Cmd { func buildImageCmd(name, dockerfile string, useCache bool, buildFlags ...string) *exec.Cmd {
args := []string{"build", "-t", name} return buildImageCmdWithHost(name, dockerfile, "", useCache, buildFlags...)
}
func buildImageCmdWithHost(name, dockerfile, host string, useCache bool, buildFlags ...string) *exec.Cmd {
args := []string{}
if host != "" {
args = append(args, "--host", host)
}
args = append(args, "build", "-t", name)
if !useCache { if !useCache {
args = append(args, "--no-cache") args = append(args, "--no-cache")
} }