เบเบนเปเบเบญเบเปเบเบเปเบเบตเปเบเปเบเบฒเบเปเบเบฑเบเบงเบดเบเบตเบเบฒเบเบเบตเปเบกเบฑเบเบเบญเบเบเบฒเบเบซเบธเปเบกเบซเปเปเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบเบตเปเบกเบตเบเบญเบเปเบงเปเบฅเบฐเบฅเบฐเบเบปเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเบฑเบเบซเบกเบปเบเบเบญเบเบเบปเบ, เปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบชเบปเปเบเปเบซเปเปเบเบปเบฒเปเบเบปเปเบฒเบเบฑเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบ.
เบเบปเบเบเบงเบฒเบกเบเบตเปเบเบงเบกเปเบญเบปเบฒเบงเบดเบเบตเบเบฒเบเบเปเบฒเบเปเปเบเบเบฒเบเบเบฑเบเบเบธเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบ Spring Boot:
- เบเบฒเบเบชเปเบฒเบเบฎเบนเบเบเบฒเบ Docker เปเบเบเปเบเปเปเบเบฅเป Docker,
- เบเบฒเบเบชเปเบฒเบเบฎเบนเบเบเบฒเบ OCI เบเบฒเบเปเบซเบผเปเบเปเบเบเปเบเป Cloud-Native Buildpack,
- เปเบฅเบฐเบเบฒเบเปเบเบตเปเบกเบเบฐเบชเบดเบเบเบดเบเบฒเบเบฎเบนเบเบเบฒเบเปเบเปเบงเบฅเบฒเปเบฅเปเบเปเบเบเบเบฒเบเปเบเบเบชเปเบงเบเบเปเบฒเบเปเบเบญเบ JAR เบญเบญเบเปเบเบฑเบเบเบฑเปเบเบเปเบฒเบเปเปเบเบเปเบเปเปเบเบทเปเบญเบเบกเบทเบซเบผเบฒเบเบเบฑเปเบ.
เบเบปเบงเบขเปเบฒเบเบฅเบฐเบซเบฑเบ
เบเบปเบเบเบงเบฒเบกเบเบตเปเปเบกเปเบเบกเบฒเบเปเบญเบกเบเบฑเบเบเบปเบงเบขเปเบฒเบเบฅเบฐเบซเบฑเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบ
เบเบณเบชเบฑเบเบเปเบฝเบงเบเบฑเบเบเบนเปเบเบญเบเปเบเบเปเบเบต
เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบฅเบตเปเบกเบเบปเปเบเบเปเบงเบเบเปเบฒเบชเบฑเบเบเบฑเบเบเบธเบเบตเปเปเบเปเปเบเบเบปเบเบเบงเบฒเบก:
- เบฎเบนเบเบเบฒเบเบเบนเปเบเบญเบเปเบเบเปเบเบต: เปเบเบฅเปเบเบญเบเบฎเบนเบเปเบเบเบชเบฐเปเบเบฒเบฐ. เบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเบฝเบเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบเบฑเบเบฎเบนเบเบเบฑเบเบเบธเปเบเบเบเบฒเบเปเบฅเปเบเปเบเบทเปเบญเบเบกเบทเบชเปเบฒเบ.
- Container: เบเบปเบงเบขเปเบฒเบเบเบตเปเบเบฐเบเบดเบเบฑเบเปเบเปเบเบญเบเบฎเบนเบเบเบฑเบเบเบธ.
- เปเบเบทเปเบญเบเบเบฑเบเบเบฑเบเบเบธ: เบเบฐเบเบงเบเบเบฒเบ daemon เบเบตเปเบฎเบฑเบเบเบดเบเบเบญเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบฅเปเบเบเบฑเบเบเบธ.
- เปเบเบปเปเบฒเบเบฒเบเบเบนเปเบเบญเบเปเบเบเปเบเบต: เบเบญเบกเบเบดเบงเปเบเบตเปเบฎเบชเบเบตเปเปเบเบทเปเบญเบเบเบฑเบเบเบฑเบเบเบธเบเบฑเบเบเบธเปเบฅเปเบ.
- เบเบฐเบเบฝเบเบเบนเปเบเบญเบเปเบเบเปเบเบต: เบชเบฐเบเบฒเบเบเบตเปเบเบปเปเบงเปเบเบเบตเปเปเบเปเปเบเบทเปเบญเปเบเบตเบเปเบเป เปเบฅเบฐเปเบเบเบขเบฒเบเบฎเบนเบเบเบฒเบเบเบฑเบเบเบธ.
- เบกเบฒเบเบเบฐเบเบฒเบ OCI:
Open Container Initiative (OCI) เปเบกเปเบเปเบเบเบชเปเบฒเบเบเบฒเบเบเบปเบเบเบญเบเปเบเบเปเบเบตเบเบเบตเปเบกเบตเบเปเบณเปเบฑเบเปเบเบปเบฒเบเบตเปเบชเปเบฒเบเบเบถเปเบเบเบฒเบเปเบเบกเบนเบเบเบดเบเบด Linux. OCI Image Specification เบเปเบฒเบเบปเบเบกเบฒเบเบเบฐเบเบฒเบเบญเบธเบเบชเบฒเบซเบฐเบเปเบฒเบชเปเบฒเบฅเบฑเบเบฎเบนเบเบเบฒเบ container เปเบฅเบฐเบฎเบนเบเปเบเบ runtime เปเบเบทเปเบญเบฎเบฑเบเบเบฐเบเบฑเบเบงเปเบฒเปเบเบทเปเบญเบเบเบฑเบ container เบเบฑเบเบซเบกเบปเบเบชเบฒเบกเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบฎเบนเบเบเบฒเบ container เบเบตเปเบชเปเบฒเบเปเบเบเปเบเบทเปเบญเบเบกเบทเบเบฒเบเบเปเปเบชเปเบฒเบเปเบเป.
เปเบเบทเปเบญเบเบฑเบเบเบธเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบ, เบเบงเบเปเบฎเบปเบฒเบซเปเปเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบเบฎเบนเบเบเบฑเบเบเบธเปเบฅเบฐเปเบเบตเบเปเบเปเบฎเบนเบเบเบฒเบเบเบฑเปเบเปเบเบซเบฒเบเบฐเบเบฝเบเบเบตเปเปเบเปเบเบเบฑเบ. เบเปเบงเบเปเบงเบฅเบฒเบเบฑเบเบเบธเบเบฑเบเบเบธเปเบญเบปเบฒเบฎเบนเบเบเบฒเบเบเบตเปเบกเบฒเบเบฒเบเบฅเบตเบเบดเบเบเบต, เบเบญเบเบกเบฑเบเบญเบญเบ, เปเบฅเบฐเปเบฅเปเบเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเบเบฒเบเปเบเบกเบฑเบ.
เปเบงเบตเบเบฑเบ 2.3 เบเบญเบ Spring Boot เบชเบฐเปเบญเบเบเบฅเบฑเบเบญเบดเบเปเบเบทเปเบญเบชเปเบฒเบเบฎเบนเบเบเบฒเบ OCI.
เบเบฒเบเบชเปเบฒเบเบฎเบนเบเบเบฒเบเบเบนเปเบเบญเบเปเบเบเปเบเบตเบเบฒเบกเปเบเบเบเบฑเปเบเปเบเบตเบก
เบเบฒเบเบชเปเบฒเบเบฎเบนเบเบเบฒเบ Docker เบชเปเบฒเบฅเบฑเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบ Spring Boot เปเบกเปเบเบเปเบฒเบเบซเบผเบฒเบเปเบเบเบเบฒเบเปเบเบตเปเบกเบเปเบฒเปเบเบฐเบเปเบฒเบเปเบฒเบเบงเบเบซเบเปเบญเบเปเบชเปเปเบเบฅเป Docker.
เบเบงเบเปเบฎเบปเบฒเบเปเบฒเบญเบดเบเบชเปเบฒเบเปเบเบฅเป JAR เบเบตเปเบชเบฒเบกเบฒเบเบเบฐเบเบดเบเบฑเบเปเบเปเปเบฅเบฐ, เปเบเบฑเบเบชเปเบงเบเบซเบเบถเปเบเบเบญเบเบเปเบฒเปเบเบฐเบเปเบฒเบเบญเบเปเบเบฅเป Docker, เบเบฑเบเบฅเบญเบเปเบเบฅเป JAR เบเบตเปเบชเบฒเบกเบฒเบเบเบฐเบเบดเบเบฑเบเปเบเปเบขเบนเปเปเบเบดเบเบชเบธเบเบเบญเบเบฎเบนเบเบเบฒเบ JRE เบเบทเปเบเบเบฒเบเบซเบผเบฑเบเบเบฒเบเบเปเบฒเปเบเปเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบตเปเบเปเบฒเปเบเบฑเบ.
เปเบซเปเบชเปเบฒเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบเบฒเบเบฎเบฝเบ spring เบเบญเบเบเบงเบเปเบฎเบปเบฒเบเปเบฝเบงเบเบฑเบ web
, lombok
ะธ actuator
. เบเบงเบเปเบฎเบปเบฒเบเบฑเบเปเบเบตเปเบกเบเบปเบงเบเบงเบเบเบธเบกเบชเปเบงเบเบเบตเปเปเบซเบผเบทเบญเปเบเบทเปเบญเปเบซเป API เบเบฑเบ GET
เบงเบดเบเบตเบเบฒเบ.
เบเบฒเบเบชเปเบฒเบ Dockerfile
เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เบเบงเบเปเบฎเบปเบฒเบเบฑเบเบเบธเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบเบตเปเปเบเบเบเบฒเบเปเบเบตเปเบก Dockerfile
:
FROM adoptopenjdk:11-jre-hotspot
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} application.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","/application.jar"]
เปเบเบฅเป Docker เบเบญเบเบเบงเบเปเบฎเบปเบฒเบเบฐเบเบญเบเบกเบตเบฎเบนเบเบเบฒเบเบเบทเปเบเบเบฒเบเบเบฒเบ adoptopenjdk
, เบขเบนเปเปเบเบดเบเบชเบธเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบฑเบเบฅเบญเบเปเบเบฅเป JAR เบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเปเบเบตเบเบเบญเบ, 8080
เปเบเบดเปเบเบเบฐเบฎเบฑเบเบเบฑเบเบเบฒเบเบฎเปเบญเบเบเป.
เบเบฒเบเบเปเปเบชเปเบฒเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบ
เบเปเบญเบเบญเบทเปเบ เปเบปเบ เบเปเบฒเบเบเปเบญเบเบชเปเบฒเบเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเปเบเบเปเบเป Maven เบซเบผเบท Gradle. เบเบตเปเบเบงเบเปเบฎเบปเบฒเปเบเป Maven:
mvn clean package
เบญเบฑเบเบเบตเปเบชเปเบฒเบเปเบเบฅเป JAR เบเบตเปเบชเบฒเบกเบฒเบเบเบฐเบเบดเบเบฑเบเปเบเปเบชเปเบฒเบฅเบฑเบเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบ. เบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเปเบฝเบ JAR เบเบตเปเบชเบฒเบกเบฒเบเบเบฐเบเบดเบเบฑเบเปเบเปเบเบตเปเปเบเบปเปเบฒเปเบเปเบเบฎเบนเบเบเบฒเบ Docker เปเบเบทเปเบญเบเปเบฒเปเบเบตเบเบเบฒเบเปเบเปเบเบทเปเบญเบเบเบฑเบ Docker.
เบเบฒเบเบชเปเบฒเบเบฎเบนเบเบเบฒเบเบเบฑเบเบเบธ
เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เบเบงเบเปเบฎเบปเบฒเปเบญเบปเบฒเปเบเบฅเป JAR เบเบตเปเบชเบฒเบกเบฒเบเบเบฐเบเบดเบเบฑเบเปเบเปเบเบตเปเปเบเบปเปเบฒเปเบเปเบเบฎเบนเบเบเบฒเบ Docker เปเบเบเบเบฒเบเปเบฅเปเบเบเปเบฒเบชเบฑเปเบ docker build
เบเบฒเบเปเบเปเบฅเบเบฐเบเปเบฅเบตเบฎเบฒเบเปเบเบเบเบฒเบเบเบตเปเบกเบต Dockerfile เบเบตเปเบชเปเบฒเบเบเบถเปเบเบเปเบญเบเบซเบเปเบฒเบเบตเป:
docker build -t usersignup:v1 .
เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเปเบเบดเปเบเบฎเบนเบเบเบฒเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเปเบเบเปเบเปเบเปเบฒเบชเบฑเปเบ:
docker images
เบเบปเบเบเบฐเบฅเบดเบเบเบญเบเบเปเบฒเบชเบฑเปเบเบเปเบฒเบเปเบเบดเบเบเบตเปเบเบฐเบเบญเบเบกเบตเบฎเบนเบเบเบฒเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ usersignup
เบเปเบญเบกโเบเบฑเบโเบฎเบนเบโเบเบฒเบโเบเบทเปเบโเบเบฒเบโ, adoptopenjdk
เบฅเบฐเบเบธเปเบงเปเปเบเปเบเบฅเป Docker เบเบญเบเบเบงเบเปเบฎเบปเบฒ.
REPOSITORY TAG SIZE
usersignup v1 249MB
adoptopenjdk 11-jre-hotspot 229MB
เปเบเบดเปเบเบเบฑเปเบเบเปเปเบกเบนเบเบเบฒเบเปเบเบฎเบนเบเบเบฑเบเบเบธ
เปเบซเปเปเบเบดเปเบเบขเบนเปเปเบ stack เบเบญเบเบเบฑเปเบเปเบเบฎเบนเบ. เบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเบฒเปเบเป
dive usersignup:v1
เบเบตเปเปเบกเปเบเบชเปเบงเบเบซเบเบถเปเบเบเบญเบเบเบปเบเบเบฐเบฅเบดเบเบเบฒเบเบเปเบฒเบชเบฑเปเบ Dive:
เบเบฑเปเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเปเบซเบฑเบเปเบเป, เบเบฑเปเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเปเบฎเบฑเบเปเบซเปเปเบเบดเบเบชเปเบงเบเบเบตเปเบชเปเบฒเบเบฑเบเบเบญเบเบเบฐเบซเบเบฒเบเบฎเบนเบเบเบฒเบ. เบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเบซเบผเบธเบเบเปเบญเบเบเบฐเบซเบเบฒเบเบเบญเบเบเบฑเปเบเบเบตเปเปเบเบชเปเบงเบเบเปเปเปเบเบเบตเปเปเบเบฑเบเบชเปเบงเบเบซเบเบถเปเบเบเบญเบเบเบฒเบเปเบเบตเปเบกเบเบฐเบชเบดเบเบเบดเบเบฒเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ.
เบเบฒเบเบชเปเบฒเบเบฎเบนเบเบเบฒเบเบเบฑเบเบเบธเปเบเบเปเบเป Buildpack
เบเบฐเปเบซเบเบเบเบญเบเบเบฒเบเบซเบธเปเบกเบซเปเป cloud build
เบซเบเบถเปเบเปเบเบเบปเบเบเบฐเปเบซเบเบเบเบปเปเบเบเปเบเบญเบเบเบฒเบเบเปเบฒเปเบเป Buildpack เปเบเบทเปเบญเบชเปเบฒเบเบฎเบนเบเบเบฒเบเปเบกเปเบเบงเปเบฒ เบเบฒเบโเบเปเบฝเบโเปเบเบโเบเบฒเบโเบเบฑเปเบโเบเปเบฒโเบฎเบนเบโเบเบฒเบโเบชเบฒโเบกเบฒเบโเปเบเปโเบฎเบฑเบโเบเบฒเบโเบเบธเปเบกโเบเบญเบโเบชเบนเบโเบเบฒเบ (เบเบนเปโเบชเปเบฒเบโ) เปเบฅเบฐโเปเบเปโเบเบฐโเบซเบเบฒเบโเปเบโเบเบธเบโเบเปเบฒโเบฎเปเบญเบโเบชเบฐโเบซเบกเบฑเบโเปเบเบโเบเบฒเบโเบเปเบฒโเปเบเป builderโ.
เบเบฒเบเบซเบธเปเบกเบซเปเปเบเบฒเบเบเปเปเบชเปเบฒเบเปเบเปเบเบทเบเบชเบปเบกเบเบปเบเบขเปเบฒเบเปเบซเบเปเบเบซเบเบฒเบเบฑเบเปเบงเบเบต. Cloud-Native Buildpacks เบชเบฐเบซเบเบญเบเบกเบฒเบเบเบฐเบเบฒเบเปเบเบเบปเปเบงเปเบเบฅเบฐเบเบฐเบเบญเบกเปเบเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบฎเบนเบเปเบเบเบฎเบนเบเบเบฒเบ OCI, เปเบเบดเปเบเบฎเบฑเบเบเบฐเบเบฑเบเบงเปเบฒเบฎเบนเบเบเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเปเบเบเปเบเบทเปเบญเบเบเบฑเบ Docker.
เบเบฒเบเบเปเบฒเปเบเป plugin Spring Boot
plugin Spring Boot เบเปเปเบชเปเบฒเบเบฎเบนเบเบเบฒเบ OCI เบเบฒเบเปเบซเบผเปเบเปเบเบเปเบเป Buildpack. เบฎเบนเบเบเบฒเบเปเบเปเบเบทเบเบชเปเบฒเบเบเบทเปเบเปเบเบเปเบเป bootBuildImage
เบงเบฝเบเบเบฒเบ (Gradle) เบซเบผเบท spring-boot:build-image
เปเบเบปเปเบฒเปเบฒเบ (Maven) เปเบฅเบฐเบเบฒเบเบเบดเบเบเบฑเปเบ Docker เบเปเบญเบเบเบดเปเบ.
เบเบงเบโเปเบฎเบปเบฒโเบชเบฒโเบกเบฒเบโเบเบฑเบโเปเบเปเบโเบเบทเปโเบเบญเบโเบฎเบนเบโเบเบฒเบโเบเบตเปโเบเปเบฒโเปเบเบฑเบโเปเบเบทเปเบญโเบเบธเบโเบเบฑเบโเปเบซเปโเบเบฒเบโเบเบปเบโเบเบฐโเบเบฝเบ Docker เปเบเบโเบเบฒเบโเบฅเบฐโเบเบธโเบเบทเปโเปเบโ image tag
:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<image>
<name>docker.io/pratikdas/${project.artifactId}:v1</name>
</image>
</configuration>
</plugin>
เปเบซเปเปเบเป Maven เปเบเบทเปเบญเปเบฎเบฑเบเบกเบฑเบ build-image
เปเบเบปเปเบฒเปเบฒเบเปเบเบเบฒเบเบชเปเบฒเบเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบ เปเบฅเบฐเบเบฒเบเบชเปเบฒเบเบฎเบนเบเบเบฒเบเบเบฑเบเบเบธ. เบเบงเบเปเบฎเบปเบฒเบเปเปเปเบเปเปเบเป Dockerfiles เปเบเปเปเบเปเบงเบฅเบฒเบเบตเป.
mvn spring-boot:build-image
เบเบปเบเปเบเปเบฎเบฑเบเบเบฐเปเบเบฑเบเปเบเบฑเปเบเบเบตเป:
[INFO] --- spring-boot-maven-plugin:2.3.3.RELEASE:build-image (default-cli) @ usersignup ---
[INFO] Building image 'docker.io/pratikdas/usersignup:v1'
[INFO]
[INFO] > Pulling builder image 'gcr.io/paketo-buildpacks/builder:base-platform-api-0.3' 0%
.
.
.. [creator] Adding label 'org.springframework.boot.version'
.. [creator] *** Images (c311fe74ec73):
.. [creator] docker.io/pratikdas/usersignup:v1
[INFO]
[INFO] Successfully built image 'docker.io/pratikdas/usersignup:v1'
เบเบฒเบเบเบปเบเบเบฐเบฅเบดเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเปเบซเบฑเบเบงเปเบฒ paketo Cloud-Native buildpack
เปเบเปเปเบเบทเปเบญเบชเปเบฒเบเบฎเบนเบเบเบฒเบ OCI เบเบตเปเปเบฎเบฑเบเบงเบฝเบ. เบเบฑเปเบเบเบตเปเบเปเบฒเบเบกเบฒ, เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเปเบซเบฑเบเบฎเบนเบเบเบฒเบเบเบตเปเบกเบตเบฅเบฒเบเบเบทเปเปเบเบฑเบเบฎเบนเบเบเบฒเบ Docker เปเบเบเบเบฒเบเปเบฅเปเบเบเปเบฒเบชเบฑเปเบ:
docker images
เบชเบฐเบซเบผเบธเบ:
REPOSITORY SIZE
paketobuildpacks/run 84.3MB
gcr.io/paketo-buildpacks/builder 652MB
pratikdas/usersignup 257MB
เบเบฒเบเบชเปเบฒเบเบฎเบนเบเบเบฒเบเบเบฑเบเบเบธเปเบเบเปเบเป Jib
Jib เปเบเบฑเบ plugin เบชเปเบฒเบเบฎเบนเบเบเบฒเบเบเบฒเบ Google เบเบตเปเบชเบฐเบซเบเบญเบเบงเบดเบเบตเบเบฒเบเบเบฒเบเปเบฅเบทเบญเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบชเปเบฒเบเบฎเบนเบเบเบฒเบเบเบฑเบเบเบธเบเบฒเบเบฅเบฐเบซเบฑเบเปเบซเบผเปเบ.
เบเบฑเบเปเบเปเบ jib-maven-plugin
เปเบ pom.xml:
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<version>2.5.2</version>
</plugin>
เบเปเปเปเบ, เบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเบตเบเบเบฒเบ Jib plugin เปเบเบเปเบเปเบเปเบฒเบชเบฑเปเบ Maven เปเบเบทเปเบญเบชเปเบฒเบเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเปเบฅเบฐเบชเปเบฒเบเบฎเบนเบเบเบฒเบเบเบฑเบเบเบธ. เบเบฑเปเบเบเบตเปเบเปเบฒเบเบกเบฒ, เบเบงเบเปเบฎเบปเบฒเบเปเปเปเบเปเปเบเปเปเบเบฅเป Docker เปเบเปเบขเบนเปเบเบตเปเบเบตเป:
mvn compile jib:build -Dimage=<docker registry name>/usersignup:v1
เบซเบผเบฑเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเปเบฒเบชเบฑเปเบ Maven เบเปเบฒเบเปเบเบดเบ, เบเบงเบเปเบฎเบปเบฒเปเบเปเบฎเบฑเบเบเบปเบเปเบเปเบฎเบฑเบเบเบฑเปเบเบเปเปเปเบเบเบตเป:
[INFO] Containerizing application to pratikdas/usersignup:v1...
.
.
[INFO] Container entrypoint set to [java, -cp, /app/resources:/app/classes:/app/libs/*, io.pratik.users.UsersignupApplication]
[INFO]
[INFO] Built and pushed image as pratikdas/usersignup:v1
[INFO] Executing tasks:
[INFO] [==============================] 100.0% complete
เบเบปเบเปเบเปเบฎเบฑเบเบชเบฐเปเบเบเปเบซเปเปเบซเบฑเบเบงเปเบฒเบฎเบนเบเบเบฒเบเบเบฑเบเบเบธเปเบเปเบเบทเบเบชเปเบฒเบเบเบทเปเบเปเบฅเบฐเบงเบฒเบเปเบงเปเปเบเบฅเบตเบเบดเบเบเบต.
เปเบฎเบเบเบนเบเปเบเปเบฅเบฐเปเบเบฑเบเบเบดเบเบเบฒเบเบชเปเบฒเบเบฎเบนเบเบเบฒเบเบเบตเปเบเบตเบเบตเปเบชเบธเบ
เบเบงเบเปเบฎเบปเบฒเบกเบตเบชเบญเบเปเบซเบเบเบปเบเบเบปเปเบเบเปเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเบตเปเบกเบเบฐเบชเบดเบเบเบดเบเบฒเบ:
- เบเบฐเบฅเบดเบเบเบฐเบเบฑเบ: เปเบเบฅเบฐเบเบปเบเบเบฒเบเบชเบฑเปเบเบเบฑเบเบเบธเบเบนเปเบเบญเบเปเบเบเปเบเบต, เบฎเบนเบเบเบฒเบเบเบฑเบเบเบธเบเบฐเบเบทเบเบเบถเบเบกเบฒเบเบฒเบเบเบฒเบเบฅเบปเบเบเบฐเบเบฝเบเบฎเบนเบเบเบฒเบเปเบเบซเบฒเปเบเบปเปเบฒเบเบฒเบเบเบตเปเปเบฅเปเบเปเบเบทเปเบญเบเบเบฑเบเบเบฑเบเบเบธ. เบเบฐเบเบงเบเบเบฒเบเบเบตเปเปเบญเบตเปเบเบงเปเบฒเบเบฒเบเบงเบฒเบเปเบเบ. เบเบฒเบเบเบถเบเบฎเบนเบเบเบฒเบเบเบฐเบซเบเบฒเบเปเบซเบเปเบเบฒเบเบเบฐเบเบฝเบเปเบฎเบฑเบเปเบซเปเปเบงเบฅเบฒเบเปเบฒเบเบปเบเปเบงเบฅเบฒเบเบฒเบงเปเบเบฅเบฐเบเบปเบเบเบฒเบ orchestration เบเบนเปเบเบญเบเปเบเบเปเบเบตเปเบฅเบฐเปเบงเบฅเบฒเบเบฒเบเบเปเปเบชเปเบฒเบเบเบฒเบงเปเบเบเปเป CI.
- เบเบงเบฒเบกเบเบญเบเปเบ: เบฎเบนเบเบเบฒเบเบเบฐเบซเบเบฒเบเปเบซเบเปเบเบฑเบเบกเบตเบเบทเปเบเบเบตเปเบเบฐเบซเบเบฒเบเปเบซเบเปเบชเปเบฒเบฅเบฑเบเบเปเบญเบเปเบซเบงเป.
เบฎเบนเบเบเบฒเบ Docker เบเบฐเบเบญเบเบเปเบงเบเบซเบผเบฒเบเบเบฑเปเบ, เปเบเบดเปเบเปเบเปเบฅเบฐเบญเบฑเบเบชเบฐเปเบเบเปเบเบดเบเบเปเบฒเปเบเบฐเบเปเบฒเปเบ Dockerfile เบเบญเบเบเบงเบเปเบฎเบปเบฒ. เปเบเปเบฅเบฐเบเบฑเปเบเบชเบฐเปเบเบเปเบเบดเบ delta เบเบญเบเบเบฒเบเบเปเบฝเบเปเบเบเปเบเบเบฑเปเบเบเบตเปเบเบดเบเบเบฑเบ. เปเบกเบทเปเบญเบเบงเบเปเบฎเบปเบฒเบเบถเบเบฎเบนเบเบเบฒเบ Docker เบญเบญเบเบเบฒเบเบฅเบตเบเบดเบเบเบต, เบกเบฑเบเบเบทเบเบเบถเบเปเบเบฑเบเบเบฑเปเบเปเปเบฅเบฐเปเบเบฑเบเปเบงเปเปเบเปเบฎเบ.
Spring Boot เปเบเป
เบชเบนเบเบเบฒเบเปเบเบตเปเบกเบเบฐเบชเบดเบเบเบดเบเบฒเบเปเบกเปเบเบเบธเบเบชเบนเบเบเบฒเบเบเปเบฝเบงเบเบฑเบเบเบฒเบเปเบเบเบเปเบฝเบงเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเปเบเบฅเบฐเบเบฑเบเบเบตเปเปเบเบเบเปเบฒเบเบซเบฒเบเบเบฒเบ Spring Framework dependencies.
เบเบฑเปเบเบเบฒเบเปเบเบดเปเบเบเบฒเบญเบฒเปเบช, เปเบเบดเปเบเบเบฐเบเบญเบเปเบเบฑเบเบชเปเบงเบเปเบซเบเปเบเบญเบเปเบเบฅเป JAR เบเบตเปเบซเบเบฒ, เบเบทเบเบเบฒเบงเปเบซเบผเบเบเบฝเบเปเบเปเบเบฑเปเบเบเบฝเบงเปเบฅเบฐเบเบทเบเปเบเบฑเบเปเบงเปเปเบเบฅเบฐเบเบปเบเปเบฎเบ.
เบเบฝเบเปเบเปเบเบฒเบเบเบฑเปเบเบเบญเบเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเบเบทเบเบเบถเบเปเบเบฅเบฐเบซเบงเปเบฒเบเบเบฒเบเบญเบฑเบเปเบเบเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบ เปเบฅเบฐเบเบฒเบเบเบฑเบเบเบฒเบเบฐเบฅเบฒเบเบเบฑเบเบเบธ. เบเบฑเปเบเบเบตเปเบชเบฐเปเบเบเบขเบนเปเปเบเปเบเบเบงเบฒเบเบเบตเป:
เปเบเบเบฒเบเบเปเปเปเบเบเบตเป, เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเบดเปเบเบงเบดเบเบตเบเบฒเบเบชเปเบฒเบเบฎเบนเบเบเบฒเบเบเบตเปเบเบตเบเบตเปเบชเบธเบเปเบซเบผเบปเปเบฒเบเบตเปเบชเปเบฒเบฅเบฑเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบ Spring Boot.
เบเบฒเบเบชเปเบฒเบเบฎเบนเบเบเบฒเบเบเบนเปเบเบญเบเปเบเบเปเบเบตเบเบตเปเบเบตเบเบตเปเบชเบธเบเบชเปเบฒเบฅเบฑเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบ Spring Boot เปเบเบเปเบเป Buildpack
Spring Boot 2.3 เบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบเบฒเบเบเบฑเบเบเบฑเปเบเปเบเบเบเบฒเบเบชเบฐเบเบฑเบเปเบญเบปเบฒเบเบฒเบเบชเปเบงเบเบเบญเบเปเบเบฅเป JAR เบซเบเบฒเปเบเบปเปเบฒเปเบเปเบเบเบฑเปเบเปเบเบเบเปเบฒเบเบซเบฒเบ. เบเบธเบเบชเบปเบกเบเบฑเบเบเบฒเบเบเบฑเบเบเบฑเปเบเปเบกเปเบเบเบทเบเบเบดเบเปเบเปเบเบฒเบเปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ เปเบฅเบฐเบเปเบญเบเบเบทเบเปเบเบตเบเปเบเปเบขเปเบฒเบเบเบฐเปเบเปเบเปเบเบเปเบเป plugin Spring Boot Maven:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<layers>
<enabled>true</enabled>
</layers>
</configuration>
</plugin>
เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเปเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบตเปเปเบเบทเปเบญเบชเปเบฒเบเบฎเบนเบเบเบฒเบเบเบฑเบเบเบธเบเบญเบเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเปเบงเบ Buildpack เปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบฑเบ Docker เปเบเบเบฒเบเบเปเปเปเบเบเบตเป.
เปเบเบตเบเบเบปเบง build-image
เปเบเบปเปเบฒเปเบฒเบ Maven เปเบเบทเปเบญเบชเปเบฒเบเบฎเบนเบเบเบฒเบเบเบฑเบเบเบธ:
mvn spring-boot:build-image
เบเปเบฒเบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเบตเบเบเบฒเบ Dive เปเบเบทเปเบญเปเบเบดเปเบเบเบฑเปเบเบเปเบฒเบเปเปเบเบฎเบนเบเบเบฒเบเบเบปเบเปเบเปเบฎเบฑเบ, เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเปเบซเบฑเบเปเบเปเบงเปเบฒเบเบฑเปเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบ (เบชเบตเปเบเบ) เบกเบตเบเบฐเบซเบเบฒเบเบเปเบญเบเบเบงเปเบฒเบขเบนเปเปเบเบเบญเบเปเบเบเบเบดเปเบฅเปเบเปเบกเบทเปเบญเบเบฝเบเบเบฑเบเบชเบดเปเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเปเบเปเบฎเบฑเบเปเบเบเปเบเปเบฎเบนเบเปเบเบ JAR เปเบเบกเบฑเบ:
เบเบฒเบเบชเปเบฒเบเบฎเบนเบเบเบฒเบเบเบนเปเบเบญเบเปเบเบเปเบเบตเบเบตเปเบเบตเบเบตเปเบชเบธเบเบชเปเบฒเบฅเบฑเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบ Spring Boot เปเบเบเปเบเป Docker
เปเบเบเบเบตเปเบเบฐเปเบเป Maven เบซเบผเบท Gradle plugin, เบเบงเบเปเบฎเบปเบฒเบเบฑเบเบชเบฒเบกเบฒเบเบชเปเบฒเบเบฎเบนเบเบเบฒเบ Docker JAR เบเบตเปเปเบเบฑเบเบเบฑเปเบเบเปเบงเบเปเบเบฅเป Docker.
เปเบกเบทเปเบญเบเบงเบเปเบฎเบปเบฒเปเบเป Docker, เบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเบฐเบเบดเบเบฑเบเบชเบญเบเบเบฑเปเบเบเบญเบเปเบเบตเปเบกเปเบเบตเบกเปเบเบทเปเบญเบชเบฐเบเบฑเบเบเบฑเปเบเบเปเบฒเบเปเปเบฅเบฐเบเบฑเบเบฅเบญเบเบกเบฑเบเปเบเบปเปเบฒเปเบเปเบเบฎเบนเบเบชเบธเบเบเปเบฒเบ.
เปเบเบทเปเบญเปเบเบเบญเบ JAR เบเบตเปเปเบเปเบฎเบฑเบเบเบปเบเบซเบผเบฑเบเบเบฒเบเบเบฒเบเบเปเปเบชเปเบฒเบเปเบเบเปเบเป Maven เบเบตเปเบกเบตเบเบฒเบเปเบเบตเบเปเบเปเบเบฑเปเบเบเบฐเบกเบตเบฅเบฑเบเบชเบฐเบเบฐเบเบตเป:
META-INF/
.
BOOT-INF/lib/
.
BOOT-INF/lib/spring-boot-jarmode-layertools-2.3.3.RELEASE.jar
BOOT-INF/classpath.idx
BOOT-INF/layers.idx
เบเบปเบเปเบเปเบฎเบฑเบเบชเบฐเปเบเบเปเบซเปเปเบซเบฑเบ JAR เปเบเบตเปเบกเปเบเบตเบกเบเบตเปเบกเบตเบเบทเป spring-boot-jarmode-layertools
ะธ layersfle.idx
เปเบเบฅเป. เปเบเบฅเป JAR เปเบเบตเปเบกเปเบเบตเบกเบเบตเปเบชเบฐเบซเบเบญเบเบเบงเบฒเบกเบชเบฒเบกเบฒเบเปเบเบเบฒเบเบเบฐเบกเบงเบเบเบปเบเบเบฑเปเบ, เบเบฑเปเบเบเบตเปเบญเบฐเบเบดเบเบฒเบเปเบงเปเปเบเบเบฒเบเบเปเปเปเบ.
เบชเบฐเบเบฑเบเบเบฒเบเบเบถเปเบเบเบฑเบเปเบเปเบฅเบฐเบเบฑเปเบ
เปเบเบทเปเบญเปเบเบดเปเบเปเบฅเบฐเบชเบฐเบเบฑเบเบเบฑเปเบเบเปเปเบกเบนเบเบเบฒเบ JAR เบเบฑเปเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ, เบเบงเบเปเบฎเบปเบฒเปเบเปเบเบธเบเบชเบปเบกเบเบฑเบเบเบญเบเบฅเบฐเบเบปเบ -Djarmode=layertools
เบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบฅเบตเปเบกเบเบปเปเบ spring-boot-jarmode-layertools
JAR เปเบเบโเบเบฒเบโเบเปเบฒโเปเบเปโ:
java -Djarmode=layertools -jar target/usersignup-0.0.1-SNAPSHOT.jar
เบเบฒเบเปเบฅเปเบเบเปเบฒเบชเบฑเปเบเบเบตเปเบเบฐเบฅเบดเบเบเบปเบเบเบฐเบฅเบดเบเบเบตเปเบกเบตเบเบปเบงเปเบฅเบทเบญเบเบเปเบฒเบชเบฑเปเบเบเบตเปเบกเบตเบขเบนเป:
Usage:
java -Djarmode=layertools -jar usersignup-0.0.1-SNAPSHOT.jar
Available commands:
list List layers from the jar that can be extracted
extract Extracts layers from the jar for image creation
help Help about any command
เบเบปเบเปเบเปเบฎเบฑเบเบชเบฐเปเบเบเปเบซเปเปเบซเบฑเบเบเปเบฒเบชเบฑเปเบ list
, extract
ะธ help
ั help
เปเบเบฑเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ. เปเบซเปเบเปเบฒเปเบเบตเบเบเบฒเบเบเปเบฒเบชเบฑเปเบเบเบฑเบ list
เบเบฒเบเปเบฅเบทเบญเบ:
java -Djarmode=layertools -jar target/usersignup-0.0.1-SNAPSHOT.jar list
dependencies
spring-boot-loader
snapshot-dependencies
application
เบเบงเบเปเบฎเบปเบฒเปเบเบดเปเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบญเบ dependencies เบเบตเปเบชเบฒเบกเบฒเบเปเบเบตเปเบกเปเบเบฑเบเบเบฑเปเบ.
เบเบฑเปเบเบเปเปเบกเบนเบเปเบฅเบตเปเบกเบเบปเปเบ:
เบเบทเปเบเบฑเปเบ
เปเบเบทเปเบญเปเบ
dependencies
เบเบฒเบเปเบเบดเปเบเบเบฒเบญเบฒเปเบชเปเบเปเบเปเบเบฒเบกเบเบตเปเบชเบฐเบเบฑเบเบเปเปเบกเบต SNAPSHOT
spring-boot-loader
เบซเปเบญเบเบฎเบฝเบ JAR Loader
snapshot-dependencies
เบเบฒเบเปเบเบดเปเบเบเบฒเบญเบฒเปเบชเบญเบฑเบเปเบเบญเบฑเบเปเบถเปเบเบเบตเปเบกเบตเบฅเบธเปเบเบกเบต SNAPSHOT
application
เบซเปเบญเบเบฎเบฝเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเปเบฅเบฐเบเบฑเบเบเบฐเบเบฒเบเบญเบ
เบเบฑเปเบเปเบกเปเบเบเบทเบเบเปเบฒเบเบปเบเปเบงเปเปเบ layers.idx
เปเบเบฅเปเบเบฒเบกเบฅเปเบฒเบเบฑเบเบเบตเปเบเบงเบเปเบเบปเบฒเบเบงเบเบเบฐเบเบทเบเปเบเบตเปเบกเปเบชเปเบฎเบนเบเบเบฒเบ Docker. เบเบฑเปเบเปเบซเบผเบปเปเบฒเบเบตเปเบเบทเบเปเบเบฑเบเปเบงเปเปเบเปเบฎเบเบซเบผเบฑเบเบเบฒเบเบเบฒเบเบเบถเบเบเปเปเบกเบนเบเบเบฑเปเบเบเปเบฒเบญเบดเบเบเปเบญเบเบงเปเบฒเบเบงเบเบกเบฑเบเบเปเปเบเปเบฝเบเปเบเบ. เบเบฝเบเปเบเปเบเบฑเปเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบเบตเปเบเบฑเบเบเบธเบเปเบซเบกเปเปเบเปเบเบทเบเบเบฒเบงเปเบซเบผเบเปเบชเปเปเบฎเบ, เปเบเบดเปเบเปเบงเบเบงเปเบฒเปเบเบทเปเบญเบเบเบฒเบเบเบฐเบซเบเบฒเบเบเบตเปเบซเบผเบธเบเบฅเบปเบ .
เบเบฒเบโเบชเปเบฒเบโเบฎเบนเบโเบเบฒเบโเบเบตเปโเบกเบตโเบเบฒเบโเปเบเบโเบญเบญเบโเปเบเบฑเบโเบเบฑเปเบโเปเบเบโเบเปเบฒเบโเบซเบฒเบโ
เบเบงเบเปเบฎเบปเบฒเบเบฐเบชเปเบฒเบเบฎเบนเบเบเบฒเบเบชเบธเบเบเปเบฒเบเปเบเบชเบญเบเบเบฑเปเบเบเบญเบเปเบเบเปเบเปเบงเบดเบเบตเบเบฒเบเบเบตเปเปเบญเบตเปเบเบงเปเบฒ
เบเปเปเบซเปเบเบฑเบเปเบเป Dockerfile เบเบญเบเบเบงเบเปเบฎเบปเบฒเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเปเปเบชเปเบฒเบเบซเบผเบฒเบเบเบฑเปเบเบเบญเบ:
# the first stage of our build will extract the layers
FROM adoptopenjdk:14-jre-hotspot as builder
WORKDIR application
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} application.jar
RUN java -Djarmode=layertools -jar application.jar extract
# the second stage of our build will copy the extracted layers
FROM adoptopenjdk:14-jre-hotspot
WORKDIR application
COPY --from=builder application/dependencies/ ./
COPY --from=builder application/spring-boot-loader/ ./
COPY --from=builder application/snapshot-dependencies/ ./
COPY --from=builder application/application/ ./
ENTRYPOINT ["java", "org.springframework.boot.loader.JarLauncher"]
เบเบงเบเปเบฎเบปเบฒเบเบฑเบเบเบถเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบตเปเปเบงเปเปเบเปเบเบฅเปเปเบเบเบเปเบฒเบเบซเบฒเบ - Dockerfile2
.
เบเบงเบเปเบฎเบปเบฒเบชเปเบฒเบเบฎเบนเบเบเบฒเบ Docker เปเบเบเปเบเปเบเปเบฒเบชเบฑเปเบ:
docker build -f Dockerfile2 -t usersignup:v1 .
เบซเบผเบฑเบเบเบฒเบเปเบฅเปเบเบเปเบฒเบชเบฑเปเบเบเบตเป, เบเบงเบเปเบฎเบปเบฒเปเบเปเบฎเบฑเบเบเบปเบเปเบเปเบฎเบฑเบเบเบฑเปเบเบเปเปเปเบเบเบตเป:
Sending build context to Docker daemon 20.41MB
Step 1/12 : FROM adoptopenjdk:14-jre-hotspot as builder
14-jre-hotspot: Pulling from library/adoptopenjdk
.
.
Successfully built a9ebf6970841
Successfully tagged userssignup:v1
เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเปเบซเบฑเบเปเบเปเบงเปเบฒเบฎเบนเบเบเบฒเบ Docker เบเบทเบเบชเปเบฒเบเบเบทเปเบเบเปเบงเบ ID เบฎเบนเบเบเบฒเบเปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบทเบ tagged.
เบชเบธเบเบเปเบฒเบ, เบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเบตเบเบเบฒเบเบเปเบฒเบชเบฑเปเบ Dive เบเบทเปเบเบปเปเบฒเปเบเบทเปเบญเบเบงเบเบเบฒเบเบฑเปเบเบเปเบฒเบเปเบเบฒเบเปเบเบฎเบนเบเบเบฒเบ Docker เบเบตเปเบชเปเบฒเบเบเบถเปเบ. เบเบงเบโเปเบฎเบปเบฒโเบชเบฒโเบกเบฒเบโเบชเบฐโเบซเบเบญเบ ID เบฎเบนเบโเบเบฒเบโเบซเบผเบทโเปเบเบโเบเปเบฒโเบชเบฑเปเบโเปเบเบฑเบโเบเบฒเบโเบเปเบญเบโเบเปเปโเบกเบนเบโเบเบฑเบโเบเปเบฒโเบชเบฑเปเบ Diveโ:
dive userssignup:v1
เบเบฑเปเบเบเบตเปเปเบเบปเปเบฒเบชเบฒเบกเบฒเบเปเบซเบฑเบเปเบเปเปเบเบเบปเบเปเบเปเบฎเบฑเบ, เบเบฑเปเบเบเบตเปเบกเบตเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเปเบกเปเบเบเบฝเบเปเบเป 11 KB, เปเบฅเบฐเบเบงเบฒเบกเปเบเบดเปเบเบเบฒเบญเบฒเปเบชเบเบฐเบเบทเบเปเบเบฑเบเปเบงเปเปเบเบเบฑเปเบเปเบเบเบเปเบฒเบเบซเบฒเบ.
เบชเบฐเบเบฑเบเบเบฒเบเบเบถเปเบเบเบฑเบเบเบฒเบเปเบเบเบญเบเปเบเปเบฅเบฐเบเบฑเปเบ
เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเบซเบผเบธเบเบเปเบญเบเบเบฐเบซเบเบฒเบเบเบญเบเบฅเบฐเบเบฑเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเปเบเบเบเบฒเบเบชเบฐเบเบฑเบเปเบญเบปเบฒเบเบฒเบเปเบเบดเปเบเบเบฒเบญเบฒเปเบชเปเบเบเบเปเบฒเบเบปเบเปเบญเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบเบปเปเบฒเปเบเปเบเบเบฑเปเบเปเบเบเบเปเบฒเบเบซเบฒเบเปเบเบเบเบตเปเบเบฐเบซเบธเปเบกเบซเปเปเปเบซเปเปเบเบปเบฒเปเบเบปเปเบฒเบเบฑเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเปเบเบเบเบฒเบเบเบฐเบเบฒเบเปเบซเปเบเบงเบเปเบเบปเบฒเบขเบนเปเปเบ yml
เปเบเบฅเปเบเบตเปเบเปเบฒเบเบเบทเบเบฑเบเบเบตเปเบกเบตเบเบทเป layers.idx
:
- "dependencies":
- "BOOT-INF/lib/"
- "spring-boot-loader":
- "org/"
- "snapshot-dependencies":
- "custom-dependencies":
- "io/myorg/"
- "application":
- "BOOT-INF/classes/"
- "BOOT-INF/classpath.idx"
- "BOOT-INF/layers.idx"
- "META-INF/"
เปเบเปเบเบฅเปเบเบตเป layers.idx
เบเบงเบเปเบฎเบปเบฒเปเบเปเปเบเบตเปเบกเบเบฒเบเปเบเบดเปเบเบเบฒเบญเบฒเปเบชเปเบเบเบเบณเบเบปเบเปเบญเบเบเบตเปเบกเบตเบเบทเปเบงเปเบฒ, io.myorg
เบเบฐเบเบญเบเบเปเบงเบเบเบฒเบเบเบถเปเบเบเบฑเบเบญเบปเบเบเบญเบเบเบตเปเบเบถเบเบกเบฒเบเบฒเบเบเปเบญเบเปเบเบฑเบเบเปเปเบกเบนเบเบฎเปเบงเบกเบเบฑเบ.
เบชเบฐเบซเบฅเบธเบ
เปเบเบเบปเบเบเบงเบฒเบกเบเบตเป, เบเบงเบเปเบฎเบปเบฒเปเบเปเปเบเบดเปเบเบเบฒเบเปเบเป Cloud-Native Buildpacks เปเบเบทเปเบญเบชเปเบฒเบเบฎเบนเบเบเบฒเบเบเบฑเบเบเบธเปเบเบเบเบปเบเบเบฒเบเบฅเบฐเบซเบฑเบเปเบซเบผเปเบ. เบเบตเปเปเบกเปเบเบเบฒเบเปเบฅเบทเบญเบเบเบตเปเบเบฐเปเบเป Docker เปเบเบทเปเบญเบชเปเบฒเบเบฎเบนเบเบเบฒเบเบเบนเปเบเบญเบเปเบเบเปเบเบตเปเบเปเบเบเบเบปเบเบเบฐเบเบด: เบเปเบฒเบญเบดเบเบชเปเบฒเบเปเบเบฅเป JAR เบเบตเปเบชเบฒเบกเบฒเบเบเบฐเบเบดเบเบฑเบเปเบเปเบซเบเบฒเปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบฑเบเบเบธเบกเบฑเบเปเบเบปเปเบฒเปเบเปเบเบฎเบนเบเบเบฒเบเบเบฑเบเบเบธเปเบเบเบเบฒเบเบฅเบฐเบเบธเบเปเบฒเปเบเบฐเบเปเบฒเปเบเปเบเบฅเป Docker.
เบเบงเบเปเบฎเบปเบฒเบเบฑเบเปเบเปเปเบเบดเปเบเบเบฒเบเปเบเบตเปเบกเบเบฐเบชเบดเบเบเบดเบเบฒเบเบเบฒเบเบฐเบเบฐเบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบเบเบเบฒเบเปเบเบตเบเปเบเปเบเบธเบเบเบฐเบชเบปเบกเบเบฑเบเบเบฑเปเบเบเบตเปเบเบถเบเบเบงเบฒเบกเปเบเบดเปเบเบเบฒเบญเบฒเปเบชเปเบเบปเปเบฒเปเบเปเบเบเบฑเปเบเปเบเบเบเปเบฒเบเบซเบฒเบเบเบตเปเบเบทเบเปเบเบฑเบเปเบงเปเปเบเปเบฎเบเปเบฅเบฐเบเบฑเปเบเบเบฒเบเปเบเบญเบเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเบเบทเบเปเบซเบฅเบเปเบเปเบงเบฅเบฒเบเปเบฒเบเบปเบเปเบงเบฅเบฒเปเบเปเบเบทเปเบญเบเบเบฑเบเบเบฐเบเบดเบเบฑเบเบเบญเบเบเบฑเบ.
เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบญเบเบซเบฒเบฅเบฐเบซเบฑเบเปเบซเบผเปเบเบเบฑเบเบซเบกเบปเบเบเบตเปเปเบเปเปเบเบเบปเบเบเบงเบฒเบกเบขเบนเปเบเบตเป
เบเปเบฒเบชเบฑเปเบเบญเปเบฒเบเบญเบตเบ
เบเบตเปเปเบกเปเบเบชเบฐเบซเบผเบธเบเบซเบเปเปเบเบญเบเบเปเบฒเบชเบฑเปเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเปเบเปเปเบเบเบปเบเบเบงเบฒเบกเบเบตเป.
เบเบฒเบเบฅเบถเบเบฅเปเบฒเบเบเปเบฅเบดเบเบปเบ:
docker system prune -a
เบเบฒเบเบชเปเบฒเบเบฎเบนเบเบเบฒเบเบเบฑเบเบเบธเปเบเบเปเบเปเปเบเบฅเป Docker:
docker build -f <Docker file name> -t <tag> .
เบเบงเบเปเบฎเบปเบฒเบชเปเบฒเบเบฎเบนเบเบเบฒเบเบเบฑเบเบเบธเบเบฒเบเบฅเบฐเบซเบฑเบเปเบซเบผเปเบ (เปเบเบเบเปเปเบกเบต Dockerfile):
mvn spring-boot:build-image
เปเบเบดเปเบเบเบฑเปเบเบเบฒเบเปเบเบดเปเบเบเบฒเบญเบฒเปเบช. เบเปเบญเบเบเบตเปเบเบฐเบชเปเบฒเบเปเบเบฅเป JAR เปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบ, เปเบซเปเปเบเปเปเบเบงเปเบฒเบฅเบฑเบเบชเบฐเบเบฐเบเบฒเบเบงเบฒเบเปเบเปเบเบทเบเปเบเบตเบเปเบเปเปเบ spring-boot-maven-plugin:
java -Djarmode=layertools -jar application.jar list
เบชเบฐเบเบฑเบเบเบฑเปเบเบเบฒเบเปเบเบดเปเบเบเบฒเบญเบฒเปเบช. เบเปเบญเบเบเบตเปเบเบฐเบชเปเบฒเบเปเบเบฅเป JAR เปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบ, เปเบซเปเปเบเปเปเบเบงเปเบฒเบฅเบฑเบเบชเบฐเบเบฐเบเบฒเบเบงเบฒเบเปเบเปเบเบทเบเปเบเบตเบเปเบเปเปเบ spring-boot-maven-plugin:
java -Djarmode=layertools -jar application.jar extract
เปเบเบดเปเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบญเบเบฎเบนเบเบเบฒเบเบเบฑเบเบเบธ
docker images
เปเบเบดเปเบเบเบฒเบเบเปเบฒเบเบเบฒเบเปเบเบฎเบนเบเบเบนเปเบเบญเบเปเบเบเปเบเบต (เปเบซเปเปเบเปเปเบเบงเปเบฒเบกเบตเบเบฒเบเบเบดเบเบเบฑเปเบเปเบเบทเปเบญเบเบกเบทเบเปเบฒเบเปเปเบฒ):
dive <image ID or image tag>
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com