【发布时间】:2018-05-27 15:23:05
【问题描述】:
我正在尝试使用testcontainers java 库来测试使用 docker-compose 定义的 Web 应用程序。
我可以成功地从 DockerComposeContainer 公开服务并使用 RestTemplate 查询它们。
String url = format(
"http://%s:%s",
environment.getServiceHost("web_1", 8080),
environment.getServicePort("web_1", 8080)
);
ResponseEntity<String> response = template.getForEntity(url, String.class);
但是,当我尝试通过 webdriver 访问该服务时,我收到了 Connection Refused 错误 - “localhost denied to connect”。
@Rule
public BrowserWebDriverContainer chrome = new BrowserWebDriverContainer()
.withDesiredCapabilities(DesiredCapabilities.chrome());
RemoteWebDriver driver = chrome.getWebDriver();
driver.get(url);
我认为 webdriver 'localhost' 仍然是其容器内的 localhost,而不是暴露服务的主机。
如何让 webdriver 访问宿主网络以访问暴露的服务?
【问题讨论】:
标签: java spring integration-testing testcontainers