This PR fixes several issues with newer Docker/Compose versions:
Compose version 2.24 and later have changed the way network configurations are merged when using multiple compose files (like in integration tests). Instead of overriding the network config it is now merged. By specifying !override in the YAML file explicitly we get the expected behaviour on newer version which is backwards compatible with older versions as well.
Docker versions between 25.0.5 and 26.1.2 have issues with internal DNS resolving using the mock resolver. There is no practical workaround for this so these versions should be avoided, this is documented and will be checked by the test runner before starting tests.
Chromium does not support IPv6 resolving (at all, not even local!) if it fails an global IPv6 connectivity check (which requires internet, in an isolated environment), causing a few tests (ipv6.internet.nl domains and the connection test) to fail. Switching to Firefox as browser used for testing. There might be a way to override this behaviour in Chrome using the IPv6ReachabilityOverrideEnabled policy, but so far I have not been able to make it work inside the playwright Docker image using available documentation. Firefox does seem a little bit slower on executing the tests so we might want to switch back to Chrome if we can.
Docker Compose 2.24 broke the way .env files were handled (error: no configuration file provided: not found). This has been fixed in 2.27.0 but seems to be broken again in 2.27.1 due to https://github.com/docker/compose/issues/11880. Currently Compose in CI will be pinned to 2.27.0.
Besides the fixes the following changes are included:
Compatible versions have been documented.
Compatible Docker versions are checked before running tests to warn the user and direct them to the proper documentation.
tests are added to verify if the integration test environment is properly isolated.
the mock resolver used in integration testing is now accessible over IPv6.
both old and new versions of Docker/Compose are tested by using a matrix to ensure both versions keep working.
This PR fixes several issues with newer Docker/Compose versions:
!override
in the YAML file explicitly we get the expected behaviour on newer version which is backwards compatible with older versions as well.ipv6.internet.nl
domains and the connection test) to fail. Switching to Firefox as browser used for testing. There might be a way to override this behaviour in Chrome using theIPv6ReachabilityOverrideEnabled
policy, but so far I have not been able to make it work inside the playwright Docker image using available documentation. Firefox does seem a little bit slower on executing the tests so we might want to switch back to Chrome if we can.no configuration file provided: not found
). This has been fixed in 2.27.0 but seems to be broken again in 2.27.1 due to https://github.com/docker/compose/issues/11880. Currently Compose in CI will be pinned to 2.27.0.Besides the fixes the following changes are included: