I have a Eureka Discovery Service build with Spring Boot 3.
I created Dockerfile file with following content:
FROM mcr.microsoft.com/openjdk/jdk:17-ubuntu
RUN addgroup --system spring
RUN adduser --system spring
USER spring:spring
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
EXPOSE 8880:8880
When I do docker ps
I could see the app:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e80974c83e6c 7bb35c99e929 "java -jar /app.jar" 51 seconds ago Up 50 seconds 8880/tcp magical_lichterman
Docker inspect returns me following IP address of container
docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' e80974c83e6c
172.17.0.2
But when I try to reach 172.17.0.2:8880 then I got ERR_CONNECTION_TIMED_OUT. Any Ideas what could be wrong?
>Solution :
It depends where is the request comes from.
- If you try from a different container, make sure they are on the same network.
docker network create my-network
docker run --name spring-app -d --network my-network <your_image> # your spring container
docker run -d --network my-network <your_other_image> # should make a request to "http://spring-app:8080"
- If you try to access from the host you should open the container port
docker run -d -p 8080:8080 <your_image>
Then try running curl http://localhost:8080
.