testcontainers Javaライブラリを使用して、docker-composeで定義されたWebアプリケーションをテストしようとしています。WebDriverコンテナがDockerComposeContainerサービスにアクセスできない
DockerComposeContainerからサービスが正常に公開され、RestTemplateを使用してそれらをクエリできます。私はwebdriverを介してサービスにアクセスしようとすると、
String url = format(
"http://%s:%s",
environment.getServiceHost("web_1", 8080),
environment.getServicePort("web_1", 8080)
);
ResponseEntity<String> response = template.getForEntity(url, String.class);
はしかし、私は、接続拒否エラーを取得する - 「localhostの接続を拒否しました」。
@Rule
public BrowserWebDriverContainer chrome = new BrowserWebDriverContainer()
.withDesiredCapabilities(DesiredCapabilities.chrome());
RemoteWebDriver driver = chrome.getWebDriver();
driver.get(url);
webdriver 'localhost'は、サービスが公開されているホストではなく、コンテナ内にlocalhostです。
公開されているサービスにアクセスするためにwebdriverがホストネットワークにアクセスするにはどうすればよいですか?
解決策1 DockerホストIPを使用しました。 environment.ambassadorContainersをJavaで見つけることができませんでした。 – Rod
'environment'はあなたの作成コンテナの名前ですが、Javaでは' getAmbassadorContainers() 'も呼び出す必要があります。 –