프로젝트 정리/애완동물 종합 솔루션(CatDogForest)

클라우드타입의 빌드 로그를 보고 어떻게 진행되는지 유추하기

Connecting to "@devjun63/catdog:main/catdog/build" ...
🏂 Build runner(sel-4) is starting...
  ├ Build type is dockerfile
  └ Build env is {"spring.kakao.map.api.key":"2*******************************","spring.kakao.map.api.frontkey":"f*******************************","CHATGPT_API_KEY":"s**************************************************","spring.datasource.password":"1****","spring.datasource.driver-class-name":"c***********************","spring.datasource.url":"j******************************************************************************************","spring.datasource.username":"r***","mybatis.type-aliases-package":"k***********","mybatis.mapper-locations":"m*******************","mybatis.configuration.jdbc-type-for-null":"n***","logging.level.org.springframework":"w***","logging.level.org.springframework.web":"w***","spring.servlet.multipart.enabled":"t***","spring.servlet.multipart.location":"C**********","spring.servlet.multipart.max-request-size":"3***","spring.servlet.multipart.max-file-size":"1***","kr.co.catdog.upload.path":"C**********","spring.profiles.include":"a*****"}
😐 Fetching repository.
  ├ Git URL is https://github.com/CodingGamePlayer/catdog.git
  └ Git ref is refs/heads/master
cloning from "https://github.com/CodingGamePlayer/catdog.git"
🙂 Fetch result.
  ├ Git URL is https://github.com/CodingGamePlayer/catdog.git
  ├ revision is e432525b9872f2bd95084ff099d43c1e46002a90
  ├ branch is master
  └ "Koko (#94)* test* test2* img update* img update* 리뷰평점순* file upload* search* review score* page* scroll page* scroll productList* .* search* view* shop* delete* myreview* matching* update* img files* matching list---------Co-authored-by: koko <>Co-authored-by: kohyuny <hahahahaha@hahah.a>Co-authored-by: JunGi Jeong <59526539+devjun63@users.noreply.github.com>"
🟢 Fetch success. Rev is e432525b9872f2bd95084ff099d43c1e46002a90
🔎 Searching for images of previous builds. Hash is build-608a54bc9f714a01e671d580ef938487
🟡 Building image...
#1 [internal] load build definition from dockerfile.build-608a54bc9f714a01e...
#1 transferring dockerfile: 4.55kB done
#1 DONE 0.1s

#2 [internal] load .dockerignore
#2 transferring context: 2B done
#2 DONE 0.2s

#4 [internal] load metadata for docker.io/cloudtype/jdk:11
#4 ...

#3 [internal] load metadata for docker.io/library/eclipse-temurin:11-jre
#3 DONE 1.4s

#4 [internal] load metadata for docker.io/cloudtype/jdk:11
#4 DONE 1.4s

#8 [build  1/14] FROM docker.io/cloudtype/jdk:11@sha256:77f91c399ecf01e72fd...
#8 DONE 0.0s

#5 [stage-1 1/5] FROM docker.io/library/eclipse-temurin:11-jre@sha256:886f7...
#5 resolve docker.io/library/eclipse-temurin:11-jre@sha256:886f7f392c4857b9be28f3a501d3956f5eea8cf01085b3451778be1c09c9caa4 0.0s done
#5 DONE 0.0s

#11 [internal] load build context
#11 transferring context: 114.74MB 1.4s done
#11 DONE 1.5s

#9 [build  2/14] RUN node -v && npm -v
#9 CACHED

#10 [build  3/14] WORKDIR /app
#10 CACHED

#12 [build  4/14] COPY *.gradle gradle* *gradle .maven* pom.xml* /app/
#12 DONE 1.0s

#13 [build  5/14] RUN mkdir -p /app/gradle
#13 DONE 0.7s

#14 [build  6/14] COPY gradle*/ /app/gradle
#14 DONE 0.1s

#15 [build  7/14] RUN mkdir -p /app/maven
#15 DONE 0.3s

#16 [build  8/14] COPY maven*/ /app/maven
#16 DONE 0.1s

#17 [build  9/14] RUN mkdir -p /app/.mvn
#17 DONE 0.3s

#18 [build 10/14] COPY .mvn*/ /app/.mvn
#18 DONE 0.1s

#19 [build 11/14] RUN if [ -f "./gradlew" ]; then echo "Prepare for gradle(w...
#19 0.242 Prepare for gradle(wrapper) build...
#19 1.764 Downloading https://services.gradle.org/distributions/gradle-7.6.1-bin.zip
#19 3.341 ...........10%............20%...........30%............40%............50%...........60%............70%............80%...........90%............100%
#19 6.939 
#19 6.940 Welcome to Gradle 7.6.1!
#19 6.940 
#19 6.941 Here are the highlights of this release:
#19 6.942  - Added support for Java 19.
#19 6.942  - Introduced `--rerun` flag for individual task rerun.
#19 6.943  - Improved dependency block for test suites to be strongly typed.
#19 6.944  - Added a pluggable system for Java toolchains provisioning.
#19 6.944 
#19 6.945 For more details see https://docs.gradle.org/7.6.1/release-notes.html
#19 6.945 
#19 7.230 Starting a Gradle Daemon (subsequent builds will be faster)
#19 26.63 > Task :compileJava NO-SOURCE
#19 26.64 > Task :processResources NO-SOURCE
#19 26.64 > Task :classes UP-TO-DATE
#19 26.73 > Task :jar
#19 26.73 > Task :assemble
#19 26.73 
#19 26.73 BUILD SUCCESSFUL in 25s
#19 26.73 1 actionable task: 1 executed
#19 DONE 28.2s

#20 [build 12/14] COPY . /app
#20 DONE 1.1s

#21 [build 13/14] RUN if [ -f "./gradlew" ]; then chmod +x ./gradlew; fi && ...
#21 DONE 0.5s

#22 [build 14/14] RUN if [ -f "./gradlew" ]; then echo "Building gradle(wrap...
#22 0.228 Building gradle(wrapper) project...
#22 1.421 Starting a Gradle Daemon, 1 incompatible and 1 stopped Daemons could not be reused, use --status for details
#22 9.424 > Task :clean
#22 27.42 
#22 27.42 > Task :compileJava
#22 27.42 /app/src/main/java/kr/co/catdog/dto/PageDTO.java:13: warning: @Builder will ignore the initializing expression entirely. If you want the initializing expression to serve as default, add @Builder.Default. If it is not supposed to be settable during building, make the field final.
#22 27.42     private int size = 10;
#22 27.42                 ^
#22 30.02 Note: /app/src/main/java/kr/co/catdog/controller/KakaoApi.java uses unchecked or unsafe operations.
#22 30.02 Note: Recompile with -Xlint:unchecked for details.
#22 30.02 1 warning
#22 43.52 
#22 43.52 > Task :processResources
#22 43.52 > Task :classes
#22 45.72 > Task :bootJarMainClassName
#22 49.82 > Task :bootJar
#22 53.82 > Task :jar
#22 53.82 > Task :assemble
#22 53.82 
#22 53.82 BUILD SUCCESSFUL in 53s
#22 53.82 6 actionable tasks: 6 executed
#22 DONE 55.4s

#6 [stage-1 2/5] RUN set -o errexit -o nounset   && groupadd --system --gid...
#6 CACHED

#7 [stage-1 3/5] WORKDIR /app
#7 CACHED

#23 [stage-1 4/5] COPY --from=build --chown=java:java /app/ ./.output
#23 DONE 3.4s

#24 [stage-1 5/5] RUN chown -f java:java /app &&   if [ -d "./.output/build"...
#24 3.666 
#24 DONE 3.7s

#25 exporting to image
#25 exporting layers
#25 exporting layers 2.3s done
#25 writing image sha256:942f056be513493d2675e7ecf67c84060dcad8c358330adf933b074ad0d6d01d
#25 writing image sha256:942f056be513493d2675e7ecf67c84060dcad8c358330adf933b074ad0d6d01d 0.0s done
#25 naming to docker.io/library/build-608a54bc9f714a01e671d580ef938487 done
#25 DONE 2.4s
🟢 Image build complete.
The push refers to repository [asia-northeast3-docker.pkg.dev/cloudtype/sel/devjun63-catdog-catdog]
0ea20a3e9958: Preparing
d4d6e0dcab84: Preparing
0c691d8f2632: Preparing
86690d8f959a: Preparing
83e01f6d9fb1: Preparing
e3922ee51bcf: Preparing
04d1dcab20cb: Preparing
b93c1bd012ab: Preparing
04d1dcab20cb: Waiting
b93c1bd012ab: Waiting
e3922ee51bcf: Waiting
0c691d8f2632: Layer already exists
83e01f6d9fb1: Layer already exists
86690d8f959a: Layer already exists
04d1dcab20cb: Layer already exists
e3922ee51bcf: Layer already exists
b93c1bd012ab: Layer already exists
0ea20a3e9958: Pushed
d4d6e0dcab84: Pushed
1maxx2algfytknb: digest: sha256:65a859e0476c51d8f0ee918fc4563e26370b3da9e3b492cd9df72b8232fbf037 size: 2001
🟢 Push success.
  ├ asia-northeast3-docker.pkg.dev/cloudtype/sel/devjun63-catdog-catdog:1maxx2algfytknb
  └ 1 image(s)
✅ Build job(1maxx2algfytknb) complete.

 

 

정확한 사실이 없고 혼자 파악한 정보뿐이니 참조하지는 마세요 :)

sel-4라는 OS를 기반으로 dockerfile을 활용해서 build
빌드시 env(환경변수)를 적용
github repo와 reference branch clone을 통해 이루어지고
이전 docker image와 비교후 docker 이미지를 생성하는듯 하다.
dockerignore, metadata를 적용시키고 eclipse temurin을 사용한다.
dorker.io에 jdk파일을 적재시키는 과정과 sha256을 보아 해싱처리된 주소와 매핑? 하는듯
context, node & npm
WORKDIR/app이라는 디렉토리를 생성후 gradle, maven, pom.xml에 해당하는 파일을 복사
gradlew를 통해 다운로드 및 실행
혹시 gradlew에 쓰기 권한이 없을 경우를 가정해 chmod +x로 실행 권한을 붙여 검토하는 듯...

 


 

용어 설명 (Use ChatGpt)

 

sel4

seL4은 형식적인 검증을 받은 선도적인 마이크로커널 기반 운영체제입니다.
형식적인 검증은 소프트웨어가 수학적으로 증명된 성질을 만족한다는 것을 보장하기 위해 사용되는 방법입니다. seL4은 이러한 방법으로 설계 및 구현되어, 높은 신뢰성과 보안성을 제공합니다.

seL4은 작은 커널 크기와 간결한 인터페이스를 갖추고 있습니다.
이러한 특징은 다양한 임베디드 시스템 및 보안 요구 사항을 충족하기 위해 설계되었습니다.
또한, seL4은 높은 수준의 격리와 보안 기능을 제공하며, 커널에서 발생하는 결함 및 보안 취약점의 범위를 제한함으로써 시스템의 신뢰성을 높입니다.

seL4은 개발자 및 연구원들이 사용 가능한 오픈소스로 제공되며, 다양한 플랫폼에서 사용할 수 있습니다. 이러한 특징으로 seL4은 안전성 및 보안성이 중요한 시스템에서 사용될 수 있습니다.

 

Eclipse Temurin

Eclipse Temurin은 Oracle JDK의 오픈 소스 버전인 OpenJDK의 배포판 중 하나입니다.
이 배포판은 Eclipse Foundation에서 관리하며,
Java SE 표준을 준수하고 최신 버전의 Java SE에 대한 보안 및 성능 업데이트를 제공합니다.

Eclipse Temurin은 다양한 플랫폼(Windows, macOS, Linux 등)과 아키텍처(x86, ARM 등)에서 지원되며,
개발자들은 이를 사용하여 Java 애플리케이션을 개발하고 배포할 수 있습니다.
또한, Eclipse Temurin은 무료로 사용할 수 있으며, 상용 및 비상용 목적 모두에 적합합니다.

Eclipse Temurin은 JDK 8부터 JDK 16까지 다양한 버전을 제공하며, 장기 지원( LTS ) 버전도 지원합니다.
또한, OpenJDK의 다른 배포판과 마찬가지로 Eclipse Temurin은 Java SE 기반 애플리케이션을 개발하는 개발자들에게 필수적인 도구와 라이브러리를 제공합니다.

 


References By

https://sel4.systems/

 

Home | seL4

What is seL4? The world’s most high-assured operating system kernel seL4 Foundation Open source foundation for seL4 and its ecosystem. Want to join? Stay in touch Mailing lists, blog, contacts, chat Commercial Support Endorsed service providers for seL4

sel4.systems

 

https://hub.docker.com/_/eclipse-temurin

 

eclipse-temurin - Official Image | Docker Hub

Quick reference Supported tags and respective Dockerfile links Note: the description for this image is longer than the Hub length limit of 25000, so the "Supported tags" list has been trimmed to compensate. See docker/hub-beta-feedback#238 for more informa

hub.docker.com