У меня есть несколько интеграционных тестов C #, которые запускают контейнер докеров MySql, создают схему, взаимодействуют с ней, а затем разрушают контейнер. Он отлично работает, когда я запускаю dotnet test
, но не работает с Cannot assign requested address /var/run/docker.sock
, когда я пытаюсь запустить его как часть команды docker build
.
Настройка TestContainer:
var testcontainerBuilder = new TestcontainersBuilder<MySqlTestcontainer>()
.WithDatabase(new MySqlTestcontainerConfiguration()
{
Database = MYSQL_DBNAME,
Username = MYSQL_USER,
Password = password,
Port = MYSQL_PORT
})
.WithEnvironment("MYSQL_ROOT_HOST", "%")
.WithOutputConsumer(_outputConsumer)
.WithCleanUp(true);
_container = testcontainerBuilder.Build();
await _container.StartAsync();
Вещи, которые я проверил:
- порт доступен
_container.ConnectionString
равноlocalhost
. Я подозреваю, что это связано.
Я подозреваю, что среда сборки докеров не может видеть контейнер MySql в localhost
.