From d244043ce740412b39510fc2887ff497bf701287 Mon Sep 17 00:00:00 2001 From: Sven Dowideit Date: Fri, 21 Jul 2017 09:50:31 +1000 Subject: [PATCH] cache the user/system client if its created Signed-off-by: Sven Dowideit --- compose/project.go | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/compose/project.go b/compose/project.go index 946af2bc..1c6319f0 100644 --- a/compose/project.go +++ b/compose/project.go @@ -248,20 +248,27 @@ func StageServices(cfg *config.CloudConfig, services ...string) error { // Reduce service configurations to just image and labels needToPull := false + var client, userClient, systemClient dockerClient.APIClient for _, serviceName := range p.ServiceConfigs.Keys() { serviceConfig, _ := p.ServiceConfigs.Get(serviceName) // test to see if we need to Pull - var client dockerClient.APIClient if serviceConfig.Labels[config.ScopeLabel] != config.System { - client, err = rosDocker.NewDefaultClient() - if err != nil { - log.Error(err) + if userClient == nil { + userClient, err = rosDocker.NewDefaultClient() + if err != nil { + log.Error(err) + } + } + client = userClient } else { - client, err = rosDocker.NewSystemClient() - if err != nil { - log.Error(err) + if systemClient == nil { + systemClient, err = rosDocker.NewSystemClient() + if err != nil { + log.Error(err) + } + client = systemClient } } if client != nil {