Skip to content

Commit c36b083

Browse files
authored
Merge pull request #282 from joeshaw/docker-0.12
changes for Docker 0.12 compatibility
2 parents 43cedfa + c6b4690 commit c36b083

File tree

1 file changed

+30
-27
lines changed

1 file changed

+30
-27
lines changed

runtime/runtime.go

Lines changed: 30 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,7 @@ func (s *ServiceRuntime) StopOldVersion(appCfg config.App, limit int) error {
268268

269269
image, err := s.InspectImage(container.Image)
270270
if err != nil {
271-
log.Errorf("ERROR: Unable to inspect image: %s", container.Image)
271+
log.Errorf("ERROR: Unable to inspect image %s: %s", container.Image, err)
272272
continue
273273
}
274274

@@ -459,6 +459,11 @@ func (s *ServiceRuntime) RunCommand(env string, appCfg config.App, cmd []string)
459459

460460
runCmd := []string{"/bin/sh", "-c", strings.Join(cmd, " ")}
461461

462+
hostConfig := &docker.HostConfig{}
463+
if s.dns != "" {
464+
hostConfig.DNS = []string{s.dns}
465+
}
466+
462467
container, err := s.dockerClient.CreateContainer(docker.CreateContainerOptions{
463468
Config: &docker.Config{
464469
Image: appCfg.Version(),
@@ -468,6 +473,7 @@ func (s *ServiceRuntime) RunCommand(env string, appCfg config.App, cmd []string)
468473
Cmd: runCmd,
469474
OpenStdin: false,
470475
},
476+
HostConfig: hostConfig,
471477
})
472478

473479
if err != nil {
@@ -495,11 +501,7 @@ func (s *ServiceRuntime) RunCommand(env string, appCfg config.App, cmd []string)
495501
defer s.dockerClient.RemoveContainer(docker.RemoveContainerOptions{
496502
ID: container.ID,
497503
})
498-
config := &docker.HostConfig{}
499-
if s.dns != "" {
500-
config.DNS = []string{s.dns}
501-
}
502-
err = s.dockerClient.StartContainer(container.ID, config)
504+
err = s.dockerClient.StartContainer(container.ID, nil)
503505

504506
if err != nil {
505507
return container, err
@@ -656,9 +658,8 @@ func (s *ServiceRuntime) Start(env, pool string, appCfg config.App) (*docker.Con
656658
return nil, err
657659
}
658660

659-
// Existing container is running or stopped. If the image has changed, stop
660-
// and re-create it.
661-
if container != nil && container.Image != image.ID {
661+
// If there's an existing container, stop it if it's running and re-create it.
662+
if container != nil {
662663
if container.State.Running || container.State.Restarting || container.State.Paused {
663664
log.Printf("Stopping %s version %s running as %s", appCfg.Name(), appCfg.Version(), container.ID[0:12])
664665
err := s.dockerClient.StopContainer(container.ID, 10)
@@ -700,10 +701,27 @@ func (s *ServiceRuntime) Start(env, pool string, appCfg config.App) (*docker.Con
700701
}
701702
}
702703

704+
hostConfig := &docker.HostConfig{
705+
PublishAllPorts: true,
706+
RestartPolicy: docker.RestartPolicy{
707+
Name: "on-failure",
708+
MaximumRetryCount: 16,
709+
},
710+
LogConfig: docker.LogConfig{
711+
Type: "syslog",
712+
Config: map[string]string{"tag": containerName},
713+
},
714+
}
715+
716+
if s.dns != "" {
717+
hostConfig.DNS = []string{s.dns}
718+
}
719+
703720
log.Printf("Creating %s version %s", appCfg.Name(), appCfg.Version())
704721
container, err = s.dockerClient.CreateContainer(docker.CreateContainerOptions{
705-
Name: containerName,
706-
Config: config,
722+
Name: containerName,
723+
Config: config,
724+
HostConfig: hostConfig,
707725
})
708726
if err != nil {
709727
return nil, err
@@ -712,22 +730,7 @@ func (s *ServiceRuntime) Start(env, pool string, appCfg config.App) (*docker.Con
712730

713731
log.Printf("Starting %s version %s running as %s", appCfg.Name(), appCfg.Version(), container.ID[0:12])
714732

715-
config := &docker.HostConfig{
716-
PublishAllPorts: true,
717-
RestartPolicy: docker.RestartPolicy{
718-
Name: "on-failure",
719-
MaximumRetryCount: 16,
720-
},
721-
LogConfig: docker.LogConfig{
722-
Type: "syslog",
723-
Config: map[string]string{"syslog-tag": containerName},
724-
},
725-
}
726-
727-
if s.dns != "" {
728-
config.DNS = []string{s.dns}
729-
}
730-
err = s.dockerClient.StartContainer(container.ID, config)
733+
err = s.dockerClient.StartContainer(container.ID, nil)
731734

732735
return container, err
733736
}

0 commit comments

Comments
 (0)