Skip to content

Commit a322429

Browse files
authored
ci(evergreen): use docker compose where available instead of standalone docker-compose (#5507)
* ci(evergreen): print docker version before starting containers * chore: also print compose version * chore: try not to use standalone compose * chore: account for rhel having a very old docker version installed * chore: just exit without error code * chore: don't use command in if it doesn't apply to subcommands
1 parent 9d7152a commit a322429

File tree

1 file changed

+64
-48
lines changed

1 file changed

+64
-48
lines changed

.evergreen/start-docker-envs.sh

Lines changed: 64 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -2,53 +2,69 @@
22

33
set -e
44

5-
if ! command -v docker &>/dev/null; then
6-
echo "docker could not be found"
7-
elif ! command -v docker-compose &>/dev/null; then
8-
echo "docker-compose could not be found"
9-
else
10-
echo "Starting test environments"
11-
12-
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
5+
DOCKER_COMPOSE="env MONGODB_VERSION= docker compose"
6+
7+
echo "Checking if docker is available ..."
8+
9+
if ! docker version &>/dev/null; then
10+
echo " docker could not be found"
11+
exit
12+
elif ! docker compose version &>/dev/null; then
13+
echo " docker compose could not be found, trying standalone docker-compose as a fallback"
14+
if ! docker-compose version &>/dev/null; then
15+
echo " docker-compose could not be found"
16+
exit
17+
fi
18+
# TODO(COMPASS-7687): This is only here because of rhel76 that is old enough
19+
# that the docker version installed there doesn't include compose. DevProd
20+
# team suggests that we should switch to Podman on RHEL
1321
DOCKER_COMPOSE="env MONGODB_VERSION= docker-compose"
14-
LOGS_DIR="$SCRIPT_DIR/logs"
15-
mkdir -p "$LOGS_DIR"
16-
17-
git clone -b v1.2.5 --single-branch https://github.com/mongodb-js/devtools-docker-test-envs.git test-envs
18-
$DOCKER_COMPOSE -f test-envs/docker/enterprise/docker-compose.yaml up -d
19-
$DOCKER_COMPOSE -f test-envs/docker/ldap/docker-compose.yaml up -d
20-
$DOCKER_COMPOSE -f test-envs/docker/scram/docker-compose.yaml up -d
21-
$DOCKER_COMPOSE -f test-envs/docker/sharded/docker-compose.yaml up -d
22-
$DOCKER_COMPOSE -f test-envs/docker/ssh/docker-compose.yaml up -d
23-
$DOCKER_COMPOSE -f test-envs/docker/tls/docker-compose.yaml up -d
24-
$DOCKER_COMPOSE -f test-envs/docker/kerberos/docker-compose.yaml up -d
25-
26-
__stop_all_docker_containers() {
27-
echo "Stopping test environments"
28-
$DOCKER_COMPOSE -f test-envs/docker/enterprise/docker-compose.yaml ps > $LOGS_DIR/docker-enterprise.ps || true;
29-
$DOCKER_COMPOSE -f test-envs/docker/ldap/docker-compose.yaml ps > $LOGS_DIR/docker-ldap.ps || true;
30-
$DOCKER_COMPOSE -f test-envs/docker/scram/docker-compose.yaml ps > $LOGS_DIR/docker-scram.ps || true;
31-
$DOCKER_COMPOSE -f test-envs/docker/sharded/docker-compose.yaml ps > $LOGS_DIR/docker-sharded.ps || true;
32-
$DOCKER_COMPOSE -f test-envs/docker/ssh/docker-compose.yaml ps > $LOGS_DIR/docker-ssh.ps || true;
33-
$DOCKER_COMPOSE -f test-envs/docker/tls/docker-compose.yaml ps > $LOGS_DIR/docker-tls.ps || true;
34-
$DOCKER_COMPOSE -f test-envs/docker/kerberos/docker-compose.yaml ps > $LOGS_DIR/docker-kerberos.ps || true;
35-
36-
$DOCKER_COMPOSE -f test-envs/docker/enterprise/docker-compose.yaml logs > $LOGS_DIR/docker-enterprise.log || true;
37-
$DOCKER_COMPOSE -f test-envs/docker/ldap/docker-compose.yaml logs > $LOGS_DIR/docker-ldap.log || true;
38-
$DOCKER_COMPOSE -f test-envs/docker/scram/docker-compose.yaml logs > $LOGS_DIR/docker-scram.log || true;
39-
$DOCKER_COMPOSE -f test-envs/docker/sharded/docker-compose.yaml logs > $LOGS_DIR/docker-sharded.log || true;
40-
$DOCKER_COMPOSE -f test-envs/docker/ssh/docker-compose.yaml logs > $LOGS_DIR/docker-ssh.log || true;
41-
$DOCKER_COMPOSE -f test-envs/docker/tls/docker-compose.yaml logs > $LOGS_DIR/docker-tls.log || true;
42-
$DOCKER_COMPOSE -f test-envs/docker/kerberos/docker-compose.yaml logs > $LOGS_DIR/docker-kerberos.log || true;
43-
44-
$DOCKER_COMPOSE -f test-envs/docker/enterprise/docker-compose.yaml down -v --remove-orphans
45-
$DOCKER_COMPOSE -f test-envs/docker/ldap/docker-compose.yaml down -v --remove-orphans
46-
$DOCKER_COMPOSE -f test-envs/docker/scram/docker-compose.yaml down -v --remove-orphans
47-
$DOCKER_COMPOSE -f test-envs/docker/sharded/docker-compose.yaml down -v --remove-orphans
48-
$DOCKER_COMPOSE -f test-envs/docker/ssh/docker-compose.yaml down -v --remove-orphans
49-
$DOCKER_COMPOSE -f test-envs/docker/tls/docker-compose.yaml down -v --remove-orphans
50-
$DOCKER_COMPOSE -f test-envs/docker/kerberos/docker-compose.yaml down -v --remove-orphans
51-
}
52-
53-
trap "__stop_all_docker_containers" EXIT
5422
fi
23+
24+
echo "Found docker:"
25+
docker version
26+
$DOCKER_COMPOSE version
27+
28+
echo "Starting test environments"
29+
30+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
31+
LOGS_DIR="$SCRIPT_DIR/logs"
32+
mkdir -p "$LOGS_DIR"
33+
34+
git clone -b v1.2.5 --single-branch https://github.com/mongodb-js/devtools-docker-test-envs.git test-envs
35+
$DOCKER_COMPOSE -f test-envs/docker/enterprise/docker-compose.yaml up -d
36+
$DOCKER_COMPOSE -f test-envs/docker/ldap/docker-compose.yaml up -d
37+
$DOCKER_COMPOSE -f test-envs/docker/scram/docker-compose.yaml up -d
38+
$DOCKER_COMPOSE -f test-envs/docker/sharded/docker-compose.yaml up -d
39+
$DOCKER_COMPOSE -f test-envs/docker/ssh/docker-compose.yaml up -d
40+
$DOCKER_COMPOSE -f test-envs/docker/tls/docker-compose.yaml up -d
41+
$DOCKER_COMPOSE -f test-envs/docker/kerberos/docker-compose.yaml up -d
42+
43+
__stop_all_docker_containers() {
44+
echo "Stopping test environments"
45+
$DOCKER_COMPOSE -f test-envs/docker/enterprise/docker-compose.yaml ps >$LOGS_DIR/docker-enterprise.ps || true
46+
$DOCKER_COMPOSE -f test-envs/docker/ldap/docker-compose.yaml ps >$LOGS_DIR/docker-ldap.ps || true
47+
$DOCKER_COMPOSE -f test-envs/docker/scram/docker-compose.yaml ps >$LOGS_DIR/docker-scram.ps || true
48+
$DOCKER_COMPOSE -f test-envs/docker/sharded/docker-compose.yaml ps >$LOGS_DIR/docker-sharded.ps || true
49+
$DOCKER_COMPOSE -f test-envs/docker/ssh/docker-compose.yaml ps >$LOGS_DIR/docker-ssh.ps || true
50+
$DOCKER_COMPOSE -f test-envs/docker/tls/docker-compose.yaml ps >$LOGS_DIR/docker-tls.ps || true
51+
$DOCKER_COMPOSE -f test-envs/docker/kerberos/docker-compose.yaml ps >$LOGS_DIR/docker-kerberos.ps || true
52+
53+
$DOCKER_COMPOSE -f test-envs/docker/enterprise/docker-compose.yaml logs >$LOGS_DIR/docker-enterprise.log || true
54+
$DOCKER_COMPOSE -f test-envs/docker/ldap/docker-compose.yaml logs >$LOGS_DIR/docker-ldap.log || true
55+
$DOCKER_COMPOSE -f test-envs/docker/scram/docker-compose.yaml logs >$LOGS_DIR/docker-scram.log || true
56+
$DOCKER_COMPOSE -f test-envs/docker/sharded/docker-compose.yaml logs >$LOGS_DIR/docker-sharded.log || true
57+
$DOCKER_COMPOSE -f test-envs/docker/ssh/docker-compose.yaml logs >$LOGS_DIR/docker-ssh.log || true
58+
$DOCKER_COMPOSE -f test-envs/docker/tls/docker-compose.yaml logs >$LOGS_DIR/docker-tls.log || true
59+
$DOCKER_COMPOSE -f test-envs/docker/kerberos/docker-compose.yaml logs >$LOGS_DIR/docker-kerberos.log || true
60+
61+
$DOCKER_COMPOSE -f test-envs/docker/enterprise/docker-compose.yaml down -v --remove-orphans
62+
$DOCKER_COMPOSE -f test-envs/docker/ldap/docker-compose.yaml down -v --remove-orphans
63+
$DOCKER_COMPOSE -f test-envs/docker/scram/docker-compose.yaml down -v --remove-orphans
64+
$DOCKER_COMPOSE -f test-envs/docker/sharded/docker-compose.yaml down -v --remove-orphans
65+
$DOCKER_COMPOSE -f test-envs/docker/ssh/docker-compose.yaml down -v --remove-orphans
66+
$DOCKER_COMPOSE -f test-envs/docker/tls/docker-compose.yaml down -v --remove-orphans
67+
$DOCKER_COMPOSE -f test-envs/docker/kerberos/docker-compose.yaml down -v --remove-orphans
68+
}
69+
70+
trap "__stop_all_docker_containers" EXIT

0 commit comments

Comments
 (0)