āĻāĻ¨āĻā§āĻāĻ¨āĻžāĻ°āĻā§āĻ˛āĻŋ āĻāĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻā§ āĻāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸āĻĢā§āĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻāĻŦāĻ āĻ āĻĒāĻžāĻ°ā§āĻāĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¤āĻž āĻ¸āĻš āĻĒā§āĻ¯āĻžāĻā§āĻāĻŋāĻ āĻāĻ°āĻžāĻ° āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ° āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻĒāĻ°āĻŋāĻŦā§āĻļā§ āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻāĻ°āĻžāĻ° āĻĒāĻāĻ¨ā§āĻĻā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽ āĻšāĻ¯āĻŧā§ āĻāĻ ā§āĻā§āĨ¤
āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻāĻŋ āĻāĻāĻāĻŋ āĻ¸ā§āĻĒā§āĻ°āĻŋāĻ āĻŦā§āĻ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ°āĻžāĻāĻ āĻāĻ°āĻžāĻ° āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻāĻĒāĻžāĻ¯āĻŧ āĻāĻāĻžāĻ° āĻāĻ°ā§:
- āĻāĻāĻāĻŋ āĻĄāĻāĻžāĻ°āĻĢāĻžāĻāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻĄāĻāĻžāĻ° āĻāĻŽā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž,
- āĻā§āĻ˛āĻžāĻāĻĄ-āĻ¨ā§āĻāĻŋāĻ āĻŦāĻŋāĻ˛ā§āĻĄāĻĒā§āĻ¯āĻžāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻā§āĻ¸ āĻĨā§āĻā§ āĻāĻāĻāĻŋ OCI āĻāĻŽā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž,
- āĻāĻŦāĻ āĻ¸ā§āĻ¤āĻ°āĻ¯ā§āĻā§āĻ¤ āĻ¸āĻ°āĻā§āĻāĻžāĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ JAR āĻ āĻāĻļāĻā§āĻ˛āĻŋāĻā§ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ¸ā§āĻ¤āĻ°ā§ āĻāĻ˛āĻžāĻĻāĻž āĻāĻ°ā§ āĻ°āĻžāĻ¨āĻāĻžāĻāĻŽā§ āĻāĻŽā§āĻ āĻ āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻā§āĻļāĻ¨āĨ¤
āĻā§āĻĄ āĻāĻĻāĻžāĻšāĻ°āĻŖ
āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻāĻŋ āĻāĻāĻāĻŋ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°ā§ āĻā§āĻĄ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ
āĻ¨ā§āĻˇāĻā§āĻā§ āĻšāĻ¯āĻŧ
āĻ§āĻžāĻ°āĻ āĻĒāĻ°āĻŋāĻāĻžāĻˇāĻž
āĻāĻŽāĻ°āĻž āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ āĻā§āĻĄāĻŧā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻĒāĻ°āĻŋāĻāĻžāĻˇāĻž āĻĻāĻŋāĻ¯āĻŧā§ āĻļā§āĻ°ā§ āĻāĻ°āĻŦ:
- āĻ§āĻžāĻ°āĻ āĻāĻŽā§āĻ: āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ā§āĻ° āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻ˛āĨ¤ āĻāĻŽāĻ°āĻž āĻŦāĻŋāĻ˛ā§āĻĄ āĻā§āĻ˛ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋāĻā§ āĻāĻāĻāĻŋ āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻāĻŽā§āĻā§ āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°āĻŋāĨ¤
- āĻāĻ§āĻžāĻ°: āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻāĻŽā§āĻā§āĻ° āĻāĻāĻāĻŋ āĻāĻā§āĻ¸āĻŋāĻāĻŋāĻāĻā§āĻŦāĻ˛ āĻāĻ¨āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻ¸āĨ¤
- āĻ§āĻžāĻ°āĻ āĻāĻā§āĻāĻŋāĻ¨: āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĻāĻžāĻ¯āĻŧā§ āĻĄā§āĻŽāĻ¨ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĨ¤
- āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻšā§āĻ¸ā§āĻ: āĻšā§āĻ¸ā§āĻ āĻŽā§āĻļāĻŋāĻ¨ āĻ¯āĻžāĻ° āĻāĻĒāĻ° āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻāĻā§āĻāĻŋāĻ¨ āĻāĻ˛āĻā§āĨ¤
- āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻ°ā§āĻāĻŋāĻ¸ā§āĻā§āĻ°āĻŋ: āĻ§āĻžāĻ°āĻ āĻāĻŋāĻ¤ā§āĻ° āĻĒā§āĻ°āĻāĻžāĻļ āĻāĻŦāĻ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ¨āĨ¤
- āĻāĻ¸āĻŋāĻāĻ āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ:
āĻāĻĒā§āĻ¨ āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻāĻ¨āĻŋāĻļāĻŋāĻ¯āĻŧā§āĻāĻŋāĻ (āĻāĻ¸āĻŋāĻāĻ) āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸ āĻĢāĻžāĻāĻ¨ā§āĻĄā§āĻļāĻ¨ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻ āĻŋāĻ¤ āĻāĻāĻāĻŋ āĻšāĻžāĻ˛āĻāĻž, āĻāĻĒā§āĻ¨-āĻ¸ā§āĻ°ā§āĻ¸ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻāĻŽā§āĻ¨ā§āĻ āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻāĨ¤ OCI āĻāĻŽā§āĻ āĻ¸ā§āĻĒā§āĻ¸āĻŋāĻĢāĻŋāĻā§āĻļāĻ¨ āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻāĻŽā§āĻ āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻ āĻāĻŦāĻ āĻ°āĻžāĻ¨āĻāĻžāĻāĻŽā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ¨ā§āĻĄāĻžāĻ¸ā§āĻā§āĻ°āĻŋ āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°ā§ āĻ¯āĻžāĻ¤ā§ āĻ¸āĻŦ āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻāĻā§āĻāĻŋāĻ¨ āĻ¯ā§āĻā§āĻ¨ā§ āĻŦāĻŋāĻ˛ā§āĻĄ āĻā§āĻ˛ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻāĻŽā§āĻ āĻāĻžāĻ˛āĻžāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻāĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ°āĻžāĻāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋāĻā§ āĻāĻāĻāĻŋ āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻāĻŦāĻŋāĻ¤ā§ āĻŽā§āĻĄāĻŧā§ āĻĻāĻŋāĻ āĻāĻŦāĻ āĻ¸ā§āĻ āĻāĻŦāĻŋāĻāĻŋāĻā§ āĻĒāĻžāĻŦāĻ˛āĻŋāĻ āĻ°ā§āĻāĻŋāĻ¸ā§āĻā§āĻ°āĻŋāĻ¤ā§ āĻĒā§āĻ°āĻāĻžāĻļ āĻāĻ°āĻŋāĨ¤ āĻāĻ¨āĻā§āĻāĻ¨āĻžāĻ° āĻ°āĻžāĻ¨āĻāĻžāĻāĻŽ āĻ°ā§āĻāĻŋāĻ¸ā§āĻā§āĻ°āĻŋ āĻĨā§āĻā§ āĻāĻ āĻāĻŋāĻ¤ā§āĻ°āĻāĻŋ āĻĒā§āĻ¨āĻ°ā§āĻĻā§āĻ§āĻžāĻ° āĻāĻ°ā§, āĻāĻāĻŋ āĻāĻ¨āĻĒā§āĻ¯āĻžāĻ āĻāĻ°ā§ āĻāĻŦāĻ āĻāĻāĻŋāĻ° āĻāĻŋāĻ¤āĻ°ā§ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋ āĻāĻžāĻ˛āĻžāĻ¯āĻŧāĨ¤
āĻ¸ā§āĻĒā§āĻ°āĻŋāĻ āĻŦā§āĻā§āĻ° āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ 2.3 OCI āĻāĻŽā§āĻ āĻ¤ā§āĻ°āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ˛āĻžāĻāĻāĻ¨ āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻāĻ°ā§āĨ¤
āĻāĻ¤āĻŋāĻšā§āĻ¯āĻāĻ¤ āĻāĻĒāĻžāĻ¯āĻŧā§ āĻāĻāĻāĻŋ āĻ§āĻžāĻ°āĻ āĻāĻŽā§āĻ āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖ
āĻ¸ā§āĻĒā§āĻ°āĻŋāĻ āĻŦā§āĻ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻāĻžāĻ° āĻāĻŽā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻāĻĒāĻ¨āĻžāĻ° āĻĄāĻāĻžāĻ°āĻĢāĻžāĻāĻ˛ā§ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻ¨āĻž āĻ¯ā§āĻ āĻāĻ°ā§ āĻā§āĻŦ āĻ¸āĻšāĻāĨ¤
āĻāĻŽāĻ°āĻž āĻĒā§āĻ°āĻĨāĻŽā§ āĻāĻāĻāĻŋ āĻāĻā§āĻ¸āĻŋāĻāĻŋāĻāĻā§āĻŦāĻ˛ JAR āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŋ āĻāĻŦāĻ āĻĄāĻāĻžāĻ°āĻĢāĻžāĻāĻ˛ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻžāĻŦāĻ˛ā§āĻ° āĻ āĻāĻļ āĻšāĻŋāĻ¸āĻžāĻŦā§, āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻāĻžāĻ¸ā§āĻāĻŽāĻžāĻāĻā§āĻļāĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§ āĻŦā§āĻ¸ JRE āĻāĻŽā§āĻā§āĻ° āĻāĻĒāĻ°ā§ āĻāĻā§āĻ¸āĻŋāĻāĻŋāĻāĻā§āĻŦāĻ˛ JAR āĻāĻĒāĻŋ āĻāĻ°āĻŋāĨ¤
āĻāĻŽāĻžāĻĻā§āĻ° āĻŦāĻ¸āĻ¨ā§āĻ¤ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻ¯āĻžāĻ web
, lombok
и actuator
. āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ API āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻŦāĻŋāĻļā§āĻ°āĻžāĻŽ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻ āĻ¯ā§āĻ āĻāĻ°āĻŋ GET
āĻĒāĻĻā§āĻ§āĻ¤āĻŋ
āĻāĻāĻāĻŋ āĻĄāĻāĻžāĻ°āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻā§āĻā§
āĻāĻŽāĻ°āĻž āĻ¤āĻžāĻ°āĻĒāĻ° āĻ¯ā§āĻ āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻĒāĻžāĻ¤ā§āĻ°ā§ āĻāĻ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻ°āĻžāĻā§āĻ¨ Dockerfile
:
FROM adoptopenjdk:11-jre-hotspot
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} application.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","/application.jar"]
āĻāĻŽāĻžāĻĻā§āĻ° āĻĄāĻāĻžāĻ°āĻĢāĻžāĻāĻ˛ āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻŦā§āĻ¸ āĻāĻŽā§āĻ āĻ°āĻ¯āĻŧā§āĻā§ adoptopenjdk
, āĻ¯āĻžāĻ° āĻāĻĒāĻ°ā§ āĻāĻŽāĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ° JAR āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻ
āĻ¨ā§āĻ˛āĻŋāĻĒāĻŋ āĻāĻ°āĻŋ āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ° āĻĒā§āĻ°ā§āĻ āĻā§āĻ˛āĻŋ, 8080
āĻ¯āĻž āĻ
āĻ¨ā§āĻ°ā§āĻ§ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻļā§āĻ¨āĻŦā§āĨ¤
āĻāĻŦā§āĻĻāĻ¨ āĻ¸āĻŽāĻžāĻŦā§āĻļ
āĻĒā§āĻ°āĻĨāĻŽā§ āĻāĻĒāĻ¨āĻžāĻā§ Maven āĻŦāĻž Gradle āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻāĻžāĻ¨ā§ āĻāĻŽāĻ°āĻž Maven āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻāĻŋ:
mvn clean package
āĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻāĻā§āĻ¸āĻŋāĻāĻŋāĻāĻā§āĻŦāĻ˛ JAR āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĨ¤ āĻĄāĻāĻžāĻ° āĻāĻā§āĻāĻŋāĻ¨ā§ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻ āĻāĻā§āĻ¸āĻŋāĻāĻŋāĻāĻā§āĻŦāĻ˛ JAR āĻā§ āĻāĻāĻāĻŋ āĻĄāĻāĻžāĻ° āĻāĻŽā§āĻā§ āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤
āĻāĻāĻāĻŋ āĻ§āĻžāĻ°āĻ āĻāĻŽā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨
āĻāĻŽāĻ°āĻž āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻ JAR āĻāĻā§āĻ¸āĻŋāĻāĻŋāĻāĻā§āĻŦāĻ˛ āĻĄāĻāĻžāĻ° āĻāĻŽā§āĻā§ āĻ°āĻžāĻāĻŋ docker build
āĻāĻā§ āĻ¤ā§āĻ°āĻŋ āĻĄāĻāĻžāĻ°āĻĢāĻžāĻāĻ˛ āĻ§āĻžāĻ°āĻŖāĻāĻžāĻ°ā§ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§āĻ° āĻ°ā§āĻ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻĨā§āĻā§:
docker build -t usersignup:v1 .
āĻāĻŽāĻ°āĻž āĻāĻŽāĻžāĻ¨ā§āĻĄā§āĻ° āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ā§ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ¯āĻŧ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻŋāĻ¤ā§āĻ° āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻ°āĻŋ:
docker images
āĻāĻĒāĻ°ā§āĻ° āĻāĻŽāĻžāĻ¨ā§āĻĄā§āĻ° āĻāĻāĻāĻĒā§āĻ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻŽā§āĻ āĻ
āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ usersignup
āĻŦā§āĻ¸ āĻāĻŽā§āĻ āĻ¸āĻš, adoptopenjdk
āĻāĻŽāĻžāĻĻā§āĻ° āĻĄāĻāĻžāĻ°āĻĢāĻžāĻāĻ˛ā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
REPOSITORY TAG SIZE
usersignup v1 249MB
adoptopenjdk 11-jre-hotspot 229MB
āĻāĻāĻāĻŋ āĻ§āĻžāĻ°āĻ āĻāĻŽā§āĻ āĻāĻŋāĻ¤āĻ°ā§ āĻ¸ā§āĻ¤āĻ° āĻĻā§āĻā§āĻ¨
āĻāĻ¸ā§āĻ¨ āĻāĻŋāĻ¤ā§āĻ°ā§āĻ° āĻāĻŋāĻ¤āĻ°ā§ āĻ¸ā§āĻ¤āĻ°āĻā§āĻ˛āĻŋāĻ° āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻāĻŋ āĻĻā§āĻāĻŋāĨ¤ āĻāĻŽāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦā§
dive usersignup:v1
āĻāĻāĻžāĻ¨ā§ āĻĄāĻžāĻāĻ āĻāĻŽāĻžāĻ¨ā§āĻĄā§āĻ° āĻāĻāĻāĻĒā§āĻ āĻ āĻāĻļ:
āĻāĻŽāĻ°āĻž āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻā§āĻāĻŋ, āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻ¸ā§āĻ¤āĻ°āĻāĻŋ āĻāĻŦāĻŋāĻ° āĻāĻāĻžāĻ°ā§āĻ° āĻāĻāĻāĻŋ āĻāĻ˛ā§āĻ˛ā§āĻāĻ¯ā§āĻā§āĻ¯ āĻ āĻāĻļ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĨ¤ āĻāĻŽāĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻ āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻā§āĻļāĻ¨ā§āĻ° āĻ āĻāĻļ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻŦāĻŋāĻāĻžāĻā§ āĻāĻ āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻāĻāĻžāĻ° āĻāĻŽāĻžāĻ¤ā§ āĻāĻžāĻāĨ¤
āĻŦāĻŋāĻ˛ā§āĻĄāĻĒā§āĻ¯āĻžāĻ āĻĻāĻŋāĻ¯āĻŧā§ āĻāĻāĻāĻŋ āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻāĻŽā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž
āĻā§āĻ˛āĻžāĻāĻĄ āĻŦāĻŋāĻ˛ā§āĻĄ āĻĒā§āĻ¯āĻžāĻā§āĻā§āĻ° āĻ¸ā§āĻŦāĻŋāĻ§āĻž
āĻāĻŽā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ Buildpack āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻšāĻ˛ āĻ¯ā§ āĻāĻŽā§āĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻā§āĻ¨ā§āĻĻā§āĻ°ā§āĻ¯āĻŧāĻāĻžāĻŦā§ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ (āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻ¤āĻž) āĻāĻŦāĻ āĻŦāĻŋāĻ˛ā§āĻĄāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§ āĻĒā§āĻ°āĻāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻŦāĻŋāĻ˛ā§āĻĄ āĻĒā§āĻ¯āĻžāĻā§āĻāĻā§āĻ˛āĻŋ āĻĒā§āĻ˛ā§āĻ¯āĻžāĻāĻĢāĻ°ā§āĻŽā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻ¨āĻŋāĻˇā§āĻ āĻāĻžāĻŦā§ āĻāĻŦāĻĻā§āĻ§ āĻāĻŋāĻ˛āĨ¤ āĻā§āĻ˛āĻžāĻāĻĄ-āĻ¨ā§āĻāĻŋāĻ āĻŦāĻŋāĻ˛ā§āĻĄāĻĒā§āĻ¯āĻžāĻāĻā§āĻ˛āĻŋ āĻāĻ¸āĻŋāĻāĻ āĻāĻŽā§āĻ āĻĢāĻ°ā§āĻŽā§āĻ¯āĻžāĻāĻā§ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻ°ā§ āĻĒā§āĻ˛ā§āĻ¯āĻžāĻāĻĢāĻ°ā§āĻŽ āĻā§āĻĄāĻŧā§ āĻŽāĻžāĻ¨āĻāĻāĻ°āĻŖ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§, āĻ¯āĻž āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°ā§ āĻ¯ā§ āĻāĻŦāĻŋāĻāĻŋ āĻĄāĻāĻžāĻ° āĻāĻā§āĻāĻŋāĻ¨ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻ¸ā§āĻĒā§āĻ°āĻŋāĻ āĻŦā§āĻ āĻĒā§āĻ˛āĻžāĻāĻāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§
āĻ¸ā§āĻĒā§āĻ°āĻŋāĻ āĻŦā§āĻ āĻĒā§āĻ˛āĻžāĻāĻāĻ¨ āĻŦāĻŋāĻ˛ā§āĻĄāĻĒā§āĻ¯āĻžāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻā§āĻ¸ āĻĨā§āĻā§ OCI āĻāĻŦāĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĨ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻŦāĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ bootBuildImage
āĻāĻžāĻ (āĻā§āĻ°ā§āĻĄāĻ˛) āĻŦāĻž spring-boot:build-image
āĻ˛āĻā§āĻˇā§āĻ¯ (Maven) āĻāĻŦāĻ āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ āĻĄāĻāĻžāĻ° āĻāĻ¨āĻ¸ā§āĻāĻ˛ā§āĻļāĻ¨āĨ¤
āĻāĻŽāĻ°āĻž āĻ¨āĻžāĻŽ āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°ā§ āĻĄāĻāĻžāĻ° āĻ°ā§āĻāĻŋāĻ¸ā§āĻā§āĻ°āĻŋāĻ¤ā§ āĻ¯ā§ āĻāĻŦāĻŋāĻāĻŋ āĻĒā§āĻļ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¤āĻžāĻ° āĻ¨āĻžāĻŽ āĻāĻžāĻ¸ā§āĻāĻŽāĻžāĻāĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ 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
āĻāĻāĻāĻŋ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻ§āĻžāĻ°āĻ āĻāĻŽā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻ˛āĻā§āĻˇā§āĻ¯āĨ¤ āĻāĻŽāĻ°āĻž āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§ āĻā§āĻ¨ā§ āĻĄāĻāĻžāĻ°āĻĢāĻžāĻāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻāĻŋ āĻ¨āĻžāĨ¤
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 images
āĻāĻĒāĻ¸āĻāĻšāĻžāĻ°:
REPOSITORY SIZE
paketobuildpacks/run 84.3MB
gcr.io/paketo-buildpacks/builder 652MB
pratikdas/usersignup 257MB
āĻāĻŋāĻŦā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ āĻ§āĻžāĻ°āĻ āĻāĻŋāĻ¤ā§āĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž
āĻāĻŋāĻŦ āĻšāĻ˛ āĻā§āĻāĻ˛ā§āĻ° āĻāĻāĻāĻŋ āĻāĻŽā§āĻ āĻ āĻĨāĻ°āĻŋāĻ āĻĒā§āĻ˛āĻžāĻāĻāĻ¨ āĻ¯āĻž āĻā§āĻ¸ āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻāĻŽā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§āĨ¤
āĻāĻžāĻ¸ā§āĻāĻŽāĻžāĻāĻ jib-maven-plugin
pom.xml āĻ:
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<version>2.5.2</version>
</plugin>
āĻāĻ° āĻĒāĻ°ā§, āĻāĻŽāĻ°āĻž āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻāĻŦāĻ āĻ§āĻžāĻ°āĻ āĻāĻŋāĻ¤ā§āĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ Maven āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻŋāĻŦ āĻĒā§āĻ˛āĻžāĻāĻāĻ¨ āĻāĻžāĻ˛āĻžāĻāĨ¤ āĻāĻā§āĻ° āĻŽāĻ¤ā§, āĻāĻŽāĻ°āĻž āĻāĻāĻžāĻ¨ā§ āĻā§āĻ¨ā§ āĻĄāĻāĻžāĻ°āĻĢāĻžāĻāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻāĻŋ āĻ¨āĻž:
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
āĻāĻāĻāĻĒā§āĻ āĻĻā§āĻāĻžāĻ¯āĻŧ āĻ¯ā§ āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻāĻŽā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ āĻ°ā§āĻāĻŋāĻ¸ā§āĻā§āĻ°āĻŋāĻ¤ā§ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
āĻ āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻāĻĄ āĻāĻŽā§āĻ āĻ¤ā§āĻ°āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻ¨ā§āĻĒā§āĻ°ā§āĻ°āĻŖāĻž āĻāĻŦāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ
āĻ āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻžāĻĻā§āĻ° āĻĻā§āĻāĻŋ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻāĻžāĻ°āĻŖ āĻ°āĻ¯āĻŧā§āĻā§:
- āĻā§āĻĒāĻžāĻĻāĻ¨āĻļā§āĻ˛āĻ¤āĻž: āĻāĻāĻāĻŋ āĻ§āĻžāĻ°āĻ āĻ āĻ°ā§āĻā§āĻ¸ā§āĻā§āĻ°ā§āĻļāĻ¨ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§, āĻāĻāĻāĻŋ āĻ§āĻžāĻ°āĻ āĻāĻŽā§āĻ āĻāĻŽā§āĻ āĻ°ā§āĻāĻŋāĻ¸ā§āĻā§āĻ°āĻŋ āĻĨā§āĻā§ āĻ§āĻžāĻ°āĻ āĻāĻā§āĻāĻŋāĻ¨ āĻāĻžāĻ˛āĻŋāĻ¤ āĻšā§āĻ¸ā§āĻā§ āĻāĻžāĻ¨āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻŋāĻā§ āĻĒāĻ°āĻŋāĻāĻ˛ā§āĻĒāĻ¨āĻž āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧāĨ¤ āĻ°ā§āĻāĻŋāĻ¸ā§āĻā§āĻ°āĻŋ āĻĨā§āĻā§ āĻŦāĻĄāĻŧ āĻāĻŦāĻŋ āĻ¤ā§āĻ˛āĻžāĻ° āĻĢāĻ˛ā§ āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻ āĻ°ā§āĻā§āĻ¸ā§āĻā§āĻ°ā§āĻļāĻ¨ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ āĻĻā§āĻ°ā§āĻ āĻ¸āĻŽāĻ¯āĻŧ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ CI āĻĒāĻžāĻāĻĒāĻ˛āĻžāĻāĻ¨ā§ āĻĻā§āĻ°ā§āĻ āĻ¸āĻŽāĻ¯āĻŧ āĻ¤ā§āĻ°āĻŋ āĻšāĻ¯āĻŧāĨ¤
- āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž: āĻŦāĻĄāĻŧ āĻāĻŽā§āĻāĻā§āĻ˛āĻŋāĻ°āĻ āĻĻā§āĻ°ā§āĻŦāĻ˛āĻ¤āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻŦāĻĄāĻŧ āĻā§āĻˇā§āĻ¤ā§āĻ° āĻ°āĻ¯āĻŧā§āĻā§ā§ˇ
āĻāĻāĻāĻŋ āĻĄāĻāĻžāĻ° āĻāĻŽā§āĻ āĻ¸ā§āĻ¤āĻ°āĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ¯āĻžāĻ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻ āĻŋāĻ¤, āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻāĻŽāĻžāĻĻā§āĻ° āĻĄāĻāĻžāĻ°āĻĢāĻžāĻāĻ˛ā§ āĻāĻāĻāĻŋ āĻŦāĻŋāĻŦā§āĻ¤āĻŋ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°ā§āĨ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ¸ā§āĻ¤āĻ° āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§āĻ° āĻĄā§āĻ˛ā§āĻāĻž āĻĒā§āĻ°āĻ¤āĻŋāĻ¨āĻŋāĻ§āĻŋāĻ¤ā§āĻŦ āĻāĻ°ā§āĨ¤ āĻ¯āĻāĻ¨ āĻāĻŽāĻ°āĻž āĻ°ā§āĻāĻŋāĻ¸ā§āĻā§āĻ°āĻŋ āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻĄāĻāĻžāĻ° āĻāĻŽā§āĻ āĻā§āĻ¨ā§ āĻ¨āĻŋāĻ, āĻ¤āĻāĻ¨ āĻāĻāĻŋ āĻ˛ā§āĻ¯āĻŧāĻžāĻ°ā§ āĻāĻžāĻ¨āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻšā§āĻ¸ā§āĻā§ āĻā§āĻ¯āĻžāĻļā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
āĻ¸ā§āĻĒā§āĻ°āĻŋāĻ āĻŦā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§
āĻ āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻā§āĻļāĻžāĻ¨ āĻ¸ā§āĻ¤ā§āĻ°āĻāĻŋ āĻ¸ā§āĻĒā§āĻ°āĻŋāĻ āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¤āĻž āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻ āĻ¸ā§āĻ¤āĻ°ā§ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋāĻā§ āĻŦāĻŋāĻā§āĻāĻŋāĻ¨ā§āĻ¨ āĻāĻ°āĻžāĻ° āĻāĻžāĻ°āĻĒāĻžāĻļā§ āĻā§āĻ¨ā§āĻĻā§āĻ°ā§āĻā§āĻ¤āĨ¤
āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¤āĻž āĻ¸ā§āĻ¤āĻ° āĻ¯āĻž āĻŽā§āĻāĻž JAR āĻĢāĻžāĻāĻ˛ā§āĻ° āĻŦāĻžāĻ˛ā§āĻ āĻāĻ āĻ¨ āĻāĻ°ā§ āĻ¤āĻž āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻāĻŦāĻžāĻ° āĻĄāĻžāĻāĻ¨āĻ˛ā§āĻĄ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻšā§āĻ¸ā§āĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ āĻā§āĻ¯āĻžāĻļā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
āĻ ā§āĻ¯āĻžāĻĒ āĻāĻĒāĻĄā§āĻ āĻāĻŦāĻ āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻļāĻŋāĻĄāĻŋāĻāĻ˛āĻŋāĻāĻ¯āĻŧā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ ā§āĻ¯āĻžāĻĒāĻāĻŋāĻ° āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻāĻāĻŋ āĻĒāĻžāĻ¤āĻ˛āĻž āĻ¸ā§āĻ¤āĻ° āĻāĻžāĻ¨āĻž āĻšāĻ¯āĻŧ, āĻāĻ āĻĄāĻžāĻ¯āĻŧāĻžāĻā§āĻ°āĻžāĻŽā§ āĻĻā§āĻāĻžāĻ¨ā§ āĻšāĻ¯āĻŧā§āĻā§:
āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻŦāĻŋāĻāĻžāĻāĻā§āĻ˛āĻŋāĻ¤ā§, āĻāĻŽāĻ°āĻž āĻ¸ā§āĻĒā§āĻ°āĻŋāĻ āĻŦā§āĻ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ āĻ āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻ āĻāĻ°āĻž āĻāĻŋāĻ¤ā§āĻ°āĻā§āĻ˛āĻŋ āĻā§āĻāĻžāĻŦā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦ āĻ¤āĻž āĻĻā§āĻāĻŦāĨ¤
āĻŦāĻŋāĻ˛ā§āĻĄāĻĒā§āĻ¯āĻžāĻ āĻ¸āĻš āĻāĻāĻāĻŋ āĻ¸ā§āĻĒā§āĻ°āĻŋāĻ āĻŦā§āĻ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻāĻĄ āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻāĻŽā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž
āĻ¸ā§āĻĒā§āĻ°āĻŋāĻ āĻŦā§āĻ 2.3 āĻāĻāĻāĻŋ āĻĒā§āĻ°ā§ JAR āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ āĻāĻļāĻā§āĻ˛āĻŋāĻā§ āĻāĻ˛āĻžāĻĻāĻž āĻ¸ā§āĻ¤āĻ°ā§ āĻŦā§āĻ° āĻāĻ°ā§ āĻ˛ā§āĻ¯āĻŧāĻžāĻ°āĻŋāĻ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻ°ā§āĨ¤ āĻ˛ā§āĻ¯āĻŧāĻžāĻ°āĻŋāĻ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻāĻŋ āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§ āĻ āĻā§āĻˇāĻŽ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻ¸ā§āĻĒā§āĻ°āĻŋāĻ āĻŦā§āĻ āĻŽāĻžāĻā§āĻ¨ āĻĒā§āĻ˛āĻžāĻāĻāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¸ā§āĻĒāĻˇā§āĻāĻāĻžāĻŦā§ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<layers>
<enabled>true</enabled>
</layers>
</configuration>
</plugin>
āĻāĻŽāĻ°āĻž āĻāĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨āĻāĻŋ āĻĒā§āĻ°āĻĨāĻŽā§ āĻŦāĻŋāĻ˛ā§āĻĄāĻĒā§āĻ¯āĻžāĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻŦāĻŋāĻāĻžāĻā§ āĻĄāĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻāĻŽā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦāĨ¤
āĻāĻ˛ā§āĻ¨ āĻĻā§āĻĄāĻŧāĻžāĻ build-image
āĻāĻāĻāĻŋ āĻ§āĻžāĻ°āĻ āĻāĻŽā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ Maven āĻ˛āĻā§āĻˇā§āĻ¯:
mvn spring-boot:build-image
āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§āĻĒ āĻāĻŋāĻ¤ā§āĻ°ā§āĻ° āĻ¸ā§āĻ¤āĻ°āĻā§āĻ˛āĻŋ āĻĻā§āĻāĻ¤ā§ āĻ¯āĻĻāĻŋ āĻāĻŽāĻ°āĻž āĻĄāĻžāĻāĻ āĻāĻžāĻ˛āĻžāĻ, āĻāĻŽāĻ°āĻž āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻŦ āĻ¯ā§ āĻŽā§āĻāĻž JAR āĻĢāĻ°ā§āĻŽā§āĻ¯āĻžāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻŽāĻ°āĻž āĻ¯āĻž āĻĒā§āĻ¯āĻŧā§āĻāĻŋ āĻ¤āĻžāĻ° āĻ¤ā§āĻ˛āĻ¨āĻžāĻ¯āĻŧ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻ¸ā§āĻ¤āĻ° (āĻ˛āĻžāĻ˛ āĻŦā§āĻ¤ā§āĻ¤āĻžāĻāĻžāĻ°) āĻāĻŋāĻ˛ā§āĻŦāĻžāĻāĻ āĻĒāĻ°āĻŋāĻ¸āĻ°ā§ āĻ āĻ¨ā§āĻ āĻā§āĻ:
āĻĄāĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸ā§āĻĒā§āĻ°āĻŋāĻ āĻŦā§āĻ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻāĻĄ āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻāĻŽā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž
āĻāĻāĻāĻŋ Maven āĻŦāĻž Gradle āĻĒā§āĻ˛āĻžāĻāĻāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§, āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻĄāĻāĻžāĻ° āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ āĻ¸ā§āĻ¤āĻ°āĻ¯ā§āĻā§āĻ¤ āĻĄāĻāĻžāĻ° JAR āĻāĻŽā§āĻāĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋāĨ¤
āĻ¯āĻāĻ¨ āĻāĻŽāĻ°āĻž āĻĄāĻāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŋ, āĻ¤āĻāĻ¨ āĻ¸ā§āĻ¤āĻ°āĻā§āĻ˛āĻŋ āĻŦā§āĻ° āĻāĻ°āĻ¤ā§ āĻāĻŦāĻ āĻā§āĻĄāĻŧāĻžāĻ¨ā§āĻ¤ āĻāĻŋāĻ¤ā§āĻ°ā§ āĻ āĻ¨ā§āĻ˛āĻŋāĻĒāĻŋ āĻāĻ°āĻ¤ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻĻā§āĻāĻŋ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻĒāĻĻāĻā§āĻˇā§āĻĒ āĻ¨āĻŋāĻ¤ā§ āĻšāĻŦā§āĨ¤
āĻ˛ā§āĻ¯āĻŧāĻžāĻ°āĻŋāĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°ā§ āĻŽāĻžāĻā§āĻ¨ āĻĻāĻŋāĻ¯āĻŧā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§ āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§āĻĒ JAR āĻāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻāĻāĻ°āĻāĻŽ āĻĻā§āĻāĻžāĻŦā§:
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
āĻā§āĻ¨ā§ āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¤āĻž āĻ¯āĻžāĻ° āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖā§ SNAPSHOT āĻ¨ā§āĻ
spring-boot-loader
JAR āĻ˛ā§āĻĄāĻžāĻ° āĻā§āĻ˛āĻžāĻ¸
snapshot-dependencies
āĻ¯ā§ āĻā§āĻ¨ā§ āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¤āĻž āĻ¯āĻžāĻ° āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖā§ SNAPShot āĻ°āĻ¯āĻŧā§āĻā§
application
āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻā§āĻ˛āĻžāĻ¸ āĻāĻŦāĻ āĻ¸āĻŽā§āĻĒāĻĻ
āĻ¸ā§āĻ¤āĻ° āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧ layers.idx
āĻĢāĻžāĻāĻ˛ āĻ¯āĻžāĻ¤ā§ āĻĄāĻāĻžāĻ° āĻāĻŽā§āĻā§ āĻ¯ā§āĻ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤āĨ¤ āĻāĻ āĻ¸ā§āĻ¤āĻ°āĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻĨāĻŽ āĻāĻ¨āĻžāĻ° āĻĒāĻ°ā§ āĻšā§āĻ¸ā§āĻā§ āĻā§āĻ¯āĻžāĻļā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻžāĻ°āĻŖ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻšāĻ¯āĻŧ āĻ¨āĻžāĨ¤ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻĒāĻĄā§āĻ āĻāĻ°āĻž āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻ˛ā§āĻ¯āĻŧāĻžāĻ° āĻšā§āĻ¸ā§āĻā§ āĻĄāĻžāĻāĻ¨āĻ˛ā§āĻĄ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¯āĻž āĻāĻāĻžāĻ° āĻāĻŽ āĻšāĻāĻ¯āĻŧāĻžāĻ° āĻāĻžāĻ°āĻŖā§ āĻĻā§āĻ°ā§āĻ¤āĻ¤āĻ° āĻšāĻ¯āĻŧ .
āĻāĻ˛āĻžāĻĻāĻž āĻ¸ā§āĻ¤āĻ°ā§ āĻ¨āĻŋāĻ°ā§āĻ¯āĻžāĻ¸āĻŋāĻ¤ āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¤āĻž āĻ¸āĻš āĻāĻāĻāĻŋ āĻāĻŋāĻ¤ā§āĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž
āĻāĻŽāĻ°āĻž āĻ¨āĻžāĻŽāĻ āĻāĻāĻāĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻĻā§āĻāĻŋ āĻ§āĻžāĻĒā§ āĻā§āĻĄāĻŧāĻžāĻ¨ā§āĻ¤ āĻāĻŋāĻ¤ā§āĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦ
āĻŽāĻžāĻ˛ā§āĻāĻŋ-āĻ¸ā§āĻā§āĻ āĻŦāĻŋāĻ˛ā§āĻĄā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻžāĻĻā§āĻ° āĻĄāĻāĻžāĻ°āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻž āĻ¯āĻžāĻ:
# 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 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
āĻāĻŽāĻ°āĻž āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻā§āĻāĻŋ āĻ¯ā§ āĻĄāĻāĻžāĻ° āĻāĻŽā§āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻāĻŽā§āĻ āĻāĻāĻĄāĻŋ āĻĻāĻŋāĻ¯āĻŧā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ° āĻā§āĻ¯āĻžāĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
āĻ āĻŦāĻļā§āĻˇā§, āĻāĻŽāĻ°āĻž āĻā§āĻ¨āĻžāĻ°ā§āĻ āĻāĻ°āĻž āĻĄāĻāĻžāĻ° āĻāĻŽā§āĻā§āĻ° āĻāĻŋāĻ¤āĻ°ā§āĻ° āĻ¸ā§āĻ¤āĻ°āĻā§āĻ˛āĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻ¤ā§ āĻāĻā§āĻ° āĻŽāĻ¤ā§āĻ āĻĄāĻžāĻāĻ āĻāĻŽāĻžāĻ¨ā§āĻĄāĻāĻŋ āĻāĻžāĻ˛āĻžāĻāĨ¤ āĻāĻŽāĻ°āĻž āĻĄāĻžāĻāĻ āĻāĻŽāĻžāĻ¨ā§āĻĄā§ āĻāĻ¨āĻĒā§āĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻāĻāĻŋ āĻāĻŽā§āĻ āĻāĻāĻĄāĻŋ āĻŦāĻž āĻā§āĻ¯āĻžāĻ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ:
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
āĻļā§āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻ°āĻŋāĻĒā§āĻāĻŋāĻāĻ°āĻŋ āĻĨā§āĻā§ āĻĒā§āĻ¨āĻ°ā§āĻĻā§āĻ§āĻžāĻ° āĻāĻ°āĻž āĻ¸āĻāĻ¸ā§āĻĨāĻž āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¤āĻž āĻ§āĻžāĻ°āĻŖāĻāĻžāĻ°ā§āĨ¤
āĻāĻĒāĻ¸āĻāĻšāĻžāĻ°
āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§, āĻāĻŽāĻ°āĻž āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻā§āĻ¸ āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻāĻŽā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻā§āĻ˛āĻžāĻāĻĄ-āĻ¨ā§āĻāĻŋāĻ āĻŦāĻŋāĻ˛ā§āĻĄāĻĒā§āĻ¯āĻžāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻĻā§āĻā§āĻāĻŋāĨ¤ āĻāĻāĻŋ āĻ¸ā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻ āĻāĻĒāĻžāĻ¯āĻŧā§ āĻāĻāĻāĻŋ āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻāĻŽā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻĄāĻāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻāĻāĻŋ āĻŦāĻŋāĻāĻ˛ā§āĻĒ: āĻĒā§āĻ°āĻĨāĻŽā§, āĻāĻāĻāĻŋ āĻĒā§āĻ°ā§ āĻāĻā§āĻ¸āĻŋāĻāĻŋāĻāĻā§āĻŦāĻ˛ JAR āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ° āĻĄāĻāĻžāĻ°āĻĢāĻžāĻāĻ˛ā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻžāĻŦāĻ˛ā§ āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻāĻŽā§āĻā§ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻ˛ā§āĻ¯āĻŧāĻžāĻ°āĻŋāĻ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ°āĻā§ āĻ āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻ āĻāĻ°āĻžāĻ° āĻĻāĻŋāĻā§āĻ āĻ¨āĻāĻ° āĻĻāĻŋāĻ¯āĻŧā§āĻāĻŋ āĻ¯āĻž āĻšā§āĻ¸ā§āĻā§ āĻā§āĻ¯āĻžāĻļā§ āĻāĻ°āĻž āĻāĻ˛āĻžāĻĻāĻž āĻ¸ā§āĻ¤āĻ°āĻā§āĻ˛āĻŋāĻ¤ā§ āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¤āĻž āĻŦā§āĻ° āĻāĻ°ā§ āĻāĻŦāĻ āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ°ā§āĻ° āĻāĻā§āĻ¸āĻŋāĻāĻŋāĻāĻļāĻ¨ āĻāĻā§āĻāĻŋāĻ¨āĻā§āĻ˛āĻŋāĻ¤ā§ āĻ¸āĻŽāĻ¯āĻŧ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻāĻāĻŋ āĻĒāĻžāĻ¤āĻ˛āĻž āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻ¸ā§āĻ¤āĻ° āĻ˛ā§āĻĄ āĻšāĻ¯āĻŧā§ˇ
āĻāĻĒāĻ¨āĻŋ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻ¤ā§āĻ¸ āĻā§āĻĄ āĻāĻāĻžāĻ¨ā§ āĻā§āĻāĻā§ āĻĒā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸
āĻāĻāĻāĻŋ āĻĻā§āĻ°ā§āĻ¤ āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻ°āĻž āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§ āĻ¯ā§ āĻāĻŽāĻžāĻ¨ā§āĻĄāĻā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻāĻŋ āĻ¤āĻžāĻ° āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤āĻ¸āĻžāĻ° āĻāĻāĻžāĻ¨ā§ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤
āĻĒā§āĻ°āĻ¸āĻā§āĻ āĻā§āĻ˛āĻŋāĻ¯āĻŧāĻžāĻ°āĻŋāĻ:
docker system prune -a
āĻāĻāĻāĻŋ āĻĄāĻāĻžāĻ°āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ āĻ§āĻžāĻ°āĻ āĻāĻŋāĻ¤ā§āĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž:
docker build -f <Docker file name> -t <tag> .
āĻā§āĻ¸ āĻĨā§āĻā§ āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻāĻŽā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨ (āĻĄāĻāĻžāĻ°āĻĢāĻžāĻāĻ˛ āĻāĻžāĻĄāĻŧāĻž):
mvn spring-boot:build-image
āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¤āĻž āĻ¸ā§āĻ¤āĻ° āĻĻā§āĻā§āĻ¨āĨ¤ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻāĻžāĻ° āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻāĻā§, āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°ā§āĻ¨ āĻ¯ā§ āĻ˛ā§āĻ¯āĻŧāĻžāĻ°āĻŋāĻ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻāĻŋ āĻ¸ā§āĻĒā§āĻ°āĻŋāĻ-āĻŦā§āĻ-āĻŽāĻžāĻā§āĻ¨-āĻĒā§āĻ˛āĻžāĻāĻāĻ¨ā§ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§:
java -Djarmode=layertools -jar application.jar list
āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¤āĻž āĻ¸ā§āĻ¤āĻ° āĻ¨āĻŋāĻˇā§āĻāĻžāĻļāĻ¨. āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻāĻžāĻ° āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻāĻā§, āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°ā§āĻ¨ āĻ¯ā§ āĻ˛ā§āĻ¯āĻŧāĻžāĻ°āĻŋāĻ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻāĻŋ āĻ¸ā§āĻĒā§āĻ°āĻŋāĻ-āĻŦā§āĻ-āĻŽāĻžāĻā§āĻ¨-āĻĒā§āĻ˛āĻžāĻāĻāĻ¨ā§ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§:
java -Djarmode=layertools -jar application.jar extract
āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻāĻŽā§āĻ āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĻā§āĻāĻž
docker images
āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻāĻŦāĻŋāĻ° āĻāĻŋāĻ¤āĻ°ā§ āĻŦāĻžāĻŽ āĻĻāĻŋāĻā§ āĻĻā§āĻā§āĻ¨ (āĻĄāĻžāĻāĻ āĻā§āĻ˛ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻž āĻāĻā§ āĻ¤āĻž āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°ā§āĻ¨):
dive <image ID or image tag>
āĻāĻ¤ā§āĻ¸: www.habr.com