|
25 | 25 | DEFAULT_HOST_OS = "el9"
|
26 | 26 | DEFAULT_MYSQL_VER = "mysql:8.4.4"
|
27 | 27 | DEFAULT_ES_VER = "opensearchproject/opensearch:2.18.0"
|
| 28 | +DEFAULT_ES_PLATFORM = "linux/amd64" |
28 | 29 | DEFAULT_IAM_VER = "indigoiam/iam-login-service:v1.10.2"
|
29 | 30 | FEATURE_VARIABLES = {
|
30 | 31 | "DIRACOSVER": "master",
|
|
71 | 72 | }
|
72 | 73 | LOG_PATTERN = re.compile(r"^[\d\-]{10} [\d:]{8} UTC [^\s]+ ([A-Z]+):")
|
73 | 74 |
|
| 75 | +DOCKER_COMPOSE_CMD = shlex.split(os.environ.get("DOCKER_COMPOSE_CMD", "docker compose")) |
| 76 | + |
74 | 77 |
|
75 | 78 | class NaturalOrderGroup(typer.core.TyperGroup):
|
76 | 79 | """Group for showing subcommands in the correct order"""
|
@@ -193,8 +196,8 @@ def destroy():
|
193 | 196 | typer.secho("Shutting down and removing containers", err=True, fg=c.GREEN)
|
194 | 197 | with _gen_docker_compose(DEFAULT_MODULES) as docker_compose_fn:
|
195 | 198 | os.execvpe(
|
196 |
| - "docker", |
197 |
| - ["docker", "compose", "-f", docker_compose_fn, "down", "--remove-orphans", "-t", "0", "--volumes"], |
| 199 | + DOCKER_COMPOSE_CMD[0], |
| 200 | + [*DOCKER_COMPOSE_CMD, "-f", docker_compose_fn, "down", "--remove-orphans", "-t", "0", "--volumes"], |
198 | 201 | _make_env({}),
|
199 | 202 | )
|
200 | 203 |
|
@@ -253,7 +256,7 @@ def prepare_environment(
|
253 | 256 | typer.secho("Running docker compose to create containers", fg=c.GREEN)
|
254 | 257 | with _gen_docker_compose(modules, diracx_dist_dir=diracx_dist_dir) as docker_compose_fn:
|
255 | 258 | subprocess.run(
|
256 |
| - ["docker", "compose", "-f", docker_compose_fn, "up", "-d", "dirac-server", "dirac-client", "dirac-pilot"] |
| 259 | + [*DOCKER_COMPOSE_CMD, "-f", docker_compose_fn, "up", "-d", "dirac-server", "dirac-client", "dirac-pilot"] |
257 | 260 | + extra_services,
|
258 | 261 | check=True,
|
259 | 262 | env=docker_compose_env,
|
@@ -360,7 +363,7 @@ def prepare_environment(
|
360 | 363 | subStderr = open(docker_compose_fn_final / "stderr", "w")
|
361 | 364 |
|
362 | 365 | subprocess.Popen(
|
363 |
| - ["docker", "compose", "-f", docker_compose_fn_final / "docker-compose.yml", "up", "-d", "diracx"], |
| 366 | + [*DOCKER_COMPOSE_CMD, "-f", docker_compose_fn_final / "docker-compose.yml", "up", "-d", "diracx"], |
364 | 367 | env=docker_compose_env,
|
365 | 368 | stdin=None,
|
366 | 369 | stdout=subStdout,
|
@@ -569,7 +572,7 @@ def _gen_docker_compose(modules, *, diracx_dist_dir=None):
|
569 | 572 | # Load the docker compose configuration and mount the necessary volumes
|
570 | 573 | input_fn = Path(__file__).parent / "tests/CI/docker-compose.yml"
|
571 | 574 | docker_compose = yaml.safe_load(input_fn.read_text())
|
572 |
| - # diracx-wait-for-db needs the volume to be able to run the witing script |
| 575 | + # diracx-wait-for-db needs the volume to be able to run the waiting script |
573 | 576 | for ctn in ("dirac-server", "dirac-client", "dirac-pilot", "diracx-wait-for-db"):
|
574 | 577 | if "volumes" not in docker_compose["services"][ctn]:
|
575 | 578 | docker_compose["services"][ctn]["volumes"] = []
|
@@ -619,7 +622,7 @@ def _gen_docker_compose(modules, *, diracx_dist_dir=None):
|
619 | 622 | def _check_containers_running(*, is_up=True):
|
620 | 623 | with _gen_docker_compose(DEFAULT_MODULES) as docker_compose_fn:
|
621 | 624 | running_containers = subprocess.run(
|
622 |
| - ["docker", "compose", "-f", docker_compose_fn, "ps", "-q", "-a"], |
| 625 | + [*DOCKER_COMPOSE_CMD, "-f", docker_compose_fn, "ps", "-q", "-a"], |
623 | 626 | stdout=subprocess.PIPE,
|
624 | 627 | env=_make_env({}),
|
625 | 628 | # docker compose ps has a non-zero exit code when no containers are running
|
@@ -701,6 +704,7 @@ def _make_env(flags):
|
701 | 704 | else:
|
702 | 705 | env["MYSQL_ADMIN_COMMAND"] = "mysqladmin"
|
703 | 706 | env["ES_VER"] = flags.pop("ES_VER", DEFAULT_ES_VER)
|
| 707 | + env["ES_PLATFORM"] = flags.pop("ES_PLATFORM", DEFAULT_ES_PLATFORM) |
704 | 708 | env["IAM_VER"] = flags.pop("IAM_VER", DEFAULT_IAM_VER)
|
705 | 709 | if "CVMFS_DIR" not in env or not Path(env["CVMFS_DIR"]).is_dir():
|
706 | 710 | typer.secho(f"CVMFS_DIR environment value: {env.get('CVMFS_DIR', 'NOT SET')}", fg=c.YELLOW)
|
|
0 commit comments