diff --git a/dev-tools/mage/common.go b/dev-tools/mage/common.go index 749efac162a..dc8b5cbe2bd 100644 --- a/dev-tools/mage/common.go +++ b/dev-tools/mage/common.go @@ -209,16 +209,6 @@ func dockerInfo() (*DockerInfo, error) { return &info, nil } -// HaveDockerCompose returns an error if docker-compose is not found on the -// PATH. -func HaveDockerCompose() error { - _, err := exec.LookPath("docker-compose") - if err != nil { - return fmt.Errorf("docker-compose is not available") - } - return nil -} - // HaveKubectl returns an error if kind is not found on the PATH. func HaveKubectl() error { _, err := exec.LookPath("kubectl") diff --git a/dev-tools/mage/crossbuild.go b/dev-tools/mage/crossbuild.go index 3e6d7042f40..df403ef2a73 100644 --- a/dev-tools/mage/crossbuild.go +++ b/dev-tools/mage/crossbuild.go @@ -294,7 +294,7 @@ func (b GolangCrossBuilder) Build() error { // container. So we ensure that all path separators are `/`. buildCmd = filepath.ToSlash(buildCmd) - dockerRun := sh.RunCmd("docker", "run") + dockerRun := sh.RunCmd("docker", "run", "--quiet") image, err := b.ImageSelector(b.Platform) if err != nil { return fmt.Errorf("failed to determine golang-crossbuild image tag: %w", err) diff --git a/dev-tools/mage/dockerbuilder.go b/dev-tools/mage/dockerbuilder.go index 466a0aba01d..953dd7ee7c5 100644 --- a/dev-tools/mage/dockerbuilder.go +++ b/dev-tools/mage/dockerbuilder.go @@ -217,7 +217,7 @@ func (b *dockerBuilder) expandDockerfile(templatesDir string, data map[string]in return nil } -// dockerBuild runs "docker build -t t1 -t t2 ... buildDir" +// dockerBuild runs "docker build --progress=plain -t t1 -t t2 ... buildDir" // returns the main tag additional tags if specified as part of extra_tags property // the extra tags are not push to the registry from b.ExtraVars["repository"] // returns an error if the command fails @@ -237,6 +237,7 @@ func (b *dockerBuilder) dockerBuild() (string, []string, error) { args := []string{ "build", + "--progress=plain", "-t", mainTag, } extraTags := []string{} diff --git a/dev-tools/mage/integtest_docker.go b/dev-tools/mage/integtest_docker.go index ea081378808..c98c3c23d9f 100644 --- a/dev-tools/mage/integtest_docker.go +++ b/dev-tools/mage/integtest_docker.go @@ -50,14 +50,11 @@ func (d *DockerIntegrationTester) Use(dir string) (bool, error) { return false, nil } -// HasRequirements ensures that the required docker and docker-compose are installed. +// HasRequirements ensures that the required docker is installed. func (d *DockerIntegrationTester) HasRequirements() error { if err := HaveDocker(); err != nil { return err } - if err := HaveDockerCompose(); err != nil { - return err - } return nil } @@ -66,7 +63,7 @@ func (d *DockerIntegrationTester) StepRequirements() IntegrationTestSteps { return IntegrationTestSteps{&IntegrationTestStep{}} } -// Test performs the tests with docker-compose. +// Test performs the tests with docker compose. func (d *DockerIntegrationTester) Test(dir string, mageTarget string, env map[string]string) error { var err error d.buildImagesOnce.Do(func() { err = dockerComposeBuildImages() }) @@ -85,8 +82,8 @@ func (d *DockerIntegrationTester) Test(dir string, mageTarget string, env map[st goPkgCache := filepath.Join(filepath.SplitList(build.Default.GOPATH)[0], "pkg/mod/cache/download") dockerGoPkgCache := "/gocache" - // Execute the inside of docker-compose. - args := []string{"-p", dockerComposeProjectName(), "run", + // Execute the inside of docker compose. + args := []string{"compose", "-p", dockerComposeProjectName(), "--progress=plain", "run", "-e", "DOCKER_COMPOSE_PROJECT_NAME=" + dockerComposeProjectName(), // Disable strict.perms because we mount host dirs inside containers // and the UID/GID won't meet the strict requirements. @@ -125,13 +122,13 @@ func (d *DockerIntegrationTester) Test(dir string, mageTarget string, env map[st composeEnv, os.Stdout, os.Stderr, - "docker-compose", + "docker", args..., ) err = saveDockerComposeLogs(dir, mageTarget, composeEnv) if err != nil && testErr == nil { - // saving docker-compose logs failed but the test didn't. + // saving docker compose logs failed but the test didn't. return err } @@ -145,12 +142,13 @@ func (d *DockerIntegrationTester) Test(dir string, mageTarget string, env map[st composeEnv, io.Discard, out, - "docker-compose", + "docker", + "compose", "-p", dockerComposeProjectName(), "rm", "--stop", "--force", ) if err != nil && testErr == nil { - // docker-compose rm failed but the test didn't + // docker compose rm failed but the test didn't return err } return testErr @@ -176,13 +174,14 @@ func saveDockerComposeLogs(rootDir string, mageTarget string, composeEnv map[str composeEnv, composeLogFile, // stdout composeLogFile, // stderr - "docker-compose", + "docker", + "compose", "-p", dockerComposeProjectName(), "logs", "--no-color", ) if err != nil { - return fmt.Errorf("executing docker-compose logs: %w", err) + return fmt.Errorf("executing docker compose logs: %w", err) } return nil @@ -205,8 +204,8 @@ func (d *DockerIntegrationTester) InsideTest(test func() error) error { } // integTestDockerComposeEnvVars returns the environment variables used for -// executing docker-compose (not the variables passed into the containers). -// docker-compose uses these when evaluating docker-compose.yml files. +// executing docker compose (not the variables passed into the containers). +// docker compose uses these when evaluating docker-compose.yml files. func integTestDockerComposeEnvVars() (map[string]string, error) { esBeatsDir, err := ElasticBeatsDir() if err != nil { @@ -221,8 +220,8 @@ func integTestDockerComposeEnvVars() (map[string]string, error) { }, nil } -// dockerComposeProjectName returns the project name to use with docker-compose. -// It is passed to docker-compose using the `-p` flag. And is passed to our +// dockerComposeProjectName returns the project name to use with docker compose. +// It is passed to docker compose using the `-p` flag. And is passed to our // Go and Python testing libraries through the DOCKER_COMPOSE_PROJECT_NAME // environment variable. func dockerComposeProjectName() string { @@ -255,7 +254,7 @@ func dockerComposeBuildImages() error { return err } - args := []string{"-p", dockerComposeProjectName(), "build", "--force-rm"} + args := []string{"compose", "-p", dockerComposeProjectName(), "--progress=plain", "build", "--force-rm"} if _, noCache := os.LookupEnv("DOCKER_NOCACHE"); noCache { args = append(args, "--no-cache") } @@ -273,7 +272,7 @@ func dockerComposeBuildImages() error { composeEnv, out, os.Stderr, - "docker-compose", args..., + "docker", args..., ) if err != nil { @@ -284,7 +283,7 @@ func dockerComposeBuildImages() error { composeEnv, out, os.Stderr, - "docker-compose", args..., + "docker", args..., ) } return err diff --git a/dev-tools/mage/pkgtypes.go b/dev-tools/mage/pkgtypes.go index faa0aa76750..187f875db75 100644 --- a/dev-tools/mage/pkgtypes.go +++ b/dev-tools/mage/pkgtypes.go @@ -785,7 +785,7 @@ func runFPM(spec PackageSpec, packageType PackageType) error { } spec.OutputFile = packageType.AddFileExtension(filepath.Join(distributionsDir, outputFile)) - dockerRun := sh.RunCmd("docker", "run") + dockerRun := sh.RunCmd("docker", "run", "--quiet") var args []string args, err = addUIDGidEnvArgs(args) diff --git a/pkg/testing/ogc/provisioner.go b/pkg/testing/ogc/provisioner.go index 52a3833e586..7be7e693330 100644 --- a/pkg/testing/ogc/provisioner.go +++ b/pkg/testing/ogc/provisioner.go @@ -134,6 +134,7 @@ func (p *provisioner) Clean(ctx context.Context, cfg common.Config, _ []common.I func (p *provisioner) ogcPull(ctx context.Context) error { args := []string{ "pull", + "--quiet", "docker.elastic.co/observability-ci/ogc:5.0.1", } var output bytes.Buffer