У меня есть три микросервиса с базами данных MongoDB. Я пытаюсь связать контейнер микросервиса оценки с другими контейнерами, такими как player и game. Потому что для запроса REST API мой метод POST в контроллере очков репозиторием игрока и репозиторием игры проверяет, существуют ли игрок и игра, а затем публикует новый счет для существующего проигрывателя и игры. Я знаю, что Docker использует сеть по умолчанию для моих контейнеров и связывает их вместе, но когда я использую Postman для службы оценки по URL-адресу 192.168.99.100:8080/score POST-запроса, он не работает и показывает мне ошибку 500. в docker shell У меня нет ошибок и он хорошо работает для других сервисов, но когда я использую POST-запрос в Postman после этого В оболочке Docker у меня есть:
player-docker | at org.apache.catalina.core.StandardHostValve.in
voke(StandardHostValve.java:139) [tomcat-embed-core-9.0.33.jar!/:9.0.33]
player-docker | at org.apache.catalina.valves.ErrorReportValve.i
nvoke(ErrorReportValve.java:92) [tomcat-embed-core-9.0.33.jar!/:9.0.33]
player-docker | at org.apache.catalina.core.StandardEngineValve.
invoke(StandardEngineValve.java:74) [tomcat-embed-core-9.0.33.jar!/:9.0.33]
player-docker | at org.apache.catalina.connector.CoyoteAdapter.s
ervice(CoyoteAdapter.java:343) [tomcat-embed-core-9.0.33.jar!/:9.0.33]
player-docker | at org.apache.coyote.http11.Http11Processor.serv
ice(Http11Processor.java:373) [tomcat-embed-core-9.0.33.jar!/:9.0.33]
player-docker | at org.apache.coyote.AbstractProcessorLight.proc
ess(AbstractProcessorLight.java:65) [tomcat-embed-core-9.0.33.jar!/:9.0.33]
player-docker | at org.apache.coyote.AbstractProtocol$Connection
Handler.process(AbstractProtocol.java:868) [tomcat-embed-core-9.0.33.jar!/:9.0.3
3]
player-docker | at org.apache.tomcat.util.net.NioEndpoint$Socket
Processor.doRun(NioEndpoint.java:1594) [tomcat-embed-core-9.0.33.jar!/:9.0.33]
player-docker | at org.apache.tomcat.util.net.SocketProcessorBas
e.run(SocketProcessorBase.java:49) [tomcat-embed-core-9.0.33.jar!/:9.0.33]
player-docker | at java.util.concurrent.ThreadPoolExecutor.runWo
rker(ThreadPoolExecutor.java:1149) [na:1.8.0_252]
player-docker | at java.util.concurrent.ThreadPoolExecutor$Worke
r.run(ThreadPoolExecutor.java:624) [na:1.8.0_252]
player-docker | at org.apache.tomcat.util.threads.TaskThread$Wra
ppingRunnable.run(TaskThread.java:61) [tomcat-embed-core-9.0.33.jar!/:9.0.33]
player-docker | at java.lang.Thread.run(Thread.java:748) [na:1.8
.0_252]
player-docker |
Я пробовал работать в сети docker -compose Но это не работает. Я проверил эти сайты: https://docs.docker.com/compose/networking/ и так далее, любые ссылки на эту и Docker документацию, но я не смог найти никакого решения. для уровня приложения микросервисов у меня нет никаких проблем, и все микросервисы работают хорошо, но на уровне Docker у меня есть проблемы, и служба оценки не работает. Docker -составить файл:
version: "3.4"
services:
player-docker:
build:
context: ./
dockerfile: ./src/main/java/spring/multiple/mongo/project/player/DockerFile
image: player
container_name: "player-docker"
restart: always
ports:
- 8080:8080
depends_on:
- player-container-db
game-docker:
build:
context: ./
dockerfile: ./src/main/java/spring/multiple/mongo/project/game/DockerFile
image: game
container_name: "game-docker"
restart: always
ports:
- 8081:8080
depends_on:
- game-container-db
score-docker:
build:
context: ./
dockerfile: ./src/main/java/spring/multiple/mongo/project/score/Dockerfile
image: score
container_name: "score-docker"
restart: always
ports:
- 8082:8080
depends_on:
- score-container-db
links:
- player-docker:player
- game-docker:game
player-container-db:
image: mongo
container_name: "player-container-db"
volumes:
- mongodata:/data/db
ports:
- 27017:27017
restart: always
environment:
MONGODB_DATABASE: player-db
game-container-db:
image: mongo
container_name: "game-container-db"
volumes:
- mongodata1:/data/db
ports:
- 27018:27017
restart: always
environment:
MONGODB_DATABASE: game-db
score-container-db:
image: mongo
container_name: "score-container-db"
volumes:
- mongodata2:/data/db
ports:
- 27019:27017
restart: always
environment:
MONGODB_DATABASE: score-db
volumes:
mongodata:
mongodata1:
mongodata2:
application.properties:
spring.data.mongodb.host=player-container-db
spring.data.mongodb.database=player-db
spring.data.mongodb.port=27017
spring.data1.mongodb.host=game-container-db
spring.data1.mongodb.database=game-db
spring.data1.mongodb.port=27017
spring.data2.mongodb.host=score-container-db
spring.data2.mongodb.database=score-db
spring.data2.mongodb.port=27017
журналы контейнера оценки:
$ docker container logs fc14
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.2.6.RELEASE)
2020-06-18 19:16:15.056 INFO 1 --- [ main] s.multiple.mongo.project.A
pplication : Starting Application v0.0.1-SNAPSHOT on fc141489d124 with PID 1
(/score.jar started by root in /)
2020-06-18 19:16:15.078 INFO 1 --- [ main] s.multiple.mongo.project.A
pplication : No active profile set, falling back to default profiles: defaul
t
2020-06-18 19:16:19.524 INFO 1 --- [ main] .s.d.r.c.RepositoryConfigu
rationDelegate : Bootstrapping Spring Data MongoDB repositories in DEFAULT mode.
2020-06-18 19:16:20.157 INFO 1 --- [ main] .s.d.r.c.RepositoryConfigu
rationDelegate : Finished Spring Data repository scanning in 318ms. Found 1 Mong
oDB repository interfaces.
2020-06-18 19:16:20.164 INFO 1 --- [ main] .s.d.r.c.RepositoryConfigu
rationDelegate : Bootstrapping Spring Data MongoDB repositories in DEFAULT mode.
2020-06-18 19:16:20.231 INFO 1 --- [ main] .s.d.r.c.RepositoryConfigu
rationDelegate : Finished Spring Data repository scanning in 63ms. Found 1 Mongo
DB repository interfaces.
2020-06-18 19:16:20.235 INFO 1 --- [ main] .s.d.r.c.RepositoryConfigu
rationDelegate : Bootstrapping Spring Data MongoDB repositories in DEFAULT mode.
2020-06-18 19:16:20.305 INFO 1 --- [ main] .s.d.r.c.RepositoryConfigu
rationDelegate : Finished Spring Data repository scanning in 63ms. Found 1 Mongo
DB repository interfaces.
2020-06-18 19:16:20.310 INFO 1 --- [ main] .s.d.r.c.RepositoryConfigu
rationDelegate : Bootstrapping Spring Data MongoDB repositories in DEFAULT mode.
2020-06-18 19:16:20.380 INFO 1 --- [ main] .s.d.r.c.RepositoryConfigu
rationDelegate : Finished Spring Data repository scanning in 58ms. Found 1 Mongo
DB repository interfaces.
2020-06-18 19:16:27.304 INFO 1 --- [ main] o.s.b.w.embedded.tomcat.To
mcatWebServer : Tomcat initialized with port(s): 8080 (http)
2020-06-18 19:16:27.433 INFO 1 --- [ main] o.apache.catalina.core.Sta
ndardService : Starting service [Tomcat]
2020-06-18 19:16:27.437 INFO 1 --- [ main] org.apache.catalina.core.S
tandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.33]
2020-06-18 19:16:28.069 INFO 1 --- [ main] o.a.c.c.C.[Tomcat].[localh
ost].[/] : Initializing Spring embedded WebApplicationContext
2020-06-18 19:16:28.070 INFO 1 --- [ main] o.s.web.context.ContextLoa
der : Root WebApplicationContext: initialization completed in 12505 m
s
2020-06-18 19:16:32.302 INFO 1 --- [ main] org.mongodb.driver.cluster
: Cluster created with settings {hosts=[game-container-db:27017],
mode=SINGLE, requiredClusterType=UNKNOWN, serverSelectionTimeout='30000 ms', ma
xWaitQueueSize=500}
2020-06-18 19:16:33.062 INFO 1 --- [tainer-db:27017] org.mongodb.driver.connect
ion : Opened connection [connectionId{localValue:1, serverValue:1}] t
o game-container-db:27017
2020-06-18 19:16:33.126 INFO 1 --- [tainer-db:27017] org.mongodb.driver.cluster
: Monitor thread successfully connected to server with descriptio
n ServerDescription{address=game-container-db:27017, type=STANDALONE, state=CONN
ECTED, ok=true, version=ServerVersion{versionList=[4, 2, 8]}, minWireVersion=0,
maxWireVersion=8, maxDocumentSize=16777216, logicalSessionTimeoutMinutes=30, rou
ndTripTimeNanos=50027397}
2020-06-18 19:16:35.623 INFO 1 --- [ main] org.mongodb.driver.cluster
: Cluster created with settings {hosts=[score-container-db:27017]
, mode=SINGLE, requiredClusterType=UNKNOWN, serverSelectionTimeout='30000 ms', m
axWaitQueueSize=500}
2020-06-18 19:16:35.679 INFO 1 --- [tainer-db:27017] org.mongodb.driver.connect
ion : Opened connection [connectionId{localValue:2, serverValue:1}] t
o score-container-db:27017
2020-06-18 19:16:35.696 INFO 1 --- [tainer-db:27017] org.mongodb.driver.cluster
: Monitor thread successfully connected to server with descriptio
n ServerDescription{address=score-container-db:27017, type=STANDALONE, state=CON
NECTED, ok=true, version=ServerVersion{versionList=[4, 2, 8]}, minWireVersion=0,
maxWireVersion=8, maxDocumentSize=16777216, logicalSessionTimeoutMinutes=30, ro
undTripTimeNanos=3330296}
2020-06-18 19:16:36.093 INFO 1 --- [ main] org.mongodb.driver.cluster
: Cluster created with settings {hosts=[player-container-db:27017
], mode=SINGLE, requiredClusterType=UNKNOWN, serverSelectionTimeout='30000 ms',
maxWaitQueueSize=500}
2020-06-18 19:16:36.162 INFO 1 --- [tainer-db:27017] org.mongodb.driver.connect
ion : Opened connection [connectionId{localValue:3, serverValue:1}] t
o player-container-db:27017
2020-06-18 19:16:36.178 INFO 1 --- [tainer-db:27017] org.mongodb.driver.cluster
: Monitor thread successfully connected to server with descriptio
n ServerDescription{address=player-container-db:27017, type=STANDALONE, state=CO
NNECTED, ok=true, version=ServerVersion{versionList=[4, 2, 8]}, minWireVersion=0
, maxWireVersion=8, maxDocumentSize=16777216, logicalSessionTimeoutMinutes=30, r
oundTripTimeNanos=2874952}
2020-06-18 19:16:36.411 INFO 1 --- [ main] org.mongodb.driver.cluster
: Cluster created with settings {hosts=[score-container-db:27017]
, mode=SINGLE, requiredClusterType=UNKNOWN, serverSelectionTimeout='30000 ms', m
axWaitQueueSize=500}
2020-06-18 19:16:36.448 INFO 1 --- [tainer-db:27017] org.mongodb.driver.connect
ion : Opened connection [connectionId{localValue:4, serverValue:2}] t
o score-container-db:27017
2020-06-18 19:16:36.468 INFO 1 --- [tainer-db:27017] org.mongodb.driver.cluster
: Monitor thread successfully connected to server with descriptio
n ServerDescription{address=score-container-db:27017, type=STANDALONE, state=CON
NECTED, ok=true, version=ServerVersion{versionList=[4, 2, 8]}, minWireVersion=0,
maxWireVersion=8, maxDocumentSize=16777216, logicalSessionTimeoutMinutes=30, ro
undTripTimeNanos=10136682}
2020-06-18 19:16:39.913 INFO 1 --- [ main] o.s.s.concurrent.ThreadPoo
lTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
2020-06-18 19:16:41.603 INFO 1 --- [ main] o.s.b.w.embedded.tomcat.To
mcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
2020-06-18 19:16:41.624 INFO 1 --- [ main] s.multiple.mongo.project.A
pplication : Started Application in 29.929 seconds (JVM running for 39.828)
внутри контейнера оценки, когда я это сделаю ping к контейнеру игрока и контейнеру игры, все в порядке. Не знаю, в чем моя ошибка.