스프링부트 프로젝트 도커허브 이미지 빌드(feat. 인텔리제이)
* 스프링부트 프로젝트 생성 참고 : 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 호환성 문제때문이다.
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