2017-10-03 17 views
0

ホスト名で別のコンテナを参照したいのでネットワークが必要です。Testcontainerが私のためにドッカーネットワークを作成できますか?

私も--linkを使用することもできますが、間もなく廃止される可能性があります。それで、Testcontainersが私のためのドッカーネットワークを作り出せるかどうか疑問に思うのです。

docker run -it --rm --net=bridge2 --name alpine1 alpine 
docker run -it --rm --net=bridge2 --name alpine2 alpine 

alpine1コンテナからnslookup alpine2を解決:私はちょうどdocker network create bridge2を実行しますし、私はこのようなコンテナを開始することができ、コマンドラインで

デフォルトの--net=bridgeネットワークを使用するか、または--netオプション(実際は同じ)をスキップすると、名前で参照されません。

+0

はあなたのためのオプションを-構成ドッカですか? –

+0

@ YannicHamannいいえ、Testcontaiersのように見えるため、私は公開されたポートでのみ動作し、任意のコマンドを実行することはできません。作成には多くの制限があります。 – Derp

答えて

1

はい、TestContainersでネットワークを作成できます。我々はすぐにそれを文書化するつもりだが、それは同じくらい簡単です:

まず、ネットワークの作成:それに参加するためにあなたのコンテナを設定し、その後

@Rule 
public Network network = Network.newNetwork(); 

を:

@Rule 
public NginxContainer nginx = new NginxContainer<>() 
     .withNetwork(network) // <--- Here 
     .withNetworkAliases("nginx") // <--- "hostname" of this container 
     .withCustomContent(contentFolder.toString()); 

@Rule 
public BrowserWebDriverContainer chrome = new BrowserWebDriverContainer<>() 
     .withNetwork(network) // <--- And here 
     .withDesiredCapabilities(DesiredCapabilities.chrome()); 

今nginxのコンテナはChromeに「http://nginx/」と表示されます。我々のテストで

同じ例:
https://github.com/testcontainers/testcontainers-java/blob/540f5672df90aa5233dde1dde7e8a9bc021c6e88/modules/selenium/src/test/java/org/testcontainers/junit/LinkedContainerTest.java#L27

+0

クール、これはまさに私がこの質問を投稿したTestcontainersから期待されたものです:) – Derp

関連する問題