From 7cb1f8baf2c75c28398736aa12257f046b013c6a Mon Sep 17 00:00:00 2001 From: Nicolas De Loof Date: Mon, 20 Nov 2023 11:45:16 +0100 Subject: [PATCH] introduce RuntimeVersion for code to check container runtime supports required features Signed-off-by: Nicolas De Loof --- pkg/compose/compose.go | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/pkg/compose/compose.go b/pkg/compose/compose.go index a54e21dd..d0fc1988 100644 --- a/pkg/compose/compose.go +++ b/pkg/compose/compose.go @@ -295,5 +295,22 @@ func (s *composeService) isSWarmEnabled(ctx context.Context) (bool, error) { } }) return swarmEnabled.val, swarmEnabled.err +} + +var runtimeVersion = struct { + once sync.Once + val string + err error +}{} + +func (s *composeService) RuntimeVersion(ctx context.Context) (string, error) { + runtimeVersion.once.Do(func() { + version, err := s.dockerCli.Client().ServerVersion(ctx) + if err != nil { + runtimeVersion.err = err + } + runtimeVersion.val = version.APIVersion + }) + return runtimeVersion.val, runtimeVersion.err }