Aquí mi DockerFile: -
FROM openjdk:10 ENV AQUILA_HOME /data/config #USER root #VOLUME /tmp ADD a2i-web-1.0.0-SNAPSHOT.jar app.jar #RUN bash -c 'touch /app.jar' ENTRYPOINT ["java","-jar","app.jar"]Mi jar es una aplicación de arranque de primavera que requiere postgres. Instalé portgres localmente y se está ejecutando correctamente en mi localhost. Estoy construyendo DockerFile con éxito por comando
sudo docker build -t djtijare/a2i-web:v1 .Pero mientras lo ejecuta por comando
sudo docker run -p 8080:8080 -t djtijare/a2i-web:v1dando excepción como:
Connection to localhost:5432 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.Estoy ejecutando este comando docker desde el directorio que contiene DockerFile y mi jar. ¿Necesito establecer alguna configuración para ejecutar postgres?
No puede acceder al servicio que en el host usa localhost desde el contenedor, tuvo que usar la dirección IP de su host para acceder.
Esto porque: la ventana acoplable predeterminada usará un puente que configurará una red interna para su contenedor, por lo que cuando el contenedor usa localhost, no significa el host, significa la red del contenedor.
Si insiste, una solución fea es usar --net=host .
Algo como lo siguiente:
sudo docker run --net=host -p 8080:8080 -t djtijare/a2i-web:v1 Luego puede usar localhost para visitar el servicio del host desde el contenedor.