Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

865
Vistas
El contenedor Spring Docker no puede acceder al contenedor Postgres Docker

El Dockerfile de mi aplicación spring-boot:

 FROM openjdk:8-jdk-alpine VOLUME /tmp COPY target/media-0.0.1-SNAPSHOT.jar app.jar ENTRYPOINT ["java", "-jar", "/app.jar"]

application.yml

 spring: datasource: url: jdbc:postgresql://localhost:5432/media username: postgres password: postgres hikari: connectionTimeout: 30000

y aquí está el docker-compose.yml :

 version: '3' services: db: image: postgres ports: - "5432:5432" environment: POSTGRES_DB: media POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres app: build: context: ./ dockerfile: Dockerfile depends_on: - db ports: - "8080:8080"

Ejecutar docker-compose up --build da como resultado:

aplicación_1 | org.postgresql.util.PSQLException: Conexión a 0.0.0.0:5432 rechazada. Verifique que el nombre de host y el puerto sean correctos y que el administrador de correo acepte conexiones TCP/IP. aplicación_1

Supongo que la aplicación Spring intenta conectarse a Postgres antes de que Postgres esté listo, pero obtengo el siguiente registro:

db_1 | 2019-05-18 19:05:53.692 UTC [1] REGISTRO: el sistema de base de datos está listo para aceptar conexiones

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

El objetivo principal de Docker Compose es hacer girar un conjunto de contenedores Docker, que luego funcionarán como entidades independientes. De forma predeterminada, todos los contenedores tendrán una conexión de red virtual con todos los demás, aunque puede cambiar eso si lo desea; obtendrá esa función, ya que no ha especificado una configuración personalizada.

Cada uno de los contenedores obtendrá una dirección IP virtual dentro de la red virtual configurada por Docker. Dado que estos son dinámicos, Docker Compose te lo pone más fácil al crear entradas DNS internas correspondientes a cada servicio. Por lo tanto, tendrá dos contenedores, que se pueden abordar como app y db respectivamente, ya sea de ellos mismos o del otro. Si tiene ping instalado, también puede hacer ping a estos nombres, ya sea a través docker-compose exec o a través de un shell creado manualmente.

Por lo tanto, como descubrimos en los comentarios, puede conectarse desde la app a jdbc:postgresql://db:5432/media , y debería funcionar.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda