Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

868
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!