mirror of
https://github.com/docker/compose.git
synced 2025-07-22 21:24:38 +02:00
don't create metadatafile, just generate a random name
Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
This commit is contained in:
parent
97530790fa
commit
4893a8b9ad
@ -23,6 +23,7 @@ import (
|
|||||||
"encoding/json"
|
"encoding/json"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"math/rand"
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
@ -249,20 +250,22 @@ func (s *composeService) doBuildBake(ctx context.Context, project *types.Project
|
|||||||
}
|
}
|
||||||
logrus.Debugf("bake build config:\n%s", string(b))
|
logrus.Debugf("bake build config:\n%s", string(b))
|
||||||
|
|
||||||
metadata, err := os.CreateTemp(os.TempDir(), "compose")
|
var metadataFile string
|
||||||
if err != nil {
|
for {
|
||||||
return nil, err
|
// we don't use os.CreateTemp here as we need a temporary file name, but don't want it actually created
|
||||||
|
// as bake relies on atomicwriter and this creates conflict during rename
|
||||||
|
metadataFile = filepath.Join(os.TempDir(), fmt.Sprintf("compose-build-metadataFile-%d.json", rand.Int31()))
|
||||||
|
if _, err = os.Stat(metadataFile); os.IsNotExist(err) {
|
||||||
|
break
|
||||||
|
}
|
||||||
}
|
}
|
||||||
defer func() {
|
|
||||||
_ = os.Remove(metadata.Name())
|
|
||||||
}()
|
|
||||||
|
|
||||||
buildx, err := manager.GetPlugin("buildx", s.dockerCli, &cobra.Command{})
|
buildx, err := manager.GetPlugin("buildx", s.dockerCli, &cobra.Command{})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
args := []string{"bake", "--file", "-", "--progress", "rawjson", "--metadata-file", metadata.Name()}
|
args := []string{"bake", "--file", "-", "--progress", "rawjson", "--metadata-file", metadataFile}
|
||||||
mustAllow := buildx.Version != "" && versions.GreaterThanOrEqualTo(buildx.Version[1:], "0.17.0")
|
mustAllow := buildx.Version != "" && versions.GreaterThanOrEqualTo(buildx.Version[1:], "0.17.0")
|
||||||
if mustAllow {
|
if mustAllow {
|
||||||
// FIXME we should prompt user about this, but this is a breaking change in UX
|
// FIXME we should prompt user about this, but this is a breaking change in UX
|
||||||
@ -343,7 +346,7 @@ func (s *composeService) doBuildBake(ctx context.Context, project *types.Project
|
|||||||
return nil, fmt.Errorf("failed to execute bake: %w", err)
|
return nil, fmt.Errorf("failed to execute bake: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
b, err = os.ReadFile(metadata.Name())
|
b, err = os.ReadFile(metadataFile)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user