diff --git a/dev/archery/archery/docker/cli.py b/dev/archery/archery/docker/cli.py index e6baf0ca1f002..7053db2afccff 100644 --- a/dev/archery/archery/docker/cli.py +++ b/dev/archery/archery/docker/cli.py @@ -77,7 +77,9 @@ def docker(ctx, src, dry_run, using_docker_cli, using_docker_buildx): compose = DockerCompose(config_path, params=os.environ, using_docker=using_docker_cli, using_buildx=using_docker_buildx, - debug=ctx.obj.get('debug', False)) + debug=ctx.obj.get('debug', False), + compose_bin=("docker compose" if using_docker_cli + else "docker-compose")) if dry_run: _mock_compose_calls(compose) ctx.obj['compose'] = compose diff --git a/dev/archery/archery/docker/core.py b/dev/archery/archery/docker/core.py index 38720e5856a14..0b49111dd6944 100644 --- a/dev/archery/archery/docker/core.py +++ b/dev/archery/archery/docker/core.py @@ -402,6 +402,10 @@ def run(self, service_name, command=None, *, env=None, volumes=None, # on the docker-compose yaml file. if isinstance(cmd, list): cmd = shlex.join(cmd) + # Match behaviour from docker compose + # to interpolate environment variables + # https://docs.docker.com/compose/compose-file/12-interpolation/ + cmd = cmd.replace("$$", "$") args.extend(shlex.split(cmd)) # execute as a plain docker cli command