āĻ“āĻĒā§‡āĻ¨āĻļāĻŋāĻĢāĻŸā§‡ āĻ†āĻ§ā§āĻ¨āĻŋāĻ• āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨, āĻĒāĻžāĻ°ā§āĻŸ 2: āĻšā§‡āĻ‡āĻ¨āĻĄ āĻŦāĻŋāĻ˛ā§āĻĄāĻ¸

āĻšāĻžāĻ‡ āĻ¸āĻŦ! āĻāĻŸāĻŋ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¸āĻŋāĻ°āĻŋāĻœā§‡āĻ° āĻĻā§āĻŦāĻŋāĻ¤ā§€āĻ¯āĻŧ āĻĒā§‹āĻ¸ā§āĻŸ āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ†āĻŽāĻ°āĻž āĻĻā§‡āĻ–āĻžāĻ‡ āĻ•āĻŋāĻ­āĻžāĻŦā§‡ Red Hat OpenShift-āĻ āĻ†āĻ§ā§āĻ¨āĻŋāĻ• āĻ“āĻ¯āĻŧā§‡āĻŦ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻž āĻ¯āĻžāĻ¯āĻŧāĨ¤

āĻ“āĻĒā§‡āĻ¨āĻļāĻŋāĻĢāĻŸā§‡ āĻ†āĻ§ā§āĻ¨āĻŋāĻ• āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨, āĻĒāĻžāĻ°ā§āĻŸ 2: āĻšā§‡āĻ‡āĻ¨āĻĄ āĻŦāĻŋāĻ˛ā§āĻĄāĻ¸

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

āĻ•ā§āĻ˛āĻŋāĻ¨ āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻ¤āĻž āĻ‡āĻŽā§‡āĻœ

āĻ¯ā§‡āĻŽāĻ¨āĻŸāĻŋ āĻ†āĻŽāĻ°āĻž āĻĒāĻžāĻ°ā§āĻŸ XNUMX-āĻ āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ– āĻ•āĻ°ā§‡āĻ›āĻŋ, āĻŦā§‡āĻļāĻŋāĻ°āĻ­āĻžāĻ— āĻ†āĻ§ā§āĻ¨āĻŋāĻ• āĻ“āĻ¯āĻŧā§‡āĻŦ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻ¤āĻĨāĻžāĻ•āĻĨāĻŋāĻ¤ āĻŦāĻŋāĻ˛ā§āĻĄ āĻ¸ā§āĻŸā§‡āĻœ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¯āĻž āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻ•ā§‹āĻĄ āĻŸā§āĻ°āĻžāĻ¨ā§āĻ¸āĻĒāĻŋāĻ˛ā§‡āĻļāĻ¨, āĻāĻ•āĻžāĻ§āĻŋāĻ• āĻĢāĻžāĻ‡āĻ˛ āĻ¸āĻ‚āĻ¯ā§‹āĻœāĻ¨, āĻāĻŦāĻ‚ āĻŽāĻŋāĻ¨āĻĢāĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° āĻŽāĻ¤ā§‹ āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ˛āĻžāĻĒāĻ—ā§āĻ˛āĻŋ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻ•āĻ°ā§‡āĨ¤ āĻāĻ‡ āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻĢāĻ˛ā§‡ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋ - āĻāĻŦāĻ‚ āĻāĻŸāĻŋ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻŸāĻŋāĻ• HTML, JavaScript āĻāĻŦāĻ‚ CSS - āĻ†āĻ‰āĻŸāĻĒā§āĻŸ āĻĢā§‹āĻ˛ā§āĻĄāĻžāĻ°ā§‡ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻ‡ āĻĢā§‹āĻ˛ā§āĻĄāĻžāĻ°ā§‡āĻ° āĻ…āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻ•āĻŋ āĻŦāĻŋāĻ˛ā§āĻĄ āĻŸā§āĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡ āĻ¤āĻžāĻ° āĻ‰āĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻ­āĻ° āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻŸāĻŋ āĻšāĻŦā§‡ ./build āĻĢā§‹āĻ˛ā§āĻĄāĻžāĻ° (āĻ†āĻŽāĻ°āĻž āĻ¨ā§€āĻšā§‡ āĻ†āĻ°āĻ“ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤āĻ­āĻžāĻŦā§‡ āĻāĻŸāĻŋāĻ¤ā§‡ āĻĢāĻŋāĻ°ā§‡ āĻ†āĻ¸āĻŦ)āĨ¤

āĻ¸ā§‹āĻ°ā§āĻ¸-āĻŸā§-āĻ‡āĻŽā§‡āĻœ (S2I)

āĻāĻ‡ āĻĒā§‹āĻ¸ā§āĻŸā§‡ āĻ†āĻŽāĻ°āĻž "S2I āĻ•ā§€ āĻāĻŦāĻ‚ āĻāĻŸāĻŋ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻšāĻ¯āĻŧ" āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŸāĻŋāĻ•ā§‡ āĻ¸ā§āĻĒāĻ°ā§āĻļ āĻ•āĻ°āĻŋ āĻ¨āĻž (āĻ†āĻĒāĻ¨āĻŋ āĻāĻ‡ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ†āĻ°āĻ“ āĻĒāĻĄāĻŧāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ āĻāĻ–āĻžāĻ¨ā§‡), āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ“āĻ¯āĻŧā§‡āĻŦ āĻ…ā§āĻ¯āĻžāĻĒ āĻŦāĻŋāĻ˛ā§āĻĄāĻžāĻ° āĻ‡āĻŽā§‡āĻœ āĻ•ā§€ āĻ•āĻ°ā§‡ āĻ¤āĻž āĻŦā§‹āĻāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ‡ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻĻā§āĻŸāĻŋ āĻ§āĻžāĻĒ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻĒāĻ°āĻŋāĻˇā§āĻ•āĻžāĻ° āĻšāĻ“āĻ¯āĻŧāĻž āĻ—ā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖāĨ¤

āĻ¸āĻŽāĻžāĻŦā§‡āĻļ āĻĒāĻ°ā§āĻŦ

āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻ–āĻ¨ āĻĄāĻ•āĻžāĻ° āĻŦāĻŋāĻ˛ā§āĻĄ āĻšāĻžāĻ˛āĻžāĻ¨ āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻĄāĻ•āĻžāĻ° āĻ‡āĻŽā§‡āĻœ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻļā§‡āĻˇ āĻ•āĻ°ā§‡āĻ¨ āĻ¤āĻ–āĻ¨ āĻ•ā§€ āĻ˜āĻŸā§‡ āĻ¤āĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻ…ā§āĻ¯āĻžāĻ¸ā§‡āĻŽā§āĻŦāĻ˛āĻŋ āĻĢā§‡āĻœāĻŸāĻŋ āĻĒā§āĻ°āĻ•ā§ƒāĻ¤āĻŋāĻ¤ā§‡ āĻ–ā§āĻŦ āĻŽāĻŋāĻ˛āĨ¤ āĻ¸ā§‡āĻ‡ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§€, OpenShift āĻĒā§āĻ˛ā§āĻ¯āĻžāĻŸāĻĢāĻ°ā§āĻŽā§‡ āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻ˛ā§āĻĄ āĻļā§āĻ°ā§ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻ‡ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧāĻŸāĻŋ āĻ˜āĻŸā§‡āĨ¤

āĻāĻ•āĻŸāĻŋ āĻ“āĻ¯āĻŧā§‡āĻŦ āĻ…ā§āĻ¯āĻžāĻĒ āĻŦāĻŋāĻ˛ā§āĻĄāĻžāĻ° āĻ‡āĻŽā§‡āĻœā§‡āĻ° āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡, āĻāĻŸāĻŋ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° āĻ¨āĻŋāĻ°ā§āĻ­āĻ°āĻ¤āĻž āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻ•āĻ°āĻž āĻāĻŦāĻ‚ āĻŦāĻŋāĻ˛ā§āĻĄ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻœāĻ¨ā§āĻ¯ āĻĻāĻžāĻ¯āĻŧā§€āĨ¤ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻāĻ•āĻ¤ā§āĻ°āĻŋāĻ¤ āĻ•āĻ°āĻž. āĻĄāĻŋāĻĢāĻ˛ā§āĻŸāĻ°ā§‚āĻĒā§‡, āĻŦāĻŋāĻ˛ā§āĻĄāĻžāĻ° āĻ‡āĻŽā§‡āĻœ npm āĻ°āĻžāĻ¨ āĻŦāĻŋāĻ˛ā§āĻĄ āĻ•āĻ¨āĻ¸ā§āĻŸā§āĻ°āĻžāĻ•ā§āĻŸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŸāĻŋ NPM_BUILD āĻāĻ¨āĻ­āĻžāĻ¯āĻŧāĻ°āĻ¨āĻŽā§‡āĻ¨ā§āĻŸ āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ“āĻ­āĻžāĻ°āĻ°āĻžāĻ‡āĻĄ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤

āĻ†āĻŽāĻ°āĻž āĻ†āĻ—ā§‡āĻ‡ āĻŦāĻ˛ā§‡āĻ›āĻŋ, āĻ¸āĻŽāĻžāĻĒā§āĻ¤, āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡ āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻŸāĻŋāĻ° āĻ…āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ āĻ†āĻĒāĻ¨āĻŋ āĻ•ā§‹āĻ¨ āĻ¸āĻ°āĻžā§āĻœāĻžāĻŽāĻ—ā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡āĻ¨ āĻ¤āĻžāĻ° āĻ‰āĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻ­āĻ° āĻ•āĻ°ā§‡āĨ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, React āĻāĻ° āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡ āĻāĻŸāĻŋ āĻšāĻŦā§‡ ./build āĻĢā§‹āĻ˛ā§āĻĄāĻžāĻ° āĻāĻŦāĻ‚ Angular āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻŸāĻŋ āĻšāĻŦā§‡ project_name/dist āĻĢā§‹āĻ˛ā§āĻĄāĻžāĻ°āĨ¤ āĻāĻŦāĻ‚, āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§€ āĻĒā§‹āĻ¸ā§āĻŸā§‡ āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡ āĻĻā§‡āĻ–āĻžāĻ¨ā§‹ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻ†āĻ‰āĻŸāĻĒā§āĻŸ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋāĻ° āĻ…āĻŦāĻ¸ā§āĻĨāĻžāĻ¨, āĻ¯āĻž āĻĄāĻŋāĻĢāĻ˛ā§āĻŸāĻ°ā§‚āĻĒā§‡ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, OUTPUT_DIR āĻāĻ¨āĻ­āĻžāĻ¯āĻŧāĻ°āĻ¨āĻŽā§‡āĻ¨ā§āĻŸ āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ“āĻ­āĻžāĻ°āĻ°āĻžāĻ‡āĻĄ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻ āĻŋāĻ• āĻ†āĻ›ā§‡, āĻ¯ā§‡āĻšā§‡āĻ¤ā§ āĻ†āĻ‰āĻŸāĻĒā§āĻŸ āĻĢā§‹āĻ˛ā§āĻĄāĻžāĻ°ā§‡āĻ° āĻ…āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ āĻĢā§āĻ°ā§‡āĻŽāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ• āĻĨā§‡āĻ•ā§‡ āĻĢā§āĻ°ā§‡āĻŽāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ†āĻ˛āĻžāĻĻāĻž, āĻ†āĻĒāĻ¨āĻŋ āĻ•ā§‡āĻŦāĻ˛ āĻœā§‡āĻ¨āĻžāĻ°ā§‡āĻŸ āĻ†āĻ‰āĻŸāĻĒā§āĻŸāĻŸāĻŋāĻ•ā§‡ āĻšāĻŋāĻ¤ā§āĻ°ā§‡āĻ° āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻĢā§‹āĻ˛ā§āĻĄāĻžāĻ°ā§‡ āĻ…āĻ¨ā§āĻ˛āĻŋāĻĒāĻŋ āĻ•āĻ°ā§āĻ¨, āĻ¯āĻĨāĻž /opt/apt-root/outputāĨ¤ āĻāĻ‡ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§‡āĻ° āĻŦāĻžāĻ•āĻŋ āĻ…āĻ‚āĻļ āĻŦā§‹āĻāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻŸāĻŋ āĻ—ā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ†āĻĒāĻžāĻ¤āĻ¤ āĻšāĻ˛ā§āĻ¨ āĻĻā§āĻ°ā§āĻ¤ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻ§āĻžāĻĒā§‡ āĻĻā§‡āĻ–āĻŋ - āĻ°āĻžāĻ¨ āĻĒāĻ°ā§āĻŦāĨ¤

