āĻ¸ā§āĻĒā§āĻ°āĻŋāĻ‚ āĻŦā§āĻŸ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ…āĻĒā§āĻŸāĻŋāĻŽāĻžāĻ‡āĻœāĻĄ āĻĄāĻ•āĻžāĻ° āĻ‡āĻŽā§‡āĻœ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž

āĻ•āĻ¨āĻŸā§‡āĻ‡āĻ¨āĻžāĻ°āĻ—ā§āĻ˛āĻŋ āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ•ā§‡ āĻāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸āĻĢā§āĻŸāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻāĻŦāĻ‚ āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻŋāĻ‚ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¤āĻž āĻ¸āĻš āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœāĻŋāĻ‚ āĻ•āĻ°āĻžāĻ° āĻāĻŦāĻ‚ āĻ¤āĻžāĻ°āĻĒāĻ° āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻĒāĻ°āĻŋāĻŦā§‡āĻļā§‡ āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻ•āĻ°āĻžāĻ° āĻĒāĻ›āĻ¨ā§āĻĻā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽ āĻšāĻ¯āĻŧā§‡ āĻ‰āĻ ā§‡āĻ›ā§‡āĨ¤

āĻāĻ‡ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻĒā§āĻ°āĻŋāĻ‚ āĻŦā§āĻŸ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ°āĻžāĻ‡āĻœ āĻ•āĻ°āĻžāĻ° āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻ‰āĻĒāĻžāĻ¯āĻŧ āĻ•āĻ­āĻžāĻ° āĻ•āĻ°ā§‡:

  • āĻāĻ•āĻŸāĻŋ āĻĄāĻ•āĻžāĻ°āĻĢāĻžāĻ‡āĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻāĻ•āĻŸāĻŋ āĻĄāĻ•āĻžāĻ° āĻ‡āĻŽā§‡āĻœ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž,
  • āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ-āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻŦāĻŋāĻ˛ā§āĻĄāĻĒā§āĻ¯āĻžāĻ• āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ‰ā§ŽāĻ¸ āĻĨā§‡āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ OCI āĻ‡āĻŽā§‡āĻœ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž,
  • āĻāĻŦāĻ‚ āĻ¸ā§āĻ¤āĻ°āĻ¯ā§āĻ•ā§āĻ¤ āĻ¸āĻ°āĻžā§āĻœāĻžāĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ JAR āĻ…āĻ‚āĻļāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻ¸ā§āĻ¤āĻ°ā§‡ āĻ†āĻ˛āĻžāĻĻāĻž āĻ•āĻ°ā§‡ āĻ°āĻžāĻ¨āĻŸāĻžāĻ‡āĻŽā§‡ āĻ‡āĻŽā§‡āĻœ āĻ…āĻĒā§āĻŸāĻŋāĻŽāĻžāĻ‡āĻœā§‡āĻļāĻ¨āĨ¤

 āĻ•ā§‹āĻĄ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ

āĻāĻ‡ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ°ā§€ āĻ•ā§‹āĻĄ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ…āĻ¨ā§āĻˇāĻ™ā§āĻ—ā§€ āĻšāĻ¯āĻŧ āĻ—āĻŋāĻŸāĻšāĻžāĻŦā§‡ .

āĻ§āĻžāĻ°āĻ• āĻĒāĻ°āĻŋāĻ­āĻžāĻˇāĻž

āĻ†āĻŽāĻ°āĻž āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ āĻœā§āĻĄāĻŧā§‡ āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ° āĻĒāĻ°āĻŋāĻ­āĻžāĻˇāĻž āĻĻāĻŋāĻ¯āĻŧā§‡ āĻļā§āĻ°ā§ āĻ•āĻ°āĻŦ:

  • āĻ§āĻžāĻ°āĻ• āĻ‡āĻŽā§‡āĻœ: āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻĢāĻžāĻ‡āĻ˛āĨ¤ āĻ†āĻŽāĻ°āĻž āĻŦāĻŋāĻ˛ā§āĻĄ āĻŸā§āĻ˛ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻŸāĻŋāĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ° āĻ‡āĻŽā§‡āĻœā§‡ āĻ°ā§‚āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻ•āĻ°āĻŋāĨ¤
  • āĻ†āĻ§āĻžāĻ°: āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ° āĻ‡āĻŽā§‡āĻœā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻāĻ•ā§āĻ¸āĻŋāĻ•āĻŋāĻ‰āĻŸā§‡āĻŦāĻ˛ āĻ‡āĻ¨āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻ¸āĨ¤
  • āĻ§āĻžāĻ°āĻ• āĻ‡āĻžā§āĻœāĻŋāĻ¨: āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ° āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻœāĻ¨ā§āĻ¯ āĻĻāĻžāĻ¯āĻŧā§€ āĻĄā§‡āĻŽāĻ¨ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĨ¤
  • āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ° āĻšā§‹āĻ¸ā§āĻŸ: āĻšā§‹āĻ¸ā§āĻŸ āĻŽā§‡āĻļāĻŋāĻ¨ āĻ¯āĻžāĻ° āĻ‰āĻĒāĻ° āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ° āĻ‡āĻžā§āĻœāĻŋāĻ¨ āĻšāĻ˛āĻ›ā§‡āĨ¤
  • āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ° āĻ°ā§‡āĻœāĻŋāĻ¸ā§āĻŸā§āĻ°āĻŋ: āĻ§āĻžāĻ°āĻ• āĻšāĻŋāĻ¤ā§āĻ° āĻĒā§āĻ°āĻ•āĻžāĻļ āĻāĻŦāĻ‚ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻ•āĻ°āĻ¤ā§‡ āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāĻ¨āĨ¤
  • āĻ“āĻ¸āĻŋāĻ†āĻ‡ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄāĻ“āĻĒā§‡āĻ¨ āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ° āĻ‡āĻ¨āĻŋāĻļāĻŋāĻ¯āĻŧā§‡āĻŸāĻŋāĻ­ (āĻ“āĻ¸āĻŋāĻ†āĻ‡) āĻ˛āĻŋāĻ¨āĻžāĻ•ā§āĻ¸ āĻĢāĻžāĻ‰āĻ¨ā§āĻĄā§‡āĻļāĻ¨ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ—āĻ āĻŋāĻ¤ āĻāĻ•āĻŸāĻŋ āĻšāĻžāĻ˛āĻ•āĻž, āĻ“āĻĒā§‡āĻ¨-āĻ¸ā§‹āĻ°ā§āĻ¸ āĻŽā§āĻ¯āĻžāĻ¨ā§‡āĻœāĻŽā§‡āĻ¨ā§āĻŸ āĻĢā§āĻ°ā§‡āĻŽāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•āĨ¤ OCI āĻ‡āĻŽā§‡āĻœ āĻ¸ā§āĻĒā§‡āĻ¸āĻŋāĻĢāĻŋāĻ•ā§‡āĻļāĻ¨ āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ° āĻ‡āĻŽā§‡āĻœ āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻŸ āĻāĻŦāĻ‚ āĻ°āĻžāĻ¨āĻŸāĻžāĻ‡āĻŽā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ‡āĻ¨ā§āĻĄāĻžāĻ¸ā§āĻŸā§āĻ°āĻŋ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ•āĻ°ā§‡ āĻ¯āĻžāĻ¤ā§‡ āĻ¸āĻŦ āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ° āĻ‡āĻžā§āĻœāĻŋāĻ¨ āĻ¯ā§‡āĻ•ā§‹āĻ¨ā§‹ āĻŦāĻŋāĻ˛ā§āĻĄ āĻŸā§āĻ˛ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ° āĻ‡āĻŽā§‡āĻœ āĻšāĻžāĻ˛āĻžāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤

āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ°āĻžāĻ‡āĻœ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯, āĻ†āĻŽāĻ°āĻž āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻŸāĻŋāĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ° āĻ›āĻŦāĻŋāĻ¤ā§‡ āĻŽā§āĻĄāĻŧā§‡ āĻĻāĻŋāĻ‡ āĻāĻŦāĻ‚ āĻ¸ā§‡āĻ‡ āĻ›āĻŦāĻŋāĻŸāĻŋāĻ•ā§‡ āĻĒāĻžāĻŦāĻ˛āĻŋāĻ• āĻ°ā§‡āĻœāĻŋāĻ¸ā§āĻŸā§āĻ°āĻŋāĻ¤ā§‡ āĻĒā§āĻ°āĻ•āĻžāĻļ āĻ•āĻ°āĻŋāĨ¤ āĻ•āĻ¨āĻŸā§‡āĻ‡āĻ¨āĻžāĻ° āĻ°āĻžāĻ¨āĻŸāĻžāĻ‡āĻŽ āĻ°ā§‡āĻœāĻŋāĻ¸ā§āĻŸā§āĻ°āĻŋ āĻĨā§‡āĻ•ā§‡ āĻāĻ‡ āĻšāĻŋāĻ¤ā§āĻ°āĻŸāĻŋ āĻĒā§āĻ¨āĻ°ā§āĻĻā§āĻ§āĻžāĻ° āĻ•āĻ°ā§‡, āĻāĻŸāĻŋ āĻ†āĻ¨āĻĒā§āĻ¯āĻžāĻ• āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻāĻŸāĻŋāĻ° āĻ­āĻŋāĻ¤āĻ°ā§‡ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻŸāĻŋ āĻšāĻžāĻ˛āĻžāĻ¯āĻŧāĨ¤

āĻ¸ā§āĻĒā§āĻ°āĻŋāĻ‚ āĻŦā§āĻŸā§‡āĻ° āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ 2.3 OCI āĻ‡āĻŽā§‡āĻœ āĻ¤ā§ˆāĻ°āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ˛āĻžāĻ—āĻ‡āĻ¨ āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻ•āĻ°ā§‡āĨ¤

āĻĄāĻ•āĻļā§āĻ°āĻŽāĻŋāĻ• āĻ¸āĻ°ā§āĻŦāĻžāĻ§āĻŋāĻ• āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ° āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨, āĻāĻŦāĻ‚ āĻ†āĻŽāĻ°āĻž āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻĄāĻ•āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻŋ, āĻ¤āĻžāĻ‡ āĻāĻ‡ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§‡ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ° āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ–āĻ—ā§āĻ˛āĻŋ āĻĄāĻ•āĻžāĻ°āĻ•ā§‡ āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ– āĻ•āĻ°āĻŦā§‡āĨ¤

āĻāĻ¤āĻŋāĻšā§āĻ¯āĻ—āĻ¤ āĻ‰āĻĒāĻžāĻ¯āĻŧā§‡ āĻāĻ•āĻŸāĻŋ āĻ§āĻžāĻ°āĻ• āĻ‡āĻŽā§‡āĻœ āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖ

āĻ¸ā§āĻĒā§āĻ°āĻŋāĻ‚ āĻŦā§āĻŸ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĄāĻ•āĻžāĻ° āĻ‡āĻŽā§‡āĻœ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻ†āĻĒāĻ¨āĻžāĻ° āĻĄāĻ•āĻžāĻ°āĻĢāĻžāĻ‡āĻ˛ā§‡ āĻ•āĻ¯āĻŧā§‡āĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻ¨āĻž āĻ¯ā§‹āĻ— āĻ•āĻ°ā§‡ āĻ–ā§āĻŦ āĻ¸āĻšāĻœāĨ¤

āĻ†āĻŽāĻ°āĻž āĻĒā§āĻ°āĻĨāĻŽā§‡ āĻāĻ•āĻŸāĻŋ āĻāĻ•ā§āĻ¸āĻŋāĻ•āĻŋāĻ‰āĻŸā§‡āĻŦāĻ˛ JAR āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻŋ āĻāĻŦāĻ‚ āĻĄāĻ•āĻžāĻ°āĻĢāĻžāĻ‡āĻ˛ āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻžāĻŦāĻ˛ā§€āĻ° āĻ…āĻ‚āĻļ āĻšāĻŋāĻ¸āĻžāĻŦā§‡, āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻ•āĻžāĻ¸ā§āĻŸāĻŽāĻžāĻ‡āĻœā§‡āĻļāĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°āĻžāĻ° āĻĒāĻ°ā§‡ āĻŦā§‡āĻ¸ JRE āĻ‡āĻŽā§‡āĻœā§‡āĻ° āĻ‰āĻĒāĻ°ā§‡ āĻāĻ•ā§āĻ¸āĻŋāĻ•āĻŋāĻ‰āĻŸā§‡āĻŦāĻ˛ JAR āĻ•āĻĒāĻŋ āĻ•āĻ°āĻŋāĨ¤

āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻŦāĻ¸āĻ¨ā§āĻ¤ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻ¯āĻžāĻ• āĻ¸ā§āĻĒā§āĻ°āĻŋāĻ‚ āĻ‡āĻ¨āĻŋāĻļāĻŋāĻ¯āĻŧāĻžāĻ˛āĻžāĻ‡āĻœāĻžāĻ° āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¤āĻž āĻ¸āĻš weblombokи 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

āĻāĻ–āĻžāĻ¨ā§‡ āĻĄāĻžāĻ‡āĻ­ āĻ•āĻŽāĻžāĻ¨ā§āĻĄā§‡āĻ° āĻ†āĻ‰āĻŸāĻĒā§āĻŸ āĻ…āĻ‚āĻļ: 

āĻ¸ā§āĻĒā§āĻ°āĻŋāĻ‚ āĻŦā§āĻŸ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ…āĻĒā§āĻŸāĻŋāĻŽāĻžāĻ‡āĻœāĻĄ āĻĄāĻ•āĻžāĻ° āĻ‡āĻŽā§‡āĻœ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž

āĻ†āĻŽāĻ°āĻž āĻĻā§‡āĻ–āĻ¤ā§‡ āĻĒāĻžāĻšā§āĻ›āĻŋ, āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¸ā§āĻ¤āĻ°āĻŸāĻŋ āĻ›āĻŦāĻŋāĻ° āĻ†āĻ•āĻžāĻ°ā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ–āĻ¯ā§‹āĻ—ā§āĻ¯ āĻ…āĻ‚āĻļ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡āĨ¤ āĻ†āĻŽāĻ°āĻž āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ…āĻĒā§āĻŸāĻŋāĻŽāĻžāĻ‡āĻœā§‡āĻļāĻ¨ā§‡āĻ° āĻ…āĻ‚āĻļ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻ–āĻŋāĻ¤ āĻŦāĻŋāĻ­āĻžāĻ—ā§‡ āĻāĻ‡ āĻ¸ā§āĻ¤āĻ°ā§‡āĻ° āĻ†āĻ•āĻžāĻ° āĻ•āĻŽāĻžāĻ¤ā§‡ āĻšāĻžāĻ‡āĨ¤

āĻŦāĻŋāĻ˛ā§āĻĄāĻĒā§āĻ¯āĻžāĻ• āĻĻāĻŋāĻ¯āĻŧā§‡ āĻāĻ•āĻŸāĻŋ āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ° āĻ‡āĻŽā§‡āĻœ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž

āĻ¸āĻŽāĻžāĻŦā§‡āĻļ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœ (āĻŦāĻŋāĻ˛ā§āĻĄāĻĒā§āĻ¯āĻžāĻ•āĻ¸) āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻļāĻŦā§āĻĻ āĻ¯āĻž āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻĒā§āĻ˛ā§āĻ¯āĻžāĻŸāĻĢāĻ°ā§āĻŽ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž (PAAS) āĻ…āĻĢāĻžāĻ° āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ¸ā§‹āĻ°ā§āĻ¸ āĻ•ā§‹āĻĄ āĻĨā§‡āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻ§āĻžāĻ°āĻ• āĻšāĻŋāĻ¤ā§āĻ° āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻāĻŸāĻŋ 2011 āĻ¸āĻžāĻ˛ā§‡ Heroku āĻĻā§āĻŦāĻžāĻ°āĻž āĻšāĻžāĻ˛ā§ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛ āĻāĻŦāĻ‚ āĻ¤āĻžāĻ°āĻĒāĻ° āĻĨā§‡āĻ•ā§‡ āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻĢāĻžāĻ‰āĻ¨ā§āĻĄā§āĻ°āĻŋ, āĻ—ā§āĻ—āĻ˛ āĻ…ā§āĻ¯āĻžāĻĒ āĻ‡āĻžā§āĻœāĻŋāĻ¨, āĻ—āĻŋāĻŸāĻ˛ā§āĻ¯āĻžāĻŦ, āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻāĻŦāĻ‚ āĻ†āĻ°āĻ“ āĻ•āĻ¯āĻŧā§‡āĻ•āĻŸāĻŋ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ—ā§ƒāĻšā§€āĻ¤ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤

āĻ¸ā§āĻĒā§āĻ°āĻŋāĻ‚ āĻŦā§āĻŸ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ…āĻĒā§āĻŸāĻŋāĻŽāĻžāĻ‡āĻœāĻĄ āĻĄāĻ•āĻžāĻ° āĻ‡āĻŽā§‡āĻœ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž

āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻŦāĻŋāĻ˛ā§āĻĄ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœā§‡āĻ° āĻ¸ā§āĻŦāĻŋāĻ§āĻž

āĻ‡āĻŽā§‡āĻœ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ 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-pluginpom.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" āĻ‡āĻ¨ āĻĄāĻŋāĻĢāĻ˛ā§āĻŸ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœāĻŋāĻ‚ āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ āĻšāĻŋāĻ¸āĻžāĻŦā§‡āĨ¤ āĻ¯āĻ–āĻ¨ āĻ†āĻŽāĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻŽā§‹āĻŸāĻž JAR āĻĻā§‡āĻ–āĻŋ, āĻ†āĻŽāĻ°āĻž āĻĻā§‡āĻ–āĻ¤ā§‡ āĻĒāĻžāĻ‡ āĻ¯ā§‡ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻŸāĻŋ āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ JAR-āĻāĻ° āĻāĻ•āĻŸāĻŋ āĻ–ā§āĻŦ āĻ›ā§‹āĻŸ āĻ…āĻ‚āĻļāĨ¤ āĻāĻŸāĻŋ āĻ¸ā§‡āĻ‡ āĻ…āĻ‚āĻļ āĻ¯āĻž āĻ¸āĻŦāĻšā§‡āĻ¯āĻŧā§‡ āĻŦā§‡āĻļāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°ā§‡āĨ¤ āĻŦāĻžāĻ•āĻŋ āĻ¸ā§āĻĒā§āĻ°āĻŋāĻ‚ āĻĢā§āĻ°ā§‡āĻŽāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ• āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¤āĻž āĻ¨āĻŋāĻ¯āĻŧā§‡ āĻ—āĻ āĻŋāĻ¤āĨ¤

āĻ…āĻĒā§āĻŸāĻŋāĻŽāĻžāĻ‡āĻœā§‡āĻļāĻžāĻ¨ āĻ¸ā§‚āĻ¤ā§āĻ°āĻŸāĻŋ āĻ¸ā§āĻĒā§āĻ°āĻŋāĻ‚ āĻĢā§āĻ°ā§‡āĻŽāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ• āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¤āĻž āĻĨā§‡āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒā§ƒāĻĨāĻ• āĻ¸ā§āĻ¤āĻ°ā§‡ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻŸāĻŋāĻ•ā§‡ āĻŦāĻŋāĻšā§āĻ›āĻŋāĻ¨ā§āĻ¨ āĻ•āĻ°āĻžāĻ° āĻšāĻžāĻ°āĻĒāĻžāĻļā§‡ āĻ•ā§‡āĻ¨ā§āĻĻā§āĻ°ā§€āĻ­ā§‚āĻ¤āĨ¤

āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¤āĻž āĻ¸ā§āĻ¤āĻ° āĻ¯āĻž āĻŽā§‹āĻŸāĻž 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

āĻ†āĻ‰āĻŸāĻĒā§āĻŸ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻĻā§‡āĻ–āĻžāĻ¯āĻŧ listextractи 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