【发布时间】:2019-11-06 14:33:51
【问题描述】:
我必须使用 Spring Boot 编写 3 个简单的微服务,并将它们 dockerize。自从我刚开始阅读有关 docker 的文章以来,我遇到了几个问题。
为了构建 docker 镜像,我使用了这个 maven 插件:
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.2.0</version>
<configuration>
<imageName>example</imageName>
<baseImage>java</baseImage>
<entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
<imageTags>
<imageTag>latest</imageTag>
</imageTags>
</configuration>
</plugin>
要求
- Docker 容器必须在没有 ROOT 用户权限的情况下运行。
- 构建 maven 脚本应该构建 docker 容器。
- 数据库也需要docker化(所有微服务使用一个数据库)
我的问题
我有测试服务 .jar 并且一切正常(它连接到 dockerized postgres)但是当我运行测试服务 .jar 的 docker 映像(使用 sudo mvn docker:build 构建)时,我无法连接到 postgres。
我发现数据源中的 localhost 可能是问题:
spring.datasource.url=jdbc:postgresql://localhost:5432/dockertest
但我不知道应该用什么代替 localhost。
如果有任何关于如何轻松创建和运行这些 docker 镜像(满足上述要求)的提示,我将不胜感激
【问题讨论】:
标签: spring postgresql maven docker microservices