java - 使用 docker-compose 连接 mongodb 容器的 Spring Boot 容器出现 503 错误代码

标签 java mongodb spring-boot docker docker-compose

我正在尝试将 Tomcat 容器中运行的 spring-boot 应用程序(REST 端点)与 mongo 容器连接。我正在使用 docker-compose 来链接两个容器。该应用程序运行得非常好。它突然停止工作了。

以下是我的代码:

Dockerfile:

FROM tomcat:9.0.13
WORKDIR /usr/local/tomcat/webapps
#COPY pom.xml .
#RUN ["mvn", "clean", "install"]
COPY /target/TestProfileManager.war .

docker-compose.yml:

version: '3'
services:
 app:
  container_name: VF-BACKEND
  restart: always
  build: .
  ports:
   - "8083:8080" #VF Webservice
  depends_on:
   - mongo
  links:
   - mongo
 mongo:
  container_name: VF-MONGO
  image: mongo:4.0.2
  ports:
   - "27018:27017"
  volumes:
   - /data/vfdb:/data/db

application.properties

spring.data.mongodb.uri=mongodb://mongo:27018/tsp

如果我从 IDE 作为独立应用程序运行应用程序,端点确实会返回响应。仅在容器通信期间,我收到 503。我找不到任何可以回答我的问题的帖子。

感谢您的帮助。因为,代码之前可以工作,而不是粘贴类。让我知道我是否也应该分享它们。

最佳答案

它应该是mongodb://mongo:27017,在服务到服务通信中,您不需要使用发布端口。

It is important to note the distinction between HOST_PORT and CONTAINER_PORT. the HOST_PORT is 27018 and the container port is 27017 . Networked service-to-service communication use the CONTAINER_PORT

compose-networking

关于java - 使用 docker-compose 连接 mongodb 容器的 Spring Boot 容器出现 503 错误代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58780464/

相关文章:

java - H2语句池

java - 如何将 iText 作为源代码包含到我的项目中?

java - 错误管理

mongodb - 如何从 mongodb compass gui 访问 azure kubernete pod mongodb 实例

带有可分页的 Spring 自定义查询

java - 当用户关闭浏览器时,sessionlistner 不工作

java - MongoDB 嵌入式对象没有 ID(空值)

perl - perl查询ISODate时间

java - spring boot 中嵌入的geoserver 与hibernate/jpa 冲突

java - spring boot多模块项目中bean名称相同的问题