Docker

[Docker] 도커를 SpringBoot 구축하고 실행하기

yerimkoko 2023. 7. 10. 13:35
728x90
@RestController
public class MainController {

    @GetMapping("/ping")
    public String check() {
        return "pong";
    }
}

MainController 에 api를 만들어 줍니다.

또한, port는 7000번으로 지정해주었습니다.

./gradlew clean build

명령어를 통해 build 를 해 줍니다.

여기서, ./gradlew build를 해주어도 무방합니다.

이때 프로젝트에 Dockerfile 을 다음 내용과 같이 생성해줍니다.

FROM openjdk:17
ARG JAR_FILE=build/libs/threedollar-application.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java", "-jar", "/app.jar"]

FROM 부분의 openjdk 뒤에 부분은 자바의 버전을,

ARG는 컨테이너 에서 사용할 변수 지정을 합니다.

COPY 부분은 ARG에서 선언한 JAR_FILE 변수를 컨테이너의 app.jar로 복사를,

ENTRYPOINT 는 컨테이너가 실행 됐을때 스크립트 실행을 의미합니다.

이후에 터미널을 통해 Dockerfile 있는 곳으로 이동합니다.

docker build -t [3dollar-community] .

여기서 -t 옵션을 통해 3dollar-community 로 이름을 가진 이미지를 생성해줍니다.

docker run -d -p 7070:7000 3dollar-community

7070(외부에서 접속):7000(내부 포트)

생성된 이미지를 7070번 포트를 통해 접속할 수 있도록 컨테이너를 실행해줍니다.

 

 

Docker Desktop을 통해 컨테이너가 실행하는 것을 확인하였습니다.

 

7070포트를 통해 /ping api 를 호출 g pong 으로 잘 응답하는 것을 확인할 수 있습니다.