āĻ°āĻžāĻ¨ āĻĢā§‡āĻœ

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

āĻāĻ‡ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻŸāĻŋ āĻĻā§āĻ°ā§āĻ¤ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻžāĻ¨ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ­āĻžāĻ˛, āĻ¤āĻŦā§‡ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻāĻ‡āĻ­āĻžāĻŦā§‡ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻŸāĻŋāĻ• āĻ•āĻ¨ā§āĻŸā§‡āĻ¨ā§āĻŸ āĻĒāĻ°āĻŋāĻŦā§‡āĻļāĻ¨ āĻ•āĻ°āĻžāĻ° āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļ āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ āĻ¨āĻžāĨ¤ āĻ āĻŋāĻ• āĻ†āĻ›ā§‡, āĻ¯ā§‡āĻšā§‡āĻ¤ā§ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦā§‡ āĻ†āĻŽāĻ°āĻž āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¸ā§āĻŸā§āĻ¯āĻžāĻŸāĻŋāĻ• āĻ•āĻ¨ā§āĻŸā§‡āĻ¨ā§āĻŸ āĻĒāĻ°āĻŋāĻŦā§‡āĻļāĻ¨ āĻ•āĻ°āĻŋ, āĻ¤āĻžāĻ‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ‡āĻŽā§‡āĻœā§‡āĻ° āĻ­āĻŋāĻ¤āĻ°ā§‡ Node.js āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻ•āĻ°āĻžāĻ° āĻĻāĻ°āĻ•āĻžāĻ° āĻ¨ā§‡āĻ‡ - āĻāĻ•āĻŸāĻŋ āĻ“āĻ¯āĻŧā§‡āĻŦ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°āĻ‡ ​​āĻ¯āĻĨā§‡āĻˇā§āĻŸāĨ¤

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

āĻļā§ƒāĻ™ā§āĻ–āĻ˛āĻŋāĻ¤ āĻŦāĻŋāĻ˛ā§āĻĄ

āĻāĻ‡ āĻ¨āĻŋāĻ¯āĻŧā§‡āĻ‡ āĻ¤āĻžāĻ°āĻž āĻ˛ā§‡āĻ–ā§‡ āĻļā§ƒāĻ™ā§āĻ–āĻ˛āĻŋāĻ¤ āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖ OpenShift āĻĄāĻ•ā§āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāĻ¨ā§‡:

"āĻĻā§āĻŸāĻŋ āĻ¸āĻŽāĻžāĻŦā§‡āĻļ āĻāĻ•āĻ¸āĻžāĻĨā§‡ āĻ¸āĻ‚āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, āĻāĻ•āĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ¸āĻ‚āĻ•āĻ˛āĻŋāĻ¤ āĻ¸āĻ¤ā§āĻ¤āĻž āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āĻ¯āĻŸāĻŋ āĻ¸ā§‡āĻ‡ āĻ¸āĻ¤ā§āĻ¤āĻžāĻŸāĻŋāĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒā§ƒāĻĨāĻ• āĻšāĻŋāĻ¤ā§āĻ°ā§‡ āĻšā§‹āĻ¸ā§āĻŸ āĻ•āĻ°ā§‡ āĻ¯āĻž āĻ¸ā§‡āĻ‡ āĻ¸āĻ¤ā§āĻ¤āĻž āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻœāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻšāĻ¯āĻŧāĨ¤"

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

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

āĻāĻ–āĻ¨ āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻāĻŸāĻŋ āĻ¤āĻžāĻ•āĻžāĻ¨.

āĻĒā§āĻ°āĻļāĻŋāĻ•ā§āĻˇāĻŖā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻŽāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻŦ āĻ¸āĻšāĻœ āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨, create-react-app āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻ˛āĻžāĻ‡āĻ¨ āĻŸā§āĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤

āĻāĻŸāĻž āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻāĻ•āĻ¸āĻžāĻĨā§‡ āĻ°āĻžāĻ–āĻ¤ā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°āĻŦā§‡ OpenShift āĻŸā§‡āĻŽāĻĒā§āĻ˛ā§‡āĻŸ āĻĢāĻžāĻ‡āĻ˛.

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

parameters:
  - name: SOURCE_REPOSITORY_URL
    description: The source URL for the application
    displayName: Source URL
    required: true
  - name: SOURCE_REPOSITORY_REF
    description: The branch name for the application
    displayName: Source Branch
    value: master
    required: true
  - name: SOURCE_REPOSITORY_DIR
    description: The location within the source repo of the application
    displayName: Source Directory
    value: .
    required: true
  - name: OUTPUT_DIR
    description: The location of the compiled static files from your web apps builder
    displayName: Output Directory
    value: build
    required: false

āĻāĻ–āĻžāĻ¨ā§‡ āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻŦā§‡āĻļ āĻĒāĻ°āĻŋāĻˇā§āĻ•āĻžāĻ°, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ OUTPUT_DIR āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ°ā§‡ āĻŽāĻ¨ā§‹āĻ¯ā§‹āĻ— āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻŽā§‚āĻ˛ā§āĻ¯āĻŦāĻžāĻ¨āĨ¤ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ‰āĻĻāĻžāĻšāĻ°āĻŖā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯, āĻšāĻŋāĻ¨ā§āĻ¤āĻž āĻ•āĻ°āĻžāĻ° āĻ•āĻŋāĻ›ā§ āĻ¨ā§‡āĻ‡, āĻ¯ā§‡āĻšā§‡āĻ¤ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ†āĻ‰āĻŸāĻĒā§āĻŸ āĻĢā§‹āĻ˛ā§āĻĄāĻžāĻ° āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻĄāĻŋāĻĢāĻ˛ā§āĻŸ āĻŽāĻžāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡, āĻ¤āĻŦā§‡ āĻ•ā§ŒāĻŖāĻŋāĻ• āĻŦāĻž āĻ…āĻ¨ā§āĻ¯ āĻ•āĻŋāĻ›ā§āĻ° āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡, āĻāĻ‡ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ°āĻŸāĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻ…āĻ¨ā§āĻ¸āĻžāĻ°ā§‡ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤

āĻāĻ–āĻ¨ āĻ†āĻ¸ā§āĻ¨ ImageStreams āĻŦāĻŋāĻ­āĻžāĻ—āĻŸāĻŋ āĻāĻ•āĻŦāĻžāĻ° āĻĻā§‡āĻ–ā§‡ āĻ¨ā§‡āĻ“āĻ¯āĻŧāĻž āĻ¯āĻžāĻ•āĨ¤

- apiVersion: v1
  kind: ImageStream
  metadata:
    name: react-web-app-builder  // 1 
  spec: {}
- apiVersion: v1
  kind: ImageStream
  metadata:
    name: react-web-app-runtime  // 2 
  spec: {}
- apiVersion: v1
  kind: ImageStream
  metadata:
    name: web-app-builder-runtime // 3
  spec:
    tags:
    - name: latest
      from:
        kind: DockerImage
        name: nodeshift/ubi8-s2i-web-app:10.x
- apiVersion: v1
  kind: ImageStream
  metadata:
    name: nginx-image-runtime // 4
  spec:
    tags:
    - name: latest
      from:
        kind: DockerImage
        name: 'centos/nginx-112-centos7:latest'

āĻ¤ā§ƒāĻ¤ā§€āĻ¯āĻŧ āĻāĻŦāĻ‚ āĻšāĻ¤ā§āĻ°ā§āĻĨ āĻ›āĻŦāĻŋ āĻĻā§‡āĻ–ā§‡ āĻ¨āĻŋāĻ¨āĨ¤ āĻ¤āĻžāĻ°āĻž āĻ‰āĻ­āĻ¯āĻŧāĻ‡ āĻĄāĻ•āĻžāĻ° āĻ‡āĻŽā§‡āĻœ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻāĻŦāĻ‚ āĻ†āĻĒāĻ¨āĻŋ āĻ¸ā§āĻĒāĻˇā§āĻŸāĻ­āĻžāĻŦā§‡ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ āĻ¯ā§‡ āĻ¤āĻžāĻ°āĻž āĻ•ā§‹āĻĨāĻž āĻĨā§‡āĻ•ā§‡ āĻāĻ¸ā§‡āĻ›ā§‡āĨ¤

āĻ¤ā§ƒāĻ¤ā§€āĻ¯āĻŧ āĻ›āĻŦāĻŋāĻŸāĻŋ āĻ“āĻ¯āĻŧā§‡āĻŦ-āĻ…ā§āĻ¯āĻžāĻĒ-āĻŦāĻŋāĻ˛ā§āĻĄāĻžāĻ° āĻāĻŦāĻ‚ āĻāĻŸāĻŋ nodeshift/ubi8-s2i-web-app āĻŸā§āĻ¯āĻžāĻ— āĻ•āĻ°āĻž 10.x āĻĨā§‡āĻ•ā§‡ āĻāĻ¸ā§‡āĻ›ā§‡ āĻĄāĻ•āĻžāĻ° āĻšāĻžāĻŦ.

āĻšāĻ¤ā§āĻ°ā§āĻĨāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ NGINX āĻšāĻŋāĻ¤ā§āĻ° (āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ 1.12) āĻ¯āĻžāĻ° āĻ¸āĻ°ā§āĻŦāĻļā§‡āĻˇ āĻŸā§āĻ¯āĻžāĻ—āĻŸāĻŋ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ā§ˇ āĻĄāĻ•āĻžāĻ° āĻšāĻžāĻŦ.

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

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

āĻŦāĻŋāĻ­ā§āĻ°āĻžāĻ¨ā§āĻ¤? āĻāĻ–āĻ¨ āĻ†āĻ¸ā§āĻ¨ āĻŦāĻŋāĻ˛ā§āĻĄ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋ āĻĻā§‡āĻ–ā§‡ āĻ¨ā§‡āĻ“āĻ¯āĻŧāĻž āĻ¯āĻžāĻ• āĻāĻŦāĻ‚ āĻāĻŸāĻŋ āĻāĻ•āĻŸā§ āĻĒāĻ°āĻŋāĻˇā§āĻ•āĻžāĻ° āĻšāĻ¯āĻŧā§‡ āĻ¯āĻžāĻŦā§‡āĨ¤

āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻŸā§‡āĻŽāĻĒā§āĻ˛ā§‡āĻŸ āĻĻā§āĻŸāĻŋ āĻŦāĻŋāĻ˛ā§āĻĄ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻ†āĻ›ā§‡. āĻāĻ–āĻžāĻ¨ā§‡ āĻĒā§āĻ°āĻĨāĻŽāĻŸāĻŋ, āĻāĻŦāĻ‚ āĻāĻŸāĻŋ āĻŦā§‡āĻļ āĻŽāĻžāĻ¨āĻ•:

  apiVersion: v1
  kind: BuildConfig
  metadata:
    name: react-web-app-builder
  spec:
    output:
      to:
        kind: ImageStreamTag
        name: react-web-app-builder:latest // 1
    source:   // 2 
      git:
        uri: ${SOURCE_REPOSITORY_URL}
        ref: ${SOURCE_REPOSITORY_REF}
      contextDir: ${SOURCE_REPOSITORY_DIR}
      type: Git
    strategy:
      sourceStrategy:
        env:
          - name: OUTPUT_DIR // 3 
            value: ${OUTPUT_DIR}
        from:
          kind: ImageStreamTag
          name: web-app-builder-runtime:latest // 4
        incremental: true // 5
      type: Source
    triggers: // 6
    - github:
        secret: ${GITHUB_WEBHOOK_SECRET}
      type: GitHub
    - type: ConfigChange
    - imageChange: {}
      type: ImageChange

āĻ†āĻĒāĻ¨āĻŋ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻĒāĻžāĻšā§āĻ›ā§‡āĻ¨, āĻ˛ā§‡āĻŦā§‡āĻ˛ 1 āĻ¸āĻš āĻ˛āĻžāĻ‡āĻ¨āĻŸāĻŋ āĻŦāĻ˛āĻ›ā§‡ āĻ¯ā§‡ āĻāĻ‡ āĻŦāĻŋāĻ˛ā§āĻĄā§‡āĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛āĻŸāĻŋ āĻāĻ•āĻ‡ āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž-āĻ“āĻ¯āĻŧā§‡āĻŦ-āĻ…ā§āĻ¯āĻžāĻĒ-āĻŦāĻŋāĻ˛ā§āĻĄāĻžāĻ° āĻ‡āĻŽā§‡āĻœā§‡ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻž āĻšāĻŦā§‡ āĻ¯āĻž āĻ†āĻŽāĻ°āĻž āĻ‡āĻŽā§‡āĻœāĻ¸ā§āĻŸā§āĻ°āĻŋāĻŽ āĻŦāĻŋāĻ­āĻžāĻ—ā§‡ āĻāĻ•āĻŸā§ āĻ†āĻ—ā§‡ āĻĻā§‡āĻ–ā§‡āĻ›āĻŋāĨ¤

2 āĻ˛ā§‡āĻŦā§‡āĻ˛āĻ¯ā§āĻ•ā§āĻ¤ āĻ˛āĻžāĻ‡āĻ¨āĻŸāĻŋ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻŦāĻ˛ā§‡ āĻ¯ā§‡ āĻ•ā§‹āĻĄāĻŸāĻŋ āĻ•ā§‹āĻĨāĻž āĻĨā§‡āĻ•ā§‡ āĻĒā§‡āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡, āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ—āĻŋāĻŸ āĻ¸āĻ‚āĻ—ā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛, āĻāĻŦāĻ‚ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāĻ¨, āĻ°ā§‡āĻĢ āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻ¸āĻ™ā§āĻ— āĻĢā§‹āĻ˛ā§āĻĄāĻžāĻ° āĻ†āĻŽāĻ°āĻž āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡ āĻ‰āĻĒāĻ°ā§‡ āĻĻā§‡āĻ–ā§‡āĻ›āĻŋ āĻāĻŽāĻ¨ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤

3 āĻ˛ā§‡āĻŦā§‡āĻ˛āĻ¯ā§āĻ•ā§āĻ¤ āĻ˛āĻžāĻ‡āĻ¨āĻŸāĻŋ āĻ†āĻŽāĻ°āĻž āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ° āĻŦāĻŋāĻ­āĻžāĻ—ā§‡ āĻĻā§‡āĻ–ā§‡āĻ›āĻŋāĨ¤ āĻāĻŸāĻŋ OUTPUT_DIR āĻāĻ¨āĻ­āĻžāĻ¯āĻŧāĻ°āĻ¨āĻŽā§‡āĻ¨ā§āĻŸ āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ āĻ¯ā§‹āĻ— āĻ•āĻ°ā§‡, āĻ¯āĻž āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ‰āĻĻāĻžāĻšāĻ°āĻŖā§‡ āĻŦāĻŋāĻ˛ā§āĻĄāĨ¤
4 āĻ˛ā§‡āĻŦā§‡āĻ˛āĻ¯ā§āĻ•ā§āĻ¤ āĻ˛āĻžāĻ‡āĻ¨āĻŸāĻŋ āĻ“āĻ¯āĻŧā§‡āĻŦ-āĻ…ā§āĻ¯āĻžāĻĒ-āĻŦāĻŋāĻ˛ā§āĻĄāĻžāĻ°-āĻ°āĻžāĻ¨āĻŸāĻžāĻ‡āĻŽ āĻ‡āĻŽā§‡āĻœ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻŦāĻ˛ā§‡, āĻ¯āĻž āĻ†āĻŽāĻ°āĻž āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡ āĻ‡āĻŽā§‡āĻœāĻ¸ā§āĻŸā§āĻ°āĻŋāĻŽ āĻŦāĻŋāĻ­āĻžāĻ—ā§‡ āĻĻā§‡āĻ–ā§‡āĻ›āĻŋāĨ¤

5 āĻ˛ā§‡āĻŦā§‡āĻ˛āĻ¯ā§āĻ•ā§āĻ¤ āĻ˛āĻžāĻ‡āĻ¨ āĻŦāĻ˛āĻ›ā§‡ āĻ¯ā§‡ S2I āĻ‡āĻŽā§‡āĻœ āĻ¯āĻĻāĻŋ āĻāĻŸāĻŋ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻ“āĻ¯āĻŧā§‡āĻŦ āĻ…ā§āĻ¯āĻžāĻĒ āĻŦāĻŋāĻ˛ā§āĻĄāĻžāĻ° āĻ‡āĻŽā§‡āĻœ āĻ•āĻ°ā§‡ āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ†āĻŽāĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻŦāĻ°ā§āĻ§āĻŋāĻ¤ āĻŦāĻŋāĻ˛ā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻšāĻžāĻ‡āĨ¤ āĻĒā§āĻ°āĻĨāĻŽ āĻ˛āĻžā§āĻšā§‡, āĻ¸āĻŽāĻžāĻŦā§‡āĻļā§‡āĻ° āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧ āĻļā§‡āĻˇ āĻšāĻ“āĻ¯āĻŧāĻžāĻ° āĻĒāĻ°ā§‡, āĻšāĻŋāĻ¤ā§āĻ°āĻŸāĻŋ node_modules āĻĢā§‹āĻ˛ā§āĻĄāĻžāĻ°āĻŸāĻŋāĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖāĻžāĻ—āĻžāĻ° āĻĢāĻžāĻ‡āĻ˛ā§‡ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻŦā§‡āĨ¤ āĻ¤āĻžāĻ°āĻĒāĻ°, āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻ°āĻžāĻ¨ā§‡, āĻŦāĻŋāĻ˛ā§āĻĄ āĻŸāĻžāĻ‡āĻŽ āĻ•āĻŽāĻžāĻ¤ā§‡ āĻ‡āĻŽā§‡āĻœāĻŸāĻŋ āĻāĻ‡ āĻĢā§‹āĻ˛ā§āĻĄāĻžāĻ°āĻŸāĻŋāĻ•ā§‡ āĻ†āĻ¨āĻœāĻŋāĻĒ āĻ•āĻ°āĻŦā§‡āĨ¤

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

āĻ¸āĻžāĻŽāĻ—ā§āĻ°āĻŋāĻ•āĻ­āĻžāĻŦā§‡ āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻ¨ā§āĻĻāĻ° āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻŦāĻŋāĻ˛ā§āĻĄ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨āĨ¤

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

apiVersion: v1
  kind: BuildConfig
  metadata:
    name: react-web-app-runtime
  spec:
    output:
      to:
        kind: ImageStreamTag
        name: react-web-app-runtime:latest // 1
    source: // 2
      type: Image
      images:                              
        - from:
            kind: ImageStreamTag
            name: react-web-app-builder:latest // 3
          paths:
            - sourcePath: /opt/app-root/output/.  // 4
              destinationDir: .  // 5
             
    strategy: // 6
      sourceStrategy:
        from:
          kind: ImageStreamTag
          name: nginx-image-runtime:latest
        incremental: true
      type: Source
    triggers:
    - github:
        secret: ${GITHUB_WEBHOOK_SECRET}
      type: GitHub
    - type: ConfigChange
    - type: ImageChange
      imageChange: {}
    - type: ImageChange
      imageChange:
        from:
          kind: ImageStreamTag
          name: react-web-app-builder:latest // 7

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

1 āĻ˛ā§‡āĻŦā§‡āĻ˛āĻ¯ā§āĻ•ā§āĻ¤ āĻ˛āĻžāĻ‡āĻ¨āĻŸāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ•āĻŋāĻ›ā§ āĻ¨āĻ¯āĻŧ - āĻāĻŸāĻŋ āĻ•ā§‡āĻŦāĻ˛ āĻŦāĻ˛ā§‡ āĻ¯ā§‡ āĻŦāĻŋāĻ˛ā§āĻĄ āĻĢāĻ˛āĻžāĻĢāĻ˛āĻŸāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž-āĻ“āĻ¯āĻŧā§‡āĻŦ-āĻ…ā§āĻ¯āĻžāĻĒ-āĻ°āĻžāĻ¨āĻŸāĻžāĻ‡āĻŽ āĻ›āĻŦāĻŋāĻ¤ā§‡ āĻ°āĻžāĻ–āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤

āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§€ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ā§‡āĻ° āĻŽāĻ¤ā§‹ 2 āĻ˛ā§‡āĻŦā§‡āĻ˛āĻ¯ā§āĻ•ā§āĻ¤ āĻ˛āĻžāĻ‡āĻ¨āĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļ āĻ•āĻ°ā§‡ āĻ¯ā§‡ āĻ¸ā§‹āĻ°ā§āĻ¸ āĻ•ā§‹āĻĄāĻŸāĻŋ āĻ•ā§‹āĻĨāĻž āĻĨā§‡āĻ•ā§‡ āĻĒā§‡āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ āĻ¤āĻŦā§‡ āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻ•āĻ°ā§āĻ¨ āĻ¯ā§‡ āĻāĻ–āĻžāĻ¨ā§‡ āĻ†āĻŽāĻ°āĻž āĻŦāĻ˛āĻ›āĻŋ āĻ¯ā§‡ āĻāĻŸāĻŋ āĻ›āĻŦāĻŋāĻŸāĻŋ āĻĨā§‡āĻ•ā§‡ āĻ¨ā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻ¤āĻžāĻ›āĻžāĻĄāĻŧāĻž, āĻ†āĻŽāĻ°āĻž āĻāĻ‡āĻŽāĻžāĻ¤ā§āĻ° āĻ¯ā§‡ āĻ›āĻŦāĻŋāĻŸāĻŋ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡āĻ›āĻŋ āĻ¤āĻž āĻĨā§‡āĻ•ā§‡ - āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž-āĻ“āĻ¯āĻŧā§‡āĻŦ-āĻ…ā§āĻ¯āĻžāĻĒ-āĻŦāĻŋāĻ˛ā§āĻĄāĻžāĻ° āĻĨā§‡āĻ•ā§‡ (3 āĻ˛ā§‡āĻŦā§‡āĻ˛āĻ¯ā§āĻ•ā§āĻ¤ āĻ˛āĻžāĻ‡āĻ¨ā§‡ āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻŋāĻ¤)āĨ¤ āĻ†āĻŽāĻ°āĻž āĻ¯ā§‡ āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻšāĻžāĻ‡ āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋ āĻšāĻŋāĻ¤ā§āĻ°ā§‡āĻ° āĻ­āĻŋāĻ¤āĻ°ā§‡ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻāĻŦāĻ‚ āĻ¤āĻžāĻĻā§‡āĻ° āĻ…āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ āĻ¸ā§‡āĻ–āĻžāĻ¨ā§‡ 4 āĻ˛ā§‡āĻŦā§‡āĻ˛āĻ¯ā§āĻ•ā§āĻ¤ āĻ˛āĻžāĻ‡āĻ¨ā§‡ āĻ¸ā§‡āĻŸ āĻ•āĻ°āĻž āĻ†āĻ›ā§‡, āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡ āĻāĻŸāĻŋ /opt/app-root/output/āĨ¤ āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻŽāĻ¨ā§‡ āĻ°āĻžāĻ–ā§‡āĻ¨, āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¤ā§ˆāĻ°āĻŋāĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ā§‡āĻ° āĻ‰āĻĒāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋ āĻāĻ–āĻžāĻ¨ā§‡āĻ‡ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤

āĻ˛ā§‡āĻŦā§‡āĻ˛ 5 āĻ¸āĻš āĻļāĻŦā§āĻĻāĻŸāĻŋāĻ¤ā§‡ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°āĻž āĻ—āĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻĢā§‹āĻ˛ā§āĻĄāĻžāĻ°āĻŸāĻŋ āĻ•ā§‡āĻŦāĻ˛ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋ (āĻāĻ‡ āĻ¸āĻŦ, āĻŽāĻ¨ā§‡ āĻ°āĻžāĻ–āĻŦā§‡āĻ¨, āĻ“āĻĒā§‡āĻ¨āĻļāĻŋāĻĢāĻŸ āĻ¨āĻžāĻŽāĻ• āĻ•āĻŋāĻ›ā§ āĻœāĻžāĻĻā§āĻ•āĻ°ā§€ āĻœāĻŋāĻ¨āĻŋāĻ¸ā§‡āĻ° āĻ­āĻŋāĻ¤āĻ°ā§‡ āĻšāĻ˛āĻ›ā§‡, āĻ†āĻĒāĻ¨āĻžāĻ° āĻ¸ā§āĻĨāĻžāĻ¨ā§€āĻ¯āĻŧ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ°ā§‡ āĻ¨āĻ¯āĻŧ)āĨ¤

āĻ•ā§ŒāĻļāĻ˛ āĻŦāĻŋāĻ­āĻžāĻ— - āĻ˛āĻžāĻ‡āĻ¨ āĻ˛ā§‡āĻŦā§‡āĻ˛ 6 - āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“ āĻĒā§āĻ°āĻĨāĻŽ āĻŦāĻŋāĻ˛ā§āĻĄ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ā§‡āĻ° āĻ…āĻ¨ā§āĻ°ā§‚āĻĒāĨ¤ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ‡ āĻ¸āĻŽāĻ¯āĻŧ āĻ†āĻŽāĻ°āĻž nginx-image-runtime āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻ¯āĻžāĻšā§āĻ›āĻŋ, āĻ¯āĻž āĻ†āĻŽāĻ°āĻž āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡ āĻ‡āĻŽā§‡āĻœāĻ¸ā§āĻŸā§āĻ°āĻŋāĻŽ āĻŦāĻŋāĻ­āĻžāĻ—ā§‡ āĻĻā§‡āĻ–ā§‡āĻ›āĻŋāĨ¤

āĻ…āĻŦāĻļā§‡āĻˇā§‡, 7 āĻ˛ā§‡āĻŦā§‡āĻ˛āĻ¯ā§āĻ•ā§āĻ¤ āĻ˛āĻžāĻ‡āĻ¨āĻŸāĻŋ āĻŸā§āĻ°āĻŋāĻ—āĻžāĻ°āĻ—ā§āĻ˛āĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻ­āĻžāĻ— āĻ¯āĻž āĻĒā§āĻ°āĻ¤āĻŋāĻŦāĻžāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž-āĻ“āĻ¯āĻŧā§‡āĻŦ-āĻ…ā§āĻ¯āĻžāĻĒ-āĻŦāĻŋāĻ˛ā§āĻĄāĻžāĻ° āĻ‡āĻŽā§‡āĻœ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻ‡ āĻŦāĻŋāĻ˛ā§āĻĄāĻŸāĻŋāĻ•ā§‡ āĻ¸āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ•āĻ°āĻŦā§‡āĨ¤

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

āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž

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

āĻ†āĻŽāĻ°āĻž āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻŸā§‡āĻŽāĻĒā§āĻ˛ā§‡āĻŸ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻ¤ā§‡ oc āĻ¨āĻžāĻŽāĻ• OpenShift āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻŸā§āĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋ:

$ find . | grep openshiftio | grep application | xargs -n 1 oc apply -f

$ oc new-app --template react-web-app -p SOURCE_REPOSITORY_URL=https://github.com/lholmquist/react-web-app

āĻ‰āĻĒāĻ°ā§‡āĻ° āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻ¨āĻļāĻŸā§‡āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻŸā§‡āĻŽāĻĒā§āĻ˛ā§‡āĻŸ āĻ–ā§āĻāĻœā§‡ āĻŦā§‡āĻ° āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ‡āĻšā§āĻ›āĻžāĻ•ā§ƒāĻ¤āĻ­āĻžāĻŦā§‡ āĻ‡āĻžā§āĻœāĻŋāĻ¨āĻŋāĻ¯āĻŧāĻžāĻ°āĻŋāĻ‚ āĻ‰āĻĒāĻžāĻ¯āĻŧāĨ¤/openshiftio/application.yamlāĨ¤

āĻĻā§āĻŦāĻŋāĻ¤ā§€āĻ¯āĻŧ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāĻŸāĻŋ āĻ•ā§‡āĻŦāĻ˛ āĻāĻ‡ āĻŸā§‡āĻŽāĻĒā§āĻ˛ā§‡āĻŸā§‡āĻ° āĻ‰āĻĒāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡āĨ¤

āĻāĻ‡ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāĻ—ā§āĻ˛āĻŋ āĻ•āĻžāĻœ āĻ•āĻ°āĻžāĻ° āĻĒāĻ°ā§‡, āĻ†āĻŽāĻ°āĻž āĻĻā§‡āĻ–āĻ¤ā§‡ āĻĒāĻžāĻŦ āĻ¯ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻĻā§āĻŸāĻŋ āĻ¸āĻŽāĻžāĻŦā§‡āĻļ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡:

āĻ“āĻĒā§‡āĻ¨āĻļāĻŋāĻĢāĻŸā§‡ āĻ†āĻ§ā§āĻ¨āĻŋāĻ• āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨, āĻĒāĻžāĻ°ā§āĻŸ 2: āĻšā§‡āĻ‡āĻ¨āĻĄ āĻŦāĻŋāĻ˛ā§āĻĄāĻ¸

āĻāĻŦāĻ‚ āĻ“āĻ­āĻžāĻ°āĻ­āĻŋāĻ‰ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻ¨ā§‡ āĻĢāĻŋāĻ°ā§‡, āĻ†āĻŽāĻ°āĻž āĻ˛āĻžā§āĻš āĻ•āĻ°āĻž āĻĒāĻĄ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻĒāĻžāĻŦ:

āĻ“āĻĒā§‡āĻ¨āĻļāĻŋāĻĢāĻŸā§‡ āĻ†āĻ§ā§āĻ¨āĻŋāĻ• āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨, āĻĒāĻžāĻ°ā§āĻŸ 2: āĻšā§‡āĻ‡āĻ¨āĻĄ āĻŦāĻŋāĻ˛ā§āĻĄāĻ¸

āĻ˛āĻŋāĻ™ā§āĻ•āĻŸāĻŋ āĻ•ā§āĻ˛āĻŋāĻ• āĻ•āĻ°ā§āĻ¨ āĻāĻŦāĻ‚ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ…ā§āĻ¯āĻžāĻĒā§‡ āĻ¨āĻŋāĻ¯āĻŧā§‡ āĻ¯āĻžāĻ“āĻ¯āĻŧāĻž āĻšāĻŦā§‡, āĻ¯āĻž āĻĄāĻŋāĻĢāĻ˛ā§āĻŸ āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ…ā§āĻ¯āĻžāĻĒ āĻĒā§ƒāĻˇā§āĻ āĻž:

āĻ“āĻĒā§‡āĻ¨āĻļāĻŋāĻĢāĻŸā§‡ āĻ†āĻ§ā§āĻ¨āĻŋāĻ• āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨, āĻĒāĻžāĻ°ā§āĻŸ 2: āĻšā§‡āĻ‡āĻ¨āĻĄ āĻŦāĻŋāĻ˛ā§āĻĄāĻ¸

āĻĒāĻ°āĻŋāĻĒā§‚āĻ°āĻ• 1

āĻ•ā§ŒāĻŖāĻŋāĻ• āĻĒā§āĻ°ā§‡āĻŽā§€āĻĻā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻŽāĻžāĻĻā§‡āĻ°āĻ“ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨.

OUTPUT_DIR āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ āĻ›āĻžāĻĄāĻŧāĻž āĻāĻ–āĻžāĻ¨ā§‡ āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨ āĻāĻ•āĻ‡āĨ¤

āĻĒāĻ°āĻŋāĻĒā§‚āĻ°āĻ• 2

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

āĻ‰āĻĒāĻ¸āĻ‚āĻšāĻžāĻ°

āĻāĻ‡ āĻ¸āĻŋāĻ°āĻŋāĻœā§‡āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻ…āĻ‚āĻļā§‡, āĻ†āĻŽāĻ°āĻž āĻĻā§‡āĻ–āĻŋāĻ¯āĻŧā§‡āĻ›āĻŋ āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ“āĻĒā§‡āĻ¨āĻļāĻŋāĻĢāĻŸ āĻĒā§āĻ˛ā§āĻ¯āĻžāĻŸāĻĢāĻ°ā§āĻŽā§‡ āĻ†āĻ§ā§āĻ¨āĻŋāĻ• āĻ“āĻ¯āĻŧā§‡āĻŦ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻĻā§āĻ°ā§āĻ¤ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻž āĻ¯āĻžāĻ¯āĻŧāĨ¤ āĻ†āĻœ āĻ†āĻŽāĻ°āĻž āĻĻā§‡āĻ–ā§‡āĻ›āĻŋ āĻāĻ•āĻŸāĻŋ āĻ“āĻ¯āĻŧā§‡āĻŦ āĻ…ā§āĻ¯āĻžāĻĒ āĻ‡āĻŽā§‡āĻœ āĻ•ā§€ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻāĻŸāĻŋāĻ•ā§‡ āĻ†āĻ°āĻ“ āĻĒā§āĻ°ā§‹āĻĄāĻžāĻ•āĻļāĻ¨-āĻ°ā§‡āĻĄāĻŋ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻŦāĻŋāĻ˛ā§āĻĄ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻšā§‡āĻ‡āĻ¨āĻĄ āĻŦāĻŋāĻ˛ā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ NGINX-āĻāĻ° āĻŽāĻ¤ā§‹ āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻļā§āĻĻā§āĻ§ āĻ“āĻ¯āĻŧā§‡āĻŦ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻāĻ•āĻ¤ā§āĻ°āĻŋāĻ¤ āĻ•āĻ°āĻž āĻ¯āĻžāĻ¯āĻŧāĨ¤ āĻāĻ‡ āĻ¸āĻŋāĻ°āĻŋāĻœā§‡āĻ° āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻāĻŦāĻ‚ āĻšā§‚āĻĄāĻŧāĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§‡, āĻ†āĻŽāĻ°āĻž āĻĻā§‡āĻ–āĻžāĻŦ āĻ•āĻŋāĻ­āĻžāĻŦā§‡ OpenShift-āĻ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻŽā§‡āĻ¨ā§āĻŸ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻšāĻžāĻ˛āĻžāĻ¤ā§‡ āĻšāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻ¸ā§āĻĨāĻžāĻ¨ā§€āĻ¯āĻŧ āĻāĻŦāĻ‚ āĻĻā§‚āĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻŋāĻ™ā§āĻ•ā§āĻ°ā§‹āĻ¨āĻžāĻ‡āĻœā§‡āĻļāĻ¨ āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻ¯āĻŧāĨ¤

āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§‡āĻ° āĻāĻ‡ āĻ¸āĻŋāĻ°āĻŋāĻœā§‡āĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§

  • āĻ…āĻ‚āĻļ ā§¨: āĻŽāĻžāĻ¤ā§āĻ° āĻ•āĻ¯āĻŧā§‡āĻ•āĻŸāĻŋ āĻ§āĻžāĻĒā§‡ āĻ†āĻ§ā§āĻ¨āĻŋāĻ• āĻ“āĻ¯āĻŧā§‡āĻŦ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ;
  • āĻĒāĻžāĻ°ā§āĻŸ 2: āĻĒā§āĻ°ā§‹āĻĄāĻžāĻ•āĻļāĻ¨ āĻĄāĻŋāĻĒā§āĻ˛āĻ¯āĻŧāĻŽā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¯ā§āĻ•ā§āĻ¤ āĻ“āĻĒā§‡āĻ¨āĻļāĻŋāĻĢāĻŸ āĻ…ā§āĻ¯āĻžāĻ¸ā§‡āĻŽā§āĻŦāĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻāĻ¨āĻœāĻŋāĻ†āĻ‡āĻāĻ¨āĻāĻ•ā§āĻ¸-āĻāĻ° āĻŽāĻ¤ā§‹ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ HTTP āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻ‡āĻŽā§‡āĻœ āĻ¸āĻš āĻāĻ•āĻŸāĻŋ āĻ¨āĻ¤ā§āĻ¨ S2I āĻ‡āĻŽā§‡āĻœ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻŦā§‡āĻ¨;
  • āĻĒāĻžāĻ°ā§āĻŸ 3: āĻ•āĻŋāĻ­āĻžāĻŦā§‡ OpenShift āĻĒā§āĻ˛ā§āĻ¯āĻžāĻŸāĻĢāĻ°ā§āĻŽā§‡ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻŽā§‡āĻ¨ā§āĻŸ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻšāĻžāĻ˛āĻžāĻŦā§‡āĻ¨ āĻāĻŦāĻ‚ āĻ¸ā§āĻĨāĻžāĻ¨ā§€āĻ¯āĻŧ āĻĢāĻžāĻ‡āĻ˛ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻŋāĻ™ā§āĻ•ā§āĻ°ā§‹āĻ¨āĻžāĻ‡āĻœ āĻ•āĻ°āĻŦā§‡āĻ¨āĨ¤

āĻ…āĻ¤āĻŋāĻ°āĻŋāĻ•ā§āĻ¤ āĻ¸āĻŽā§āĻĒāĻĻ

āĻ‰āĻ¤ā§āĻ¸: www.habr.com

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