{"record":{"id":"eeab51f3b27c801a","repo":"testcontainers/testcontainers-java","slug":"is-currently-not-supported","errorCode":null,"errorMessage":"{} is currently not supported","messagePattern":"(.+?) is currently not supported","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"core/src/main/java/org/testcontainers/dockerclient/DockerClientProviderStrategy.java","lineNumber":302,"sourceCode":"            if (!strategy.test()) {\n                log.debug(\"strategy {} did not pass the test\", strategy.getClass().getSimpleName());\n                return false;\n            }\n\n            strategy.info = strategy.getDockerClient().infoCmd().exec();\n            log.info(\"Found Docker environment with {}\", strategy.getDescription());\n            log.debug(\n                \"Transport type: '{}', Docker host: '{}'\",\n                TestcontainersConfiguration.getInstance().getTransportType(),\n                strategy.getTransportConfig().getDockerHost()\n            );\n\n            log.debug(\"Checking Docker OS type for {}\", strategy.getDescription());\n            String osType = strategy.getInfo().getOsType();\n            if (StringUtils.isBlank(osType)) {\n                log.warn(\"Could not determine Docker OS type\");\n            } else if (!osType.equals(\"linux\")) {\n                log.warn(\"{} is currently not supported\", osType);\n                throw new InvalidConfigurationException(osType + \" containers are currently not supported\");\n            }\n\n            if (strategy.isPersistable()) {\n                TestcontainersConfiguration\n                    .getInstance()\n                    .updateUserConfig(\"docker.client.strategy\", strategy.getClass().getName());\n            }\n\n            return true;\n        } catch (Exception | ExceptionInInitializerError | NoClassDefFoundError e) {\n            @Nullable\n            String throwableMessage = e.getMessage();\n            @SuppressWarnings(\"ThrowableResultOfMethodCallIgnored\")\n            Throwable rootCause = Throwables.getRootCause(e);\n            @Nullable\n            String rootCauseMessage = rootCause.getMessage();\n","sourceCodeStart":284,"sourceCodeEnd":320,"githubUrl":"https://github.com/testcontainers/testcontainers-java/blob/8e549514e3f01c57d70546fbb8599d138f3903e5/core/src/main/java/org/testcontainers/dockerclient/DockerClientProviderStrategy.java#L284-L320","documentation":"Testcontainers only supports Linux containers. When the Docker daemon reports an OS type other than 'linux' (effectively Windows containers), the strategy fails with InvalidConfigurationException ('X containers are currently not supported') and Testcontainers falls through to other strategies or aborts environment discovery.","triggerScenarios":"tryOutStrategy calls strategy.getInfo().getOsType() and the connected daemon's osType is 'windows' (any non-linux, non-blank value), so InvalidConfigurationException is thrown during getFirstValidStrategy.","commonSituations":"Developers on Windows with Docker Desktop switched to Windows containers mode; CI agents running Windows container daemons; accidentally pointing DOCKER_HOST at a Windows-containers daemon.","solutions":["Switch Docker Desktop back to Linux containers (right-click tray icon → 'Switch to Linux containers...', or `& 'C:\\Program Files\\Docker\\Docker\\DockerCli.exe' -SwitchLinuxEngine`).","Point DOCKER_HOST at a daemon running Linux containers (e.g. a remote Linux host over tcp, or WSL2 backend).","If you must test Windows containers, do it outside Testcontainers — it does not support Windows containers.","On CI, ensure the runner's Docker daemon is configured for Linux containers (Linux runners, or Windows runners in Linux mode)."],"exampleFix":"// before (cmd on Windows host, in Windows containers mode)\n// after\n& 'C:\\Program Files\\Docker\\Docker\\DockerCli.exe' -SwitchLinuxEngine\n# or target a Linux daemon:\nset DOCKER_HOST=tcp://linux-build-host:2375","handlingStrategy":"validation","validationCode":"// Fail fast with a clear message if the daemon runs Windows containers\nString osType = java.util.Optional.ofNullable(System.getenv(\"DOCKER_HOST\")).orElse(\"default\");\nProcess p = new ProcessBuilder(\"docker\", \"info\", \"--format\", \"{{.OSType}}\").start();\nString result = new String(p.getInputStream().readAllBytes()).trim();\nif (\"windows\".equalsIgnoreCase(result)) {\n    throw new IllegalStateException(\"Docker daemon is in Windows containers mode; Testcontainers needs Linux containers. Switch to Linux containers.\");\n}","typeGuard":null,"tryCatchPattern":"try {\n    new GenericContainer(DockerImageName.parse(\"alpine:3\")).start();\n} catch (InvalidConfigurationException e) {\n    throw new IllegalStateException(\"Switch Docker Desktop to Linux containers (or point DOCKER_HOST at a Linux daemon): \" + e.getMessage(), e);\n}","preventionTips":["On Windows/macOS keep Docker Desktop in Linux containers mode (default).","In CI on Windows runners, explicitly switch to the Linux engine before the build.","Add a build-script check of `docker info --format {{.OSType}}` == linux."],"tags":["docker","windows-containers","unsupported-platform","testcontainers"],"backgroundTag":"unsupported-platform","analyzedSha":"8e549514e3f01c57d70546fbb8599d138f3903e5","analyzedAt":"2026-09-12T14:56:41.227Z","contentChangedAt":"2026-09-12T14:56:41.227Z","schemaVersion":2},"datasetVersion":"2026-09-16T04:17:20.429Z"}