aplicación de arranque Conectar a acoplable Componer mongodb Vía Primavera

Farhad:

Hola soy nuevo en acoplable y estibador-Componer Mi aplicación web no puede conectar al contenedor MongoDB Aquí están mis propiedades de aplicación

spring.data.mongodb.uri=mongodb://mongo:27017
spring.data.mongodb.host=mongo
spring.data.mongodb.port=27017
spring.data.mongodb.database=my-db-name

y esta es mi ventana acoplable de composición del

version: "3"
services:
  nginx:
    image: "nginx:alpine"
    networks:
      - shared-net
    volumes:
      - ./code:/code
      - ./site.conf:/etc/nginx/conf.d/default.conf
    ports:
      - "80:80"
      - "443:443"
    links:
      - php
    depends_on:
      - php
  java:
    build:
      context: ./
    ports:
      - "8080:8080"
    links:
      - mongo
    depends_on:
      - mongo
      - nginx
    networks:
      - shared-net
  mongo:
    image: 'mongo'
    ports:
      - 27017:27017
    hostname: mongo
    volumes:
      - ./data/db:/data/db
    networks:
      - shared-net
  php:
    image: php:7-fpm
    networks:
      - shared-net
    volumes:
      - ./code:/code
networks:
  shared-net:
    driver: bridge

y este es el Dockerfile se escribió para la ejecución de Java

FROM openjdk:11
COPY ./code/lemon-backend/target/lemon-0.0.1-SNAPSHOT.jar /usr/src/
WORKDIR /usr/src/
EXPOSE 8080
CMD ["java", "-jar", "lemon-0.0.1-SNAPSHOT.jar"]

ni siquiera puedo generar la aplicación utilizando esta opción me sale esta excepción

org.mongodb.driver.cluster: Excepción en el hilo del monitor mientras se conecta a mongo servidor: 27 017

por favor me ayude con esto y si es posible trata de dar soluciones con cargador de muelle de composición del

Farhad:

Finalmente, he encontrado la solución

1. sólo una línea de configuración para la primavera (application.properties)

Tenía una advertencia de que esta propiedad no puede ser resuelto, pero con suerte, funcionó :)

También es necesario especificar el nombre de la base

spring.data.mongodb.database
dockerspring.data.mongodb.uri= mongodb://mongo:27017/<name_of_your_db>

la parte mongodb no se puede cambiar, pero Mongo antes de que el número de puerto es en realidad el nombre de la bruja de contenedores es necesario especificar con certeza

El nombre que elija es completamente en sí mismo

2. En su Dockerfile Añada esta opción para ejecutar Java

ENTRYPOINT [“java”,”-Dspring.data.mongodb.uri=mongodb://mongo:27017/name_of_your_db”, “-Djava.security.egd=file:/dev/./urandom”,”-jar”,”/<name_of_your_app>.jar”]

3. No se olvide de Enlace de Java contenedor y Mongo containter + dándoles los nombres

aquí esta es mi última ventana acoplable-compose.yml, espero que le ayuda

version: "3"
services:
  nginx:
    image: "nginx:alpine"
    networks:
      - shared-net
    volumes:
      - ./code:/code
      - ./site.conf:/etc/nginx/conf.d/default.conf
    ports:
      - "80:80"
      - "443:443"
    container_name: nginx
    links:
      - php
      - java
    depends_on:
      - php
      - java
  java:
    build:
      context: ./
    ports:
      - "8080:8080"
    container_name: java
    links:
      - mongo
    depends_on:
      - mongo
    networks:
      - shared-net
  mongo:
    image: 'mongo'
    ports:
      - 27017:27017
    container_name: mongo
    volumes:
      - /home/sinoed/data/db:/data/db
    networks:
      - shared-net
  php:
    image: php:7-fpm
    networks:
      - shared-net
    volumes:
      - ./code:/code
    container_name: php
networks:
  shared-net:
    driver: bridge

Compare esta versión y la que se especifica en la pregunta con cuidado

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=364168&siteId=1
Recomendado
Clasificación