본문 바로가기
도커_쿠버네티스

스프링부트 프로젝트 도커허브 이미지 빌드(feat. 인텔리제이)

by 어쩌다개발 2023. 3. 26.
반응형

* 스프링부트 프로젝트 생성 참고 : https://devmango.tistory.com/96

 

1. 스프링 부트 프로젝트 생성 - IntelliJ 기준

1. IDE를 이용하여 직접 생성하기 1) 인텔리제이에서 [새 프로젝트] 버튼을 클릭한다. 2) Spring Initializr 를 선택한 후 위와 같이 입력 및 선택한다. (자바 11 기준) * 참고 : 일반적으로 그룹은 회사 사

devmango.tistory.com

* 스프링부트 프로젝트 웹 페이지 띄우기 참고: https://devmango.tistory.com/97

 

2. Spring Boot localhost:8080 웹 페이지 띄우기

1) preferences에서 들어간다. 2. gradle을 검색해서 선택 > 빌드 및 실행, 테스트 실행을 IntelliJ IDEA로 변경 - 위에 노란줄 설명을 보면 알겠지만 자바 프로젝트에서는 IDE를 사용하여 빌드하고 실행하는

devmango.tistory.com


1. jar 파일을 생성해준다. 참고 : https://devmango.tistory.com/101

 

3. SpringBoot(스프링부트) 빌드 후 실행

참고: 인텔리제이, 맥북 기준으로 작성된 글. 1. 인텔리제이에서 스프링부트가 실행되고 있다면 정지시켜준다. 2. 브라우저에서 localhost:8080 또는 화면을 띄울 로컬 url을 입력한 후 '사이트에 연결

devmango.tistory.com

2. 스프링 프로젝트(프로젝트 최상위에서 만들어주면 됨)에 Dockerfile을 만들어 준 다음 아래 내용을 넣어준다.

# Docker를 올릴 때 jdk11 버전을 이용
FROM openjdk:11

EXPOSE ${SPRINGBOOT_PORT}

ADD ./build/libs/*.jar app.jar

# 도커파일이 도커엔진을 통해서 컨테이너로 올라갈 때,
# 도커 컨테이너의 시스템 진입점이 어디인지를 알려준다.
ENTRYPOINT ["java", "-jar", "-Duser.timezone=Asia/Seoul", "/app.jar"]

3. https://www.docker.com/products/docker-desktop/ 에서 도커 데스트탑을 설치해준다.
4. https://hub.docker.com/ 에서 회원가입을 한 후, repository를 만들어준다.

5. 인텔리제이에서 InterlliJ IDEA -> Preferences... 선택 > 아래와 같이 선택해준다.
(나 같은 경우 connnect 어쩌고 저쩌고 에러가 떠있는데, 캡쳐 당시 도커 데스크탑을 꺼둔 상태여서 그렇고 도커 데스크탑이 켜져있는 상태면 상관없다.) 

6. 하단 서비스 탭에 들어가면 Docker 가 보이는데 연결을 해준다.

7. 터미널에서 현재 작업 중인 폴더명으로 이동한 뒤 아래 명령어를 입력해준다.

/////M1 사용자 아닌 경우
docker build --tag [namespace]/[repository명]:[만들tag명] .
/////M1 사용자는 아래 명령어
docker build --platform amd64 --build-arg DEPENDENCY=build/dependency -t [namespace]/[repository명]:[만들tag명] .
//2024.03.02 추가 위 명령어가 안 되는 경우 아래 명령어 입력(m1기준)
docker build -t 이미지_이름:태그 --platform linux/amd64 .

docker push [namespace]/[repository명]:[만든tag명]

참고) M1 사용자는 위에 적힌 내용대로 안 써주면 마지막으로 image 받을걸 띄어보려고 할 때, waring: the requested image's platform (linux/arm64/v8) ... 어쩌고 에러가 난다. M1 호환성 문제때문이다.

막판에 다 끝났다고 생각했는데 이 에러 만나면 진짜 빡친다. 그러므로 미리 docker 빌드할때 명령어를 잘 쓰자!

 
7-1. 참고 - push는 ui로 할 수 있는거 같은데, 인텔리제이 버그인건지 네임스페이스칸에 무한로딩 걸리면서 작동되지 않는다. 그래서 터미널에서 직접 명령어로 해줬다.

8. dockerhub에 image가 생성되어 push 된걸 확인할 수 있다.

9.  pull 받을 서버에서 docker에 login 하여 아이디 패스워드를 입력한다. 그리고 아래 명령어를 순차적으로 입력한다.

docker login
docker images
docker pull [dockerhub계정]/[repository명]:[tag명]
docker images

위 이미지는 davmango1128/stpring:test 인데 아래는 spring_test:test 인 이유는 m1 오류때문에 다시 테스트하고 캡쳐찍어서 그런거고 형식은 [계정]/reposiroty명:tag명 으로 입력하면 된다.

참고: https://sas-study.tistory.com/425


 

조상님LOTTO - Google Play 앱

무료로 로또 당첨 확률을 높일 수 있습니다.

play.google.com

 

 

뽀모도로 타이머(Pomodoro Timer) - Google Play 앱

뽀모도로(Pomodoro)공부법은 단시간 집중력 향상을 위한 자기주도 학습법입니다.

play.google.com

 

반응형

댓글