From 254f6b1b7685ff2f3c3a4a5f6862f182a0269556 Mon Sep 17 00:00:00 2001 From: Gaurav Gahlot Date: Thu, 6 Oct 2022 12:31:06 +0530 Subject: [PATCH] log info only once --- docker.go | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/docker.go b/docker.go index 34c727056f..d8be4bcfcc 100644 --- a/docker.go +++ b/docker.go @@ -15,6 +15,7 @@ import ( "os/exec" "path/filepath" "strings" + "sync" "time" "github.com/docker/docker/api/types/filters" @@ -40,6 +41,7 @@ var ( // Implement interfaces _ Container = (*DockerContainer)(nil) + logOnce sync.Once ErrDuplicateMountTarget = errors.New("duplicate mount target detected") ) @@ -771,26 +773,28 @@ func NewDockerProvider(provOpts ...DockerProviderOption) (*DockerProvider, error config: tcConfig, } - // log docker server info - { - infoMessage := `%v - Connected to docker: + // log docker server info only once + logOnce.Do(p.logDockerServerInfo) + + return p, nil +} + +func (p *DockerProvider) logDockerServerInfo() { + infoMessage := `%v - Connected to docker: Server Version: %v API Version: %v Operating System: %v Total Memory: %v MB ` - info, err := p.client.Info(context.Background()) - if err != nil { - return nil, err - } - - p.Logger.Printf(infoMessage, packagePath, - info.ServerVersion, p.client.ClientVersion(), - info.OperatingSystem, info.MemTotal/1024/1024) + info, err := p.client.Info(context.Background()) + if err != nil { + p.Logger.Printf("failed getting information about docker server: %s", err) } - return p, nil + p.Logger.Printf(infoMessage, packagePath, + info.ServerVersion, p.client.ClientVersion(), + info.OperatingSystem, info.MemTotal/1024/1024) } // configureTC reads from testcontainers properties file, if it exists