programing

도커 합성으로 실행되는 스프링 부트 애플리케이션에 액세스할 수 없음

sourcejob 2023. 7. 3. 22:48
반응형

도커 합성으로 실행되는 스프링 부트 애플리케이션에 액세스할 수 없음

스프링부츠와 mariadb로 구성된 간단한 어플이 있습니다.OS는 mac OS이며 IDE로 IntelliJ를 사용합니다.스프링 앱용 도커 파일은 아래와 같습니다.

FROM openjdk:14-jdk-alpine

RUN mkdir /app
WORKDIR /app
VOLUME /app

ENV JAR_TARGET "my_app-0.0.1-SNAPSHOT.jar"
ENTRYPOINT ["sh","-c","java -jar ./build/libs/${JAR_TARGET}"]

그리고 위의 Docker 파일을 참조하는 Docker-compose.yml은 다음과 같습니다.

version: "3.3"
services:
  app:
    build: docker/.
    ports:
      - "8080:8080"
    volumes:
      - .:/app
    depends_on:
      - db
    environment:
      spring.datasource.driverClassName: "org.mariadb.jdbc.Driver"
      spring.datasource.url: "jdbc:mariadb://db:3306/my_app_db"
      spring.datasource.username: "user"
      spring.datasource.password: "password"
      server.port: 8080
      server.address: 127.0.0.1

  db:
    image: mariadb
    ports:
      - "3306:3306"
    environment:
      - MYSQL_DATABASE=my_app_db
      - MYSQL_USER=user
      - MYSQL_PASSWORD=password
      - MYSQL_ROOT_PASSWORD=rootpassword,

명령을 입력하여docker-compose up --build터미널에 도커 부트가 실행되기 시작하고 봄 부트 앱 "my_app"도 로그와 함께 실행되는 것 같습니다.... Started MyAppApplicationKt in 25.161 seconds (JVM running for 27.301).

하지만, 내가 그 봄 앱에 접속하려고 할 때, 전화로.http://localhost:8080/api응답하지 않습니다.예를 들어, 내가 할 때.curl주소를 사용하면 매번 시간이 초과됩니다.IP로 확인했습니다.127.0.0.1마찬가지입니다. 하지만 결과는 똑같습니다. 응답하지 않습니다.

내가 봤을 때docker container psspring app과 mariadb 둘 다 아래와 같이 성공적으로 실행되고 있는 것처럼 보입니다.

CONTAINER ID        IMAGE          COMMAND                  CREATED             STATUS              PORTS                    NAMES
b6abb2d330d9        my_app        "sh -c 'java -jar -D…"   5 minutes ago       Up 5 minutes        0.0.0.0:8080->8080/tcp   my_app_1
fb3b3cad20ad        mariadb       "docker-entrypoint.s…"   17 minutes ago      Up 5 minutes        0.0.0.0:3306->3306/tcp   my_app_db_1

내가 도달했을 때 왜 이 봄 앱이 응답하지 않는지 이해할 수 없습니다.http://localhost:8080/api어떤 도움이라도 주시면 정말 감사하겠습니다.읽어주셔서 감사합니다!

David Maze의 논평은 제 문제를 해결했습니다.도커 컨테이너가 수신 대기 중이 아님127.0.0.1내부 프로세스 주소를 설정했기 때문입니다.127.0.0.1나는 변했어요server.address도커-docker.yml에서 ~까지0.0.0.0그리고 그것은 듣기 시작했습니다.127.0.0.1외부 접근을 위한모든 댓글, 특히 나를 구해준 데이비드에게 정말 감사합니다!

언급URL : https://stackoverflow.com/questions/66133146/cannot-access-to-spring-boot-application-running-with-docker-compose

반응형