我正在使用docker-maven-plugin
插件fabric8
来设置两个容器:
- Postgres
- tomcat8
两个容器都可以单独设置。我可以从外部(从主机)连接到他们两个。我这样做如下:
<plugin>
<groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.22.1</version>
<configuration>
<autoCreateCustomNetworks>true</autoCreateCustomNetworks>
<images>
<image>
<alias>database</alias>
<name>postgres:9</name>
<run>
<network>
<name>network</name>
<alias>database</alias>
</network>
<ports>
<port>db-port:5432</port>
</ports>
<wait>
<log>ready to accept connections</log>
</wait>
</run>
</image>
<image>
<alias>container</alias>
<name>inovatrend/tomcat8-java8</name>
<run>
<network>
<name>network</name>
<alias>tomcat</alias>
</network>
<dependsOn>
<container>database</container>
</dependsOn>
<ports>
<port>tomcat-port:8080</port>
</ports>
<wait>
<http>
<url>http://localhost:${tomcat-port}</url>
</http>
</wait>
</run>
</image>
</images>
</configuration>
</plugin>
我无法配置允许 tomcat8 容器连接到 Postgres 容器。
如您所见,我在每个图像中创建了一个自定义网络,并且 tomcat 容器依赖于数据库容器。
<network>
<name>network</name>
<alias>database</alias>
</network>
和
<network>
<name>network</name>
<alias>tomcat</alias>
</network>
<dependsOn>
<container>database</container>
</dependsOn>
但我无法localhost:5432
在 tomcat 容器中建立 JDBC 连接。
这个配置正确吗?tomcat8应该使用哪个IP: PORT
来连接数据库?理想情况下,这IP: PORT
不应该是固定的,因此多个 maven 实例可以同时执行而不会干扰(对同时构建很有用,例如 Jenkins)。