(t *testing.T)
| 612 | } |
| 613 | |
| 614 | func TestBuildTLS(t *testing.T) { |
| 615 | t.Helper() |
| 616 | |
| 617 | c := NewParallelCLI(t) |
| 618 | const dindBuilder = "e2e-dind-builder" |
| 619 | tmp := t.TempDir() |
| 620 | |
| 621 | t.Cleanup(func() { |
| 622 | c.RunDockerCmd(t, "rm", "-f", dindBuilder) |
| 623 | c.RunDockerCmd(t, "context", "rm", dindBuilder) |
| 624 | }) |
| 625 | |
| 626 | c.RunDockerCmd(t, "run", "--name", dindBuilder, "--privileged", "-p", "127.0.0.1::2376", "-d", "docker:dind") |
| 627 | |
| 628 | poll.WaitOn(t, func(_ poll.LogT) poll.Result { |
| 629 | res := c.RunDockerCmd(t, "logs", dindBuilder) |
| 630 | if strings.Contains(res.Combined(), "API listen on [::]:2376") { |
| 631 | return poll.Success() |
| 632 | } |
| 633 | return poll.Continue("waiting for Docker daemon to be running") |
| 634 | }, poll.WithTimeout(10*time.Second)) |
| 635 | |
| 636 | time.Sleep(1 * time.Second) // wait for dind setup |
| 637 | c.RunDockerCmd(t, "cp", dindBuilder+":/certs/client", tmp) |
| 638 | |
| 639 | res := c.RunDockerCmd(t, "inspect", "-f", "{{(index (index .NetworkSettings.Ports \"2376/tcp\") 0).HostPort}}", dindBuilder) |
| 640 | hostPort := strings.TrimSpace(res.Stdout()) |
| 641 | if hostPort == "" { |
| 642 | t.Fatal("failed to resolve mapped host port for 2376/tcp") |
| 643 | } |
| 644 | |
| 645 | c.RunDockerCmd(t, "context", "create", dindBuilder, "--docker", |
| 646 | fmt.Sprintf("host=tcp://127.0.0.1:%s,ca=%s/client/ca.pem,cert=%s/client/cert.pem,key=%s/client/key.pem,skip-tls-verify=1", hostPort, tmp, tmp, tmp)) |
| 647 | |
| 648 | cmd := c.NewDockerComposeCmd(t, "-f", "fixtures/build-test/minimal/compose.yaml", "build") |
| 649 | cmd.Env = append(cmd.Env, "DOCKER_CONTEXT="+dindBuilder) |
| 650 | cmd.Stdout = os.Stdout |
| 651 | res = icmd.RunCmd(cmd) |
| 652 | res.Assert(t, icmd.Expected{Err: "Built"}) |
| 653 | } |
| 654 | |
| 655 | func TestBuildEscaped(t *testing.T) { |
| 656 | c := NewParallelCLI(t) |
nothing calls this directly
no test coverage detected