[docker] 스프링부트 도커 이미지 생성 및 도커 허브 이미지 올리기
2023. 4. 6. 14:53ㆍ스터디/도커
728x90
실습내용
- 스프링부트 프로젝트 생성
- 스프링부트 프로젝트 jar 파일 생성 (터미널로 생성 / IDE(인텔리제이)에서 생성)
- Dockerfile 생성 및 빌드
- 도커 허브로 이미지 푸시
스프링부트 프로젝트 생성
https://start.spring.io/ 접속 후 스프링부트프로젝트 다운로드
IDE(필자는 인텔리제이 사용) 다운로드 받은 프로젝트 오픈
스프링부트 프로젝트 잘 동작하는지 확인
생성한 스프링부트 프로젝트 jar 생성
- 터미널에서 jar 생성
- IDE(인텔리제이)에서 생성
[터미널에서 jar 생성] jar 생성
# 타깃 프로젝트 경로로 이동
# jar 파일 생성
$ ./gradlew clean build
# 상세
MacBook-Pro:~ $ cd /Users//Desktop//study/K8S//springboot_dockerImg/dockerImg
MacBook-Pro:dockerImg $ ./gradlew clean build
Welcome to Gradle 7.6.1!
Here are the highlights of this release:
- Added support for Java 19.
- Introduced `--rerun` flag for individual task rerun.
- Improved dependency block for test suites to be strongly typed.
- Added a pluggable system for Java toolchains provisioning.
For more details see https://docs.gradle.org/7.6.1/release-notes.html
Starting a Gradle Daemon, 1 busy and 1 incompatible and 1 stopped Daemons could not be reused, use --status for details
BUILD SUCCESSFUL in 14s
8 actionable tasks: 8 executed
MacBook-Pro:dockerImg $
[터미너에서 jar 생성] 생성 확인
# 타깃프로젝트/build/libs 이동
# 해당 경로 상세 내역 확인
$ ls -srlth
# 상세
MacBook-Pro:dockerImg $ cd build
MacBook-Pro:build $ cd libs
MacBook-Pro:libs $ ls -arlth
total 34520
drwxr-xr-x 11 staff 352B 4 6 13:53 ..
-rw-r--r-- 1 staff 17M 4 6 14:06 dockerImg-0.0.1-SNAPSHOT.jar
drwxr-xr-x 4 staff 128B 4 6 14:06 .
-rw-r--r-- 1 staff 2.0K 4 6 14:06 dockerImg-0.0.1-SNAPSHOT-plain.jar
[터미너에서 jar 생성] 생성 jar 실행
# jar가 잘 생성됬는지 생성된 jar 실행
$ java -jar [생성된 jar 파일 명]
# 상세
MacBook-Pro:libs $ java -jar dockerImg-0.0.1-SNAPSHOT.jar
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.7.10)
2023-04-06 14:13:08.999 INFO 28054 --- [ main] exam.dockerImg.DockerImgApplication : Starting DockerImgApplication using Java 17 on MacBook-Pro.local with PID 28054 (/Users//Desktop//study/K8S//springboot_dockerImg/dockerImg/build/libs/dockerImg-0.0.1-SNAPSHOT.jar started by in /Users//Desktop//study/K8S//springboot_dockerImg/dockerImg/build/libs)
...
[IDE(인텔리제이)에서 생성]
[IDE(인텔리제이)에서 생성]
[IDE(인텔리제이)에서 생성]
[IDE(인텔리제이)에서 생성]
[IDE(인텔리제이)에서 생성]
[IDE(인텔리제이)에서 생성]
[IDE(인텔리제이)에서 생성] 생성된 jar 확인
Dockerfile 생성 및 빌드
Dockerfile 생성 및 작성 (.jar 경로에 생성필요 -> 동일 경로에서 이미지 빌드도 진행)
MacBook-Pro:libs $ vi Dockerfile
FROM openjdk:11-jdk
ARG JAR_PATH=dockerImg-0.0.1-SNAPSHOT.jar
COPY ${JAR_PATH} app.jar
ENTRYPOINT ["java", "-jar", "/app.jar"]
이미지 빌드
$ docker build -t zincoder/sping-boot-app .
# 상세
MacBook-Pro:libs $ docker build -t zincoder/sping-boot-app .
Sending build context to Docker daemon 17.67MB
Step 1/4 : FROM openjdk:11-jdk
---> 47a932d998b7
Step 2/4 : ARG JAR_PATH=dockerImg-0.0.1-SNAPSHOT.jar
---> Running in 61e6a9785cf5
Removing intermediate container 61e6a9785cf5
---> c013321476a6
Step 3/4 : COPY ${JAR_PATH} app.jar
---> c66c8fea432f
Step 4/4 : ENTRYPOINT ["java", "-jar", "/app.jar"]
---> Running in 41ae774a66a3
Removing intermediate container 41ae774a66a3
---> 6f832c118aff
Successfully built 6f832c118aff
Successfully tagged zincoder/sping-boot-app:latest
MacBook-Pro:libs $
생성된 이미지 확인
MacBook-Pro:libs $ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
zincoder/sping-boot-app latest 6f832c118aff 2 minutes ago 672MB
Docker Hub 생성된 이미지 올리기
https://hub.docker.com/ 도커 허브 사이트 계정 필요(없다면, 회원가입)
터미널에서 도커 허브 계정으로 로그인
MacBook-Pro:libs $ docker login
Authenticating with existing credentials...
Login Succeeded
MacBook-Pro:libs $
도커허브로 이미지 푸시
$ docker push [도커허브계정ID]/[생성한이미지NAME]
MacBook-Pro:libs $ docker push zincoder/sping-boot-app
The push refers to repository [docker.io/zincoder/sping-boot-app]
b604872f5232: Pushed
7b7f3078e1db: Mounted from zincoder/docker-example
826c3ddbb29c: Mounted from zincoder/docker-example
b626401ef603: Mounted from zincoder/docker-example
9b55156abf26: Mounted from zincoder/docker-example
293d5db30c9f: Mounted from zincoder/docker-example
03127cdb479b: Mounted from zincoder/docker-example
9c742cd6c7a5: Mounted from zincoder/docker-example
latest: digest: sha256:02c177d4629ea53580ecb34b5065835b78942dbce9487c151f921a91e5ac4b58 size: 2007
MacBook-Pro:libs $
도커허브 사이트에서 푸시된 이미지 확인
참고1 : https://ksr930.tistory.com/139
참고2 : https://umanking.github.io/2021/07/11/spring-boot-docker-starter/
728x90
'스터디 > 도커' 카테고리의 다른 글
[docker] 스프링부트 도커 이미지 생성 및 도커 허브 이미지 올리기 (0) | 2023.07.25 |
---|