diff --git a/.github/workflows/build-ci.yml b/.github/workflows/build-ci.yml
index c3e22c23f..8feea0f6c 100644
--- a/.github/workflows/build-ci.yml
+++ b/.github/workflows/build-ci.yml
@@ -36,16 +36,16 @@ jobs:
                 os:
                     - ubuntu-latest
                 mongodb:
-                    - '4.0'
-                    - '4.2'
                     - '4.4'
                     - '5.0'
+                    - '6.0'
+                    - '7.0'
                 php:
                     - '8.1'
                     - '8.2'
         services:
             mysql:
-                image: mysql:5.7
+                image: mysql:8.0
                 ports:
                     - 3307:3306
                 env:
@@ -58,13 +58,16 @@ jobs:
             -   name: Create MongoDB Replica Set
                 run: |
                     docker run --name mongodb -p 27017:27017 -e MONGO_INITDB_DATABASE=unittest --detach mongo:${{ matrix.mongodb }} mongod --replSet rs --setParameter transactionLifetimeLimitSeconds=5
-                    until docker exec --tty mongodb mongo 127.0.0.1:27017 --eval "db.runCommand({ ping: 1 })"; do
+
+                    if [ "${{ matrix.mongodb }}" = "4.4" ]; then MONGOSH_BIN="mongo"; else MONGOSH_BIN="mongosh"; fi
+                    until docker exec --tty mongodb $MONGOSH_BIN 127.0.0.1:27017 --eval "db.runCommand({ ping: 1 })"; do
                     sleep 1
                     done
-                    sudo docker exec --tty mongodb mongo 127.0.0.1:27017 --eval "rs.initiate({\"_id\":\"rs\",\"members\":[{\"_id\":0,\"host\":\"127.0.0.1:27017\" }]})"
+                    sudo docker exec --tty mongodb $MONGOSH_BIN 127.0.0.1:27017 --eval "rs.initiate({\"_id\":\"rs\",\"members\":[{\"_id\":0,\"host\":\"127.0.0.1:27017\" }]})"
             -   name: Show MongoDB server status
                 run: |
-                    docker exec --tty mongodb mongo 127.0.0.1:27017 --eval "db.runCommand({ serverStatus: 1 })"
+                    if [ "${{ matrix.mongodb }}" = "4.4" ]; then MONGOSH_BIN="mongo"; else MONGOSH_BIN="mongosh"; fi
+                    docker exec --tty mongodb $MONGOSH_BIN 127.0.0.1:27017 --eval "db.runCommand({ serverStatus: 1 })"
             -   name: "Installing php"
                 uses: shivammathur/setup-php@v2
                 with:
diff --git a/Dockerfile b/Dockerfile
index bd7e03a14..d13553499 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,24 +1,21 @@
 ARG PHP_VERSION=8.1
-ARG COMPOSER_VERSION=2.5.4
 
 FROM php:${PHP_VERSION}-cli
 
 RUN apt-get update && \
-    apt-get install -y autoconf pkg-config libssl-dev git libzip-dev zlib1g-dev && \
+    apt-get install -y autoconf pkg-config libssl-dev git unzip libzip-dev zlib1g-dev && \
     pecl install mongodb && docker-php-ext-enable mongodb && \
     pecl install xdebug && docker-php-ext-enable xdebug && \
     docker-php-ext-install -j$(nproc) pdo_mysql zip
 
-COPY --from=composer:${COMPOSER_VERSION} /usr/bin/composer /usr/local/bin/composer
+COPY --from=composer:2.5.8 /usr/bin/composer /usr/local/bin/composer
 
 WORKDIR /code
 
-COPY composer.* ./
-
-RUN composer install
-
 COPY ./ ./
 
+ENV COMPOSER_ALLOW_SUPERUSER=1
+
 RUN composer install
 
-CMD ["./vendor/bin/phpunit"]
+CMD ["./vendor/bin/phpunit", "--testdox"]
diff --git a/docker-compose.yml b/docker-compose.yml
index dab907abe..7ae2b00d8 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -1,4 +1,4 @@
-version: '3'
+version: '3.5'
 
 services:
     tests:
@@ -10,9 +10,14 @@ services:
         volumes:
             - .:/code
         working_dir: /code
+        environment:
+            MONGODB_URI: 'mongodb://mongodb/'
+            MYSQL_HOST: 'mysql'
         depends_on:
-          - mongodb
-          - mysql
+            mongodb:
+                condition: service_healthy
+            mysql:
+                condition: service_started
 
     mysql:
         container_name: mysql
@@ -29,3 +34,8 @@ services:
         image: mongo:latest
         ports:
             - "27017:27017"
+        healthcheck:
+            test: echo 'db.runCommand("ping").ok' | mongosh mongodb:27017 --quiet
+            interval: 10s
+            timeout: 10s
+            retries: 5
diff --git a/tests/TransactionTest.php b/tests/TransactionTest.php
index 06f1c2150..e373e2dae 100644
--- a/tests/TransactionTest.php
+++ b/tests/TransactionTest.php
@@ -384,7 +384,6 @@ public function testTransactionRespectsRepetitionLimit(): void
             $this->fail('Expected exception during transaction');
         } catch (BulkWriteException $e) {
             $this->assertInstanceOf(BulkWriteException::class, $e);
-            $this->assertStringContainsString('WriteConflict', $e->getMessage());
         }
 
         $this->assertSame(2, $timesRun);