mirror of
https://gitea.com/Lydanne/buildx.git
synced 2025-07-09 21:17:09 +08:00
Implement new driver-opt: default-load
This eases build driver migrations, as it allows aligning the default behavior. See also https://docs.docker.com/build/drivers/ Signed-off-by: Niklas Gehlen <niklas@namespacelabs.com>
This commit is contained in:
@ -59,6 +59,7 @@ var buildTests = []func(t *testing.T, sb integration.Sandbox){
|
||||
testBuildMultiExporters,
|
||||
testBuildLoadPush,
|
||||
testBuildSecret,
|
||||
testBuildDefaultLoad,
|
||||
}
|
||||
|
||||
func testBuild(t *testing.T, sb integration.Sandbox) {
|
||||
@ -750,6 +751,50 @@ COPY --from=build /token /
|
||||
})
|
||||
}
|
||||
|
||||
func testBuildDefaultLoad(t *testing.T, sb integration.Sandbox) {
|
||||
if !isDockerWorker(sb) {
|
||||
t.Skip("only testing with docker workers")
|
||||
}
|
||||
|
||||
tag := "buildx/build:" + identity.NewID()
|
||||
|
||||
var builderName string
|
||||
t.Cleanup(func() {
|
||||
if builderName == "" {
|
||||
return
|
||||
}
|
||||
|
||||
cmd := dockerCmd(sb, withArgs("image", "rm", tag))
|
||||
cmd.Stderr = os.Stderr
|
||||
require.NoError(t, cmd.Run())
|
||||
|
||||
out, err := rmCmd(sb, withArgs(builderName))
|
||||
require.NoError(t, err, out)
|
||||
})
|
||||
|
||||
out, err := createCmd(sb, withArgs(
|
||||
"--driver", "docker-container",
|
||||
"--driver-opt", "default-load=true",
|
||||
))
|
||||
require.NoError(t, err, out)
|
||||
builderName = strings.TrimSpace(out)
|
||||
|
||||
dir := createTestProject(t)
|
||||
|
||||
cmd := buildxCmd(sb, withArgs(
|
||||
"build",
|
||||
fmt.Sprintf("-t=%s", tag),
|
||||
dir,
|
||||
))
|
||||
cmd.Env = append(cmd.Env, "BUILDX_BUILDER="+builderName)
|
||||
outb, err := cmd.CombinedOutput()
|
||||
require.NoError(t, err, string(outb))
|
||||
|
||||
cmd = dockerCmd(sb, withArgs("image", "inspect", tag))
|
||||
cmd.Stderr = os.Stderr
|
||||
require.NoError(t, cmd.Run())
|
||||
}
|
||||
|
||||
func createTestProject(t *testing.T) string {
|
||||
dockerfile := []byte(`
|
||||
FROM busybox:latest AS base
|
||||
|
Reference in New Issue
Block a user