본문 바로가기
개발/개발이야기

Springboot JPA kotlin 5. Docker 빌드 그리고 도커허브에 이미지 등록해 보기

by rCan 2023. 2. 28.
728x90
반응형

https://github.com/rcaninhu/springboot3-demo

 

GitHub - rcaninhu/springboot3-demo

Contribute to rcaninhu/springboot3-demo development by creating an account on GitHub.

github.com

오늘은 도커 이미지를 만들기와 도커 허브에  이미지 등록하기를 해보겠습니다.

일단 조금전에 먼저 배포 한 이미지

이렇게 할 수 있도록 ~

plugins {
    id("org.springframework.boot") version "3.0.2"
    id("io.spring.dependency-management") version "1.1.0"
    id("org.owasp.dependencycheck") version "7.3.2"
    id("com.bmuschko.docker-spring-boot-application") version "9.2.1" ## 추가
    kotlin("jvm") version "1.8.0"
    kotlin("plugin.spring") version "1.8.0"
    kotlin("plugin.jpa") version "1.8.0"
}

 

이전에 하던 프로젝트에서 

id("com.bmuschko.docker-spring-boot-application") version "9.2.1"

플러그인을 추가 합니다.

docker {
    springBootApplication {
        baseImage.set("gradle:jdk17")
        ports.set(listOf())
        images.set(listOf("inhu00/sample-springboot3-kotlin:0.0.1","inhu00/sample-springboot3-kotlin:latest"))
        maintainer.set("rcaninhu@gmail.com")

    }
    registryCredentials{
        url.set("https://index.docker.io/v1/") // 도커 허브
        username.set("##도커허브 아이디##")
        password.set("##도커허브 패스워드##")
    }
}

springBootApplication {
        baseImage.set("gradle:jdk17") ## 도커 이미지 생성할때 기본이 될 이미지
        ports.set(listOf())  ## 오픈할 포트 
        images.set(listOf("inhu00/sample-springboot3-kotlin:0.0.1","......")) ## 생성할 도커 이미지이름과 버전
        maintainer.set("rcaninhu@gmail.com") ## 이건 maintainer 정보인대 그다지 중요하진 않.
    }

 

 

IDE 그래들 테스크

./gradlew dockerPushImage  또는 IDE에서 위에 처럼 dockerPushImage 를 클릭. 

Starting Gradle Daemon...
Gradle Daemon started in 1 s 633 ms
> Task :compileKotlin UP-TO-DATE
> Task :compileJava NO-SOURCE
> Task :processResources UP-TO-DATE
> Task :classes UP-TO-DATE
> Task :jar UP-TO-DATE
> Task :inspectClassesForKotlinIC UP-TO-DATE
> Task :dockerSyncBuildContext UP-TO-DATE
> Task :dockerCreateDockerfile UP-TO-DATE

> Task :dockerBuildImage
Building image using context '/Users/rcan/dev/kotlin/demo/build/docker'.
Using images 'inhu00/sample-springboot3-kotlin:0.0.1', 'inhu00/sample-springboot3-kotlin:latest'.
Step 1/7 : FROM gradle:jdk17
 ---> f5abda7a7f28
Step 2/7 : LABEL maintainer=rcaninhu@gmail.com
 ---> Using cache
 ---> 42f3c0844497
Step 3/7 : WORKDIR /app
 ---> Using cache
 ---> 83ec333e3b49
Step 4/7 : COPY libs libs/
 ---> Using cache
 ---> 410e7fa19bfd
Step 5/7 : COPY resources resources/
 ---> Using cache
 ---> 23e0998dcafd
Step 6/7 : COPY classes classes/
 ---> Using cache
 ---> 8d6ae77b826c
Step 7/7 : ENTRYPOINT ["java", "-cp", "/app/resources:/app/classes:/app/libs/*", "net.rcan.demo.DemoApplicationKt"]
 ---> Using cache
 ---> 656bdd95b1c6
Successfully built 656bdd95b1c6
Successfully tagged inhu00/sample-springboot3-kotlin:0.0.1
Successfully tagged inhu00/sample-springboot3-kotlin:latest
Created image with ID '656bdd95b1c6'.

> Task :dockerPushImage
Pushing image 'inhu00/sample-springboot3-kotlin:0.0.1' to https://index.docker.io/v1/.
Pushing image 'inhu00/sample-springboot3-kotlin:latest' to https://index.docker.io/v1/.

BUILD SUCCESSFUL in 41s
8 actionable tasks: 2 executed, 6 up-to-date
12:14:11 AM: 실행이 완료되었습니다 'dockerPushImage'.

 

참 쉽죠!?

주의 사항은 물론 개인정보 또는 패스워드 아이디 또는 기타등등 서버 접속 주소를 포함한걸 배포 하면 안되겠죠? 

 

깃허브도 컨테이너 이미지 등록할수 있으려나 깃랩은 지원 하는대 음.. 블로그용 계정을 깃랩으로 갈아탈까.. 공개용.. 그룹 만들고.. 고민.!

728x90
반응형
SMALL

댓글