Я должен написать 3 простых микросервиса, используя пружинную загрузку, и докеризировать их. С тех пор, как я только начал читать о докерах, я столкнулся с несколькими проблемами.
Для создания образов 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-контейнеры.
- База данных также должна быть докеризована (все микросервисы используют одну базу данных)
Мои проблемы
У меня есть тестовая служба .jar, и все отлично работает (она подключается к dockerized postgres), но когда я запускаю образ docker (созданный с помощью sudo mvn docker: build) тестовой службы .jar, я не могу подключиться к postgres.
Я обнаружил, что локальный хост в источнике данных может быть проблемой:
spring.datasource.url=jdbc:postgresql://localhost:5432/dockertest
Но я не знаю, что мне поставить вместо localhost.
<Ч />
Буду признателен за любые советы о том, как легко создавать и запускать эти образы докеров (отвечающие вышеуказанным требованиям)