Тестовые контейнеры «Не удалось найти действительную среду Docker» в Windows 11 (статус 400) [дубликат]JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Тестовые контейнеры «Не удалось найти действительную среду Docker» в Windows 11 (статус 400) [дубликат]

Сообщение Anonymous »

Я борюсь с проблемой подключения Testcontainers 1.20.4 в Windows 11 (с Docker Desktop 4.56, Java 21 и Spring Boot 3.4.1), где мои интеграционные тесты немедленно завершаются с ошибкой java.lang.IllegalStateException: не удалось найти действительную среду Docker и исключение BadRequestException (статус 400) в журналах, хотя Docker работает отлично отлично.
Вот моя базовая тестовая конфигурация:
Java

Код: Выделить всё

@ContextConfiguration(initializers = AbstractIntegrationTest.Initializer.class)
public class AbstractIntegrationTest {

static class Initializer implements ApplicationContextInitializer {

static PostgreSQLContainer postgresSQL = new PostgreSQLContainer("postgres:18");

private static void startContainers() {
Startables.deepStart(Stream.of(postgresSQL)).join();
}

private static Map createConnectionConfiguration() {
return Map.of(
"spring.datasource.url", postgresSQL.getJdbcUrl(),
"spring.datasource.username", postgresSQL.getUsername(),
"spring.datasource.password", postgresSQL.getPassword()
);
}

@Override
public void initialize(ConfigurableApplicationContext applicationContext) {
startContainers();

ConfigurableEnvironment environment = applicationContext.getEnvironment();

MapPropertySource testcontainers = new MapPropertySource("testcontainers",
(Map) createConnectionConfiguration());

environment.getPropertySources().addFirst(testcontainers);
}
}
}
А вот соответствующая ошибка из журналов, показывающая сбой стратегий:
Открытый текст

Код: Выделить всё

java.lang.IllegalStateException: Could not find a valid Docker environment. Please check configuration. Attempted configurations were:
EnvironmentAndSystemPropertyClientProviderStrategy: failed with exception BadRequestException (Status 400: {"ID":"","Containers":0...})
NpipeSocketClientProviderStrategy: failed with exception BadRequestException (Status 400: ...)
Чтобы это исправить, я уже пытался включить демон TCP в Docker Desktop, установив для DOCKER_HOST значение tcp://localhost:2375 (в переменных среды пользователя и системы), отключив Ryuk (

Код: Выделить всё

TESTCONTAINERS_RYUK_DISABLED=true
), создание файла .testcontainers.properties и даже обновление зависимости до версии 1.20.6, но ошибка Status 400 сохраняется.

Подробнее здесь: https://stackoverflow.com/questions/798 ... -11-status
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»