@@ -268,7 +268,7 @@ func (s *ServiceRuntime) StopOldVersion(appCfg config.App, limit int) error {
268
268
269
269
image , err := s .InspectImage (container .Image )
270
270
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 )
272
272
continue
273
273
}
274
274
@@ -459,6 +459,11 @@ func (s *ServiceRuntime) RunCommand(env string, appCfg config.App, cmd []string)
459
459
460
460
runCmd := []string {"/bin/sh" , "-c" , strings .Join (cmd , " " )}
461
461
462
+ hostConfig := & docker.HostConfig {}
463
+ if s .dns != "" {
464
+ hostConfig .DNS = []string {s .dns }
465
+ }
466
+
462
467
container , err := s .dockerClient .CreateContainer (docker.CreateContainerOptions {
463
468
Config : & docker.Config {
464
469
Image : appCfg .Version (),
@@ -468,6 +473,7 @@ func (s *ServiceRuntime) RunCommand(env string, appCfg config.App, cmd []string)
468
473
Cmd : runCmd ,
469
474
OpenStdin : false ,
470
475
},
476
+ HostConfig : hostConfig ,
471
477
})
472
478
473
479
if err != nil {
@@ -495,11 +501,7 @@ func (s *ServiceRuntime) RunCommand(env string, appCfg config.App, cmd []string)
495
501
defer s .dockerClient .RemoveContainer (docker.RemoveContainerOptions {
496
502
ID : container .ID ,
497
503
})
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 )
503
505
504
506
if err != nil {
505
507
return container , err
@@ -656,9 +658,8 @@ func (s *ServiceRuntime) Start(env, pool string, appCfg config.App) (*docker.Con
656
658
return nil , err
657
659
}
658
660
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 {
662
663
if container .State .Running || container .State .Restarting || container .State .Paused {
663
664
log .Printf ("Stopping %s version %s running as %s" , appCfg .Name (), appCfg .Version (), container .ID [0 :12 ])
664
665
err := s .dockerClient .StopContainer (container .ID , 10 )
@@ -700,10 +701,27 @@ func (s *ServiceRuntime) Start(env, pool string, appCfg config.App) (*docker.Con
700
701
}
701
702
}
702
703
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
+
703
720
log .Printf ("Creating %s version %s" , appCfg .Name (), appCfg .Version ())
704
721
container , err = s .dockerClient .CreateContainer (docker.CreateContainerOptions {
705
- Name : containerName ,
706
- Config : config ,
722
+ Name : containerName ,
723
+ Config : config ,
724
+ HostConfig : hostConfig ,
707
725
})
708
726
if err != nil {
709
727
return nil , err
@@ -712,22 +730,7 @@ func (s *ServiceRuntime) Start(env, pool string, appCfg config.App) (*docker.Con
712
730
713
731
log .Printf ("Starting %s version %s running as %s" , appCfg .Name (), appCfg .Version (), container .ID [0 :12 ])
714
732
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 )
731
734
732
735
return container , err
733
736
}
0 commit comments