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
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