2323import io .netty .handler .codec .http .HttpServerCodec ;
2424import io .netty .util .CharsetUtil ;
2525
26+ import java .io .IOException ;
27+ import java .net .ServerSocket ;
2628import java .util .ArrayList ;
2729import java .util .List ;
2830
@@ -37,16 +39,18 @@ public class NettyDockerCmdExecFactoryConfigTest {
3739
3840 @ Test
3941 public void testNettyDockerCmdExecFactoryConfigWithApiVersion () throws Exception {
42+ int dockerPort = getFreePort ();
43+
4044 NettyDockerCmdExecFactory factory = new NettyDockerCmdExecFactory ();
4145 Builder configBuilder = DefaultDockerClientConfig .createDefaultConfigBuilder ()
42- .withDockerHost ("tcp://localhost:2378" )
46+ .withDockerHost ("tcp://localhost:" + dockerPort )
4347 .withApiVersion ("1.23" );
4448
4549 DockerClient client = DockerClientBuilder .getInstance (configBuilder )
4650 .withDockerCmdExecFactory (factory )
4751 .build ();
4852
49- FakeDockerServer server = new FakeDockerServer (2378 );
53+ FakeDockerServer server = new FakeDockerServer (dockerPort );
5054 server .start ();
5155 try {
5256 client .versionCmd ().exec ();
@@ -62,14 +66,16 @@ public void testNettyDockerCmdExecFactoryConfigWithApiVersion() throws Exception
6266
6367 @ Test
6468 public void testNettyDockerCmdExecFactoryConfigWithoutApiVersion () throws Exception {
69+ int dockerPort = getFreePort ();
70+
6571 NettyDockerCmdExecFactory factory = new NettyDockerCmdExecFactory ();
66- Builder configBuilder = DefaultDockerClientConfig .createDefaultConfigBuilder ().withDockerHost ("tcp://localhost:2378" );
72+ Builder configBuilder = DefaultDockerClientConfig .createDefaultConfigBuilder ().withDockerHost ("tcp://localhost:" + dockerPort );
6773
6874 DockerClient client = DockerClientBuilder .getInstance (configBuilder )
6975 .withDockerCmdExecFactory (factory )
7076 .build ();
7177
72- FakeDockerServer server = new FakeDockerServer (2378 );
78+ FakeDockerServer server = new FakeDockerServer (dockerPort );
7379 server .start ();
7480 try {
7581 client .versionCmd ().exec ();
@@ -83,6 +89,13 @@ public void testNettyDockerCmdExecFactoryConfigWithoutApiVersion() throws Except
8389 }
8490 }
8591
92+ private int getFreePort () throws IOException {
93+ ServerSocket socket = new ServerSocket (0 );
94+ int freePort = socket .getLocalPort ();
95+ socket .close ();
96+ return freePort ;
97+ }
98+
8699 private class FakeDockerServer {
87100 private final int port ;
88101 private final NioEventLoopGroup parent ;
0 commit comments