240222 도커-스프링부트 연결
1) 인텔리제이에 간단한 hello world 코드 구현
package kr.swu.networkcampus;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@SpringBootApplication
public class NetworkcampusApplication {
@RequestMapping("/")
String home() {
return "Hello World!";
}
public static void main(String[] args) {
SpringApplication.run(NetworkcampusApplication.class, args);
}
}
2) .jar 파일 생성
Gradle -> tasks -> build -> bootJar를 눌러 실행하면
프로젝트 폴더에 build -> libs -> snapshot.jar 파일이 생성된다.
3) Dokerfile 생성
FROM openjdk:17
ARG JAR_FILE=*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
snapshot.jar 파일이 있는 폴더에 Dockerfile을 생성해 위와 같이 수정한다.
그 후 인텔리제이 터미널에서 build/libs로 경로를 이동한 후 아래 명령어로 도커 이미지를 생성한다.
docker build -t 이미지명 .
docker build -t networkcampus_image .
이미지를 생성하려 했으나 docker가 설치되어있지 않은 것 같아 윈도우에 Docker를 설치를 해 보았다.
powershell에 들어가
wsl --install
로 wsl을 설치한다.
설치가 완료되면 wsl --set-default-version 2로
WSL 버전 기본 값을 2로 변경한다.
그 다음 도커 데스크탑을 설치할 것이다.
Docker Desktop Installer.exe를 다운받아 실행하여 설치를 진행한다.
설치가 완료되고 실행하고 나면 초기 셋업이 시작되는데
초기 셋업은 몇 분 정도 소요된다.
시스템 트레이에서 도커 아이콘을 우클릭하면 About Docker Desktop을 볼 수 있다.
여기서 현재 설치된 Docker Desktop과 관련된 도구들의 버전을 확인할 수 있다.
버전을 확인한 다음 Docker 아이콘을 우클릭해 Settins에 들어가 WSL2 통합 설정을 할 것이다.
General -> Use the WSL 2 based engine을 체크하고 Apply, Restart를 해 준다.
위 옵션도 체크해 준다.
그리고나서 다시 인텔리제이에서 도커 이미지 생성을 시도하면
성공적으로 생성된다.
docker images
명령어로 이미지가 잘 생성되었는지 확인할 수 있다.
위 명령어로 컨테이너를 실행했다.
도커 데스크탑에 들어가면 컨테이너가 생성되었고 서버가 실행되었다는 터미널 출력 내용도 볼 수 있었다.
원래라면 5000번 포트로 접속 시 hello world라고 떠야하는데 접속이 되지 않는다..
로그를 보니 스프링부트 애플리케이션이 정상적으로 실행되었고 포트 8080에서 tomcat이 시작된 것을 확인할 수 있었따.
하지만 5000번 포트로 액세스할 때 404오류가 발생한다.
이는 애플리케이션이 5000번이 아닌 8080으로 실행 중이기 때문에 발생하는 오류이다.
5000번으로 접속이 되지는 않지만 도커와 스프링부트가 연결되어
스프링부트 애플리케이션이 docker 컨테이너 내에세 정상적으로 실행되고 있기 때문에
그냥 8080 포트를 사용하면 될 것 같다.
포트 접속 안 되던 문제 해결!
https://gayeon-l.tistory.com/324
240223 도커-스프링부트 연결 시 포트 접속 안 되던 문제 해결
이전 게시글 https://gayeon-l.tistory.com/323?category=1165056 240222 도커-스프링부트 연결 1) 인텔리제이에 간단한 hello world 코드 구현 package kr.swu.networkcampus; import org.springframework.boot.SpringApplication; import org.sp
gayeon-l.tistory.com