āĻšāĻžāĻ āĻ¸āĻŦ! āĻāĻāĻŋ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¸āĻŋāĻ°āĻŋāĻā§āĻ° āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻĒā§āĻ¸ā§āĻ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻŽāĻ°āĻž āĻĻā§āĻāĻžāĻ āĻāĻŋāĻāĻžāĻŦā§ Red Hat OpenShift-āĻ āĻāĻ§ā§āĻ¨āĻŋāĻ āĻāĻ¯āĻŧā§āĻŦ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧāĨ¤
āĻāĻā§āĻ° āĻĒā§āĻ¸ā§āĻā§, āĻāĻŽāĻ°āĻž āĻ¨āĻ¤ā§āĻ¨ S2I (āĻ¸ā§āĻ°ā§āĻ¸-āĻā§-āĻāĻŽā§āĻ) āĻŦāĻŋāĻ˛ā§āĻĄāĻžāĻ° āĻāĻŽā§āĻā§āĻ° āĻā§āĻˇāĻŽāĻ¤āĻžāĻā§ āĻ¸āĻžāĻŽāĻžāĻ¨ā§āĻ¯ āĻ¸ā§āĻĒāĻ°ā§āĻļ āĻāĻ°ā§āĻāĻŋ, āĻ¯āĻž āĻāĻĒā§āĻ¨āĻļāĻŋāĻĢāĻ āĻĒā§āĻ˛ā§āĻ¯āĻžāĻāĻĢāĻ°ā§āĻŽā§ āĻāĻ§ā§āĻ¨āĻŋāĻ āĻāĻ¯āĻŧā§āĻŦ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻŦāĻ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻĻā§āĻ°ā§āĻ¤ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻžāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧā§ āĻāĻā§āĻ°āĻšā§ āĻāĻŋāĻ˛āĻžāĻŽ, āĻāĻŦāĻ āĻāĻ āĻāĻŽāĻ°āĻž āĻĻā§āĻāĻŦ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻāĻāĻŋ S2I āĻāĻŽā§āĻ āĻāĻāĻāĻŋ "āĻŦāĻŋāĻļā§āĻĻā§āĻ§" āĻŦāĻŋāĻ˛ā§āĻĄāĻžāĻ° āĻāĻŽā§āĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ āĻāĻŦāĻ āĻāĻāĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ OpenShift āĻ¸āĻŽāĻžāĻŦā§āĻļāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧāĨ¤
āĻā§āĻ˛āĻŋāĻ¨ āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻ¤āĻž āĻāĻŽā§āĻ
āĻ¯ā§āĻŽāĻ¨āĻāĻŋ āĻāĻŽāĻ°āĻž āĻĒāĻžāĻ°ā§āĻ XNUMX-āĻ āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°ā§āĻāĻŋ, āĻŦā§āĻļāĻŋāĻ°āĻāĻžāĻ āĻāĻ§ā§āĻ¨āĻŋāĻ āĻāĻ¯āĻŧā§āĻŦ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¤āĻĨāĻžāĻāĻĨāĻŋāĻ¤ āĻŦāĻŋāĻ˛ā§āĻĄ āĻ¸ā§āĻā§āĻ āĻ°āĻ¯āĻŧā§āĻā§, āĻ¯āĻž āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻā§āĻĄ āĻā§āĻ°āĻžāĻ¨ā§āĻ¸āĻĒāĻŋāĻ˛ā§āĻļāĻ¨, āĻāĻāĻžāĻ§āĻŋāĻ āĻĢāĻžāĻāĻ˛ āĻ¸āĻāĻ¯ā§āĻāĻ¨, āĻāĻŦāĻ āĻŽāĻŋāĻ¨āĻĢāĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻŽāĻ¤ā§ āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ˛āĻžāĻĒāĻā§āĻ˛āĻŋ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°ā§āĨ¤ āĻāĻ āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻĢāĻ˛ā§ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋ - āĻāĻŦāĻ āĻāĻāĻŋ āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ HTML, JavaScript āĻāĻŦāĻ CSS - āĻāĻāĻāĻĒā§āĻ āĻĢā§āĻ˛ā§āĻĄāĻžāĻ°ā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻ āĻĢā§āĻ˛ā§āĻĄāĻžāĻ°ā§āĻ° āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻāĻŋ āĻŦāĻŋāĻ˛ā§āĻĄ āĻā§āĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻā§āĻā§ āĻ¤āĻžāĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§ āĻāĻŦāĻ āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻŋ āĻšāĻŦā§ ./build āĻĢā§āĻ˛ā§āĻĄāĻžāĻ° (āĻāĻŽāĻ°āĻž āĻ¨ā§āĻā§ āĻāĻ°āĻ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤āĻāĻžāĻŦā§ āĻāĻāĻŋāĻ¤ā§ āĻĢāĻŋāĻ°ā§ āĻāĻ¸āĻŦ)āĨ¤
āĻ¸ā§āĻ°ā§āĻ¸-āĻā§-āĻāĻŽā§āĻ (S2I)
āĻāĻ āĻĒā§āĻ¸ā§āĻā§ āĻāĻŽāĻ°āĻž "S2I āĻā§ āĻāĻŦāĻ āĻāĻāĻŋ āĻā§āĻāĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻšāĻ¯āĻŧ" āĻŦāĻŋāĻˇāĻ¯āĻŧāĻāĻŋāĻā§ āĻ¸ā§āĻĒāĻ°ā§āĻļ āĻāĻ°āĻŋ āĻ¨āĻž (āĻāĻĒāĻ¨āĻŋ āĻāĻ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻ°āĻ āĻĒāĻĄāĻŧāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻ¸āĻŽāĻžāĻŦā§āĻļ āĻĒāĻ°ā§āĻŦ
āĻāĻĒāĻ¨āĻŋ āĻ¯āĻāĻ¨ āĻĄāĻāĻžāĻ° āĻŦāĻŋāĻ˛ā§āĻĄ āĻāĻžāĻ˛āĻžāĻ¨ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻĄāĻāĻžāĻ° āĻāĻŽā§āĻ āĻĻāĻŋāĻ¯āĻŧā§ āĻļā§āĻˇ āĻāĻ°ā§āĻ¨ āĻ¤āĻāĻ¨ āĻā§ āĻāĻā§ āĻ¤āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻ ā§āĻ¯āĻžāĻ¸ā§āĻŽā§āĻŦāĻ˛āĻŋ āĻĢā§āĻāĻāĻŋ āĻĒā§āĻ°āĻā§āĻ¤āĻŋāĻ¤ā§ āĻā§āĻŦ āĻŽāĻŋāĻ˛āĨ¤ āĻ¸ā§āĻ āĻ āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§, OpenShift āĻĒā§āĻ˛ā§āĻ¯āĻžāĻāĻĢāĻ°ā§āĻŽā§ āĻāĻāĻāĻŋ āĻŦāĻŋāĻ˛ā§āĻĄ āĻļā§āĻ°ā§ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧāĻāĻŋ āĻāĻā§āĨ¤
āĻāĻāĻāĻŋ āĻāĻ¯āĻŧā§āĻŦ āĻ
ā§āĻ¯āĻžāĻĒ āĻŦāĻŋāĻ˛ā§āĻĄāĻžāĻ° āĻāĻŽā§āĻā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻāĻāĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¤āĻž āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻž āĻāĻŦāĻ āĻŦāĻŋāĻ˛ā§āĻĄ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĻāĻžāĻ¯āĻŧā§āĨ¤
āĻāĻŽāĻ°āĻž āĻāĻā§āĻ āĻŦāĻ˛ā§āĻāĻŋ, āĻ¸āĻŽāĻžāĻĒā§āĻ¤, āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋāĻ° āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ āĻāĻĒāĻ¨āĻŋ āĻā§āĻ¨ āĻ¸āĻ°āĻā§āĻāĻžāĻŽāĻā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨ āĻ¤āĻžāĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, React āĻāĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻāĻāĻŋ āĻšāĻŦā§ ./build āĻĢā§āĻ˛ā§āĻĄāĻžāĻ° āĻāĻŦāĻ Angular āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻŋ āĻšāĻŦā§ project_name/dist āĻĢā§āĻ˛ā§āĻĄāĻžāĻ°āĨ¤ āĻāĻŦāĻ, āĻĒā§āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§ āĻĒā§āĻ¸ā§āĻā§ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ āĻĻā§āĻāĻžāĻ¨ā§ āĻšāĻ¯āĻŧā§āĻā§, āĻāĻāĻāĻĒā§āĻ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ° āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ¨, āĻ¯āĻž āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, OUTPUT_DIR āĻāĻ¨āĻāĻžāĻ¯āĻŧāĻ°āĻ¨āĻŽā§āĻ¨ā§āĻ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻāĻžāĻ°āĻ°āĻžāĻāĻĄ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻ āĻŋāĻ āĻāĻā§, āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻāĻāĻĒā§āĻ āĻĢā§āĻ˛ā§āĻĄāĻžāĻ°ā§āĻ° āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻĨā§āĻā§ āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻ˛āĻžāĻĻāĻž, āĻāĻĒāĻ¨āĻŋ āĻā§āĻŦāĻ˛ āĻā§āĻ¨āĻžāĻ°ā§āĻ āĻāĻāĻāĻĒā§āĻāĻāĻŋāĻā§ āĻāĻŋāĻ¤ā§āĻ°ā§āĻ° āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻĢā§āĻ˛ā§āĻĄāĻžāĻ°ā§ āĻ āĻ¨ā§āĻ˛āĻŋāĻĒāĻŋ āĻāĻ°ā§āĻ¨, āĻ¯āĻĨāĻž /opt/apt-root/outputāĨ¤ āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§āĻ° āĻŦāĻžāĻāĻŋ āĻ āĻāĻļ āĻŦā§āĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻŋ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻĒāĻžāĻ¤āĻ¤ āĻāĻ˛ā§āĻ¨ āĻĻā§āĻ°ā§āĻ¤ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻ§āĻžāĻĒā§ āĻĻā§āĻāĻŋ - āĻ°āĻžāĻ¨ āĻĒāĻ°ā§āĻŦāĨ¤
āĻ°āĻžāĻ¨ āĻĢā§āĻ
āĻāĻ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧāĻāĻŋ āĻāĻā§ āĻ¯āĻāĻ¨ āĻ¸āĻŽāĻžāĻŦā§āĻļ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻ¨āĻ¤ā§āĻ¨ āĻāĻŦāĻŋāĻ¤ā§ āĻĄāĻāĻžāĻ° āĻ°āĻžāĻ¨ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻāĻ˛ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ OpenShift āĻĒā§āĻ˛ā§āĻ¯āĻžāĻāĻĢāĻ°ā§āĻŽā§ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻāĻ āĻāĻāĻ¨āĻž āĻāĻā§āĨ¤ āĻĄāĻŋāĻĢāĻ˛ā§āĻ
āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻāĻŋ āĻĻā§āĻ°ā§āĻ¤ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻžāĻ¨ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻžāĻ˛, āĻ¤āĻŦā§ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻāĻāĻāĻžāĻŦā§ āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ āĻāĻ¨ā§āĻā§āĻ¨ā§āĻ āĻĒāĻ°āĻŋāĻŦā§āĻļāĻ¨ āĻāĻ°āĻžāĻ° āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ āĻ¨āĻžāĨ¤ āĻ āĻŋāĻ āĻāĻā§, āĻ¯ā§āĻšā§āĻ¤ā§ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦā§ āĻāĻŽāĻ°āĻž āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ āĻāĻ¨ā§āĻā§āĻ¨ā§āĻ āĻĒāĻ°āĻŋāĻŦā§āĻļāĻ¨ āĻāĻ°āĻŋ, āĻ¤āĻžāĻ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻŽā§āĻā§āĻ° āĻāĻŋāĻ¤āĻ°ā§ Node.js āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻžāĻ° āĻĻāĻ°āĻāĻžāĻ° āĻ¨ā§āĻ - āĻāĻāĻāĻŋ āĻāĻ¯āĻŧā§āĻŦ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻ ââāĻ¯āĻĨā§āĻˇā§āĻāĨ¤
āĻ āĻ¨ā§āĻ¯ āĻāĻĨāĻžāĻ¯āĻŧ, āĻ ā§āĻ¯āĻžāĻ¸ā§āĻŽā§āĻŦāĻ˛ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻāĻāĻž āĻāĻŋāĻ¨āĻŋāĻ¸ āĻĻāĻ°āĻāĻžāĻ°, āĻāĻā§āĻ¸āĻŋāĻāĻŋāĻāĻ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻ°ā§āĻāĻāĻž āĻĻāĻ°āĻāĻžāĻ°āĨ¤ āĻāĻ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¤ā§, āĻļāĻŋāĻāĻ˛āĻ¯ā§āĻā§āĻ¤ āĻŦāĻŋāĻ˛ā§āĻĄāĻā§āĻ˛āĻŋ āĻāĻžāĻā§ āĻāĻ¸ā§āĨ¤
āĻļā§āĻā§āĻāĻ˛āĻŋāĻ¤ āĻŦāĻŋāĻ˛ā§āĻĄ
āĻāĻ āĻ¨āĻŋāĻ¯āĻŧā§āĻ āĻ¤āĻžāĻ°āĻž āĻ˛ā§āĻā§
"āĻĻā§āĻāĻŋ āĻ¸āĻŽāĻžāĻŦā§āĻļ āĻāĻāĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻāĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ¸āĻāĻāĻ˛āĻŋāĻ¤ āĻ¸āĻ¤ā§āĻ¤āĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§ āĻāĻŦāĻ āĻ āĻ¨ā§āĻ¯āĻāĻŋ āĻ¸ā§āĻ āĻ¸āĻ¤ā§āĻ¤āĻžāĻāĻŋāĻā§ āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻ āĻāĻŋāĻ¤ā§āĻ°ā§ āĻšā§āĻ¸ā§āĻ āĻāĻ°ā§ āĻ¯āĻž āĻ¸ā§āĻ āĻ¸āĻ¤ā§āĻ¤āĻž āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤"
āĻ āĻ¨ā§āĻ¯ āĻāĻĨāĻžāĻ¯āĻŧ, āĻāĻŽāĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻŦāĻŋāĻ˛ā§āĻĄ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ¯āĻŧā§āĻŦ āĻ ā§āĻ¯āĻžāĻĒ āĻŦāĻŋāĻ˛ā§āĻĄāĻžāĻ° āĻāĻŽā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻ¨ā§āĻā§āĻ¨ā§āĻ āĻĒāĻ°āĻŋāĻŦā§āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻ NGINX āĻāĻ¯āĻŧā§āĻŦ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻāĻŽā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋāĨ¤
āĻāĻāĻāĻžāĻŦā§, āĻāĻŽāĻ°āĻž āĻāĻ¯āĻŧā§āĻŦ āĻ ā§āĻ¯āĻžāĻĒ āĻŦāĻŋāĻ˛ā§āĻĄāĻžāĻ° āĻāĻŽā§āĻāĻāĻŋāĻā§ āĻāĻāĻāĻŋ "āĻŦāĻŋāĻļā§āĻĻā§āĻ§" āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻ¤āĻž āĻšāĻŋāĻ¸ā§āĻŦā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ āĻāĻŦāĻ āĻāĻāĻ āĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ āĻā§āĻ āĻ°āĻžāĻ¨āĻāĻžāĻāĻŽ āĻāĻŽā§āĻ āĻ°āĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°āĻŋāĨ¤
āĻāĻāĻ¨ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĻāĻŋāĻ¯āĻŧā§ āĻāĻāĻŋ āĻ¤āĻžāĻāĻžāĻ¨.
āĻĒā§āĻ°āĻļāĻŋāĻā§āĻˇāĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦ
āĻāĻāĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻ¸āĻŦāĻāĻŋāĻā§ āĻāĻāĻ¸āĻžāĻĨā§ āĻ°āĻžāĻāĻ¤ā§ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻāĻ°āĻŦā§
āĻāĻ¸ā§āĻ¨ āĻāĻ āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻāĻ°āĻ āĻŦāĻŋāĻļāĻĻā§ āĻĻā§āĻāĻŋ āĻāĻŦāĻ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ° āĻŦāĻŋāĻāĻžāĻ āĻĻāĻŋāĻ¯āĻŧā§ āĻļā§āĻ°ā§ āĻāĻ°āĻŋāĨ¤
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āĨ¤
āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻāĻŽāĻžāĻ¨ā§āĻĄāĻāĻŋ āĻā§āĻŦāĻ˛ āĻāĻ āĻā§āĻŽāĻĒā§āĻ˛ā§āĻā§āĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĨ¤
āĻāĻ āĻāĻŽāĻžāĻ¨ā§āĻĄāĻā§āĻ˛āĻŋ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§, āĻāĻŽāĻ°āĻž āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻŦ āĻ¯ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻĻā§āĻāĻŋ āĻ¸āĻŽāĻžāĻŦā§āĻļ āĻ°āĻ¯āĻŧā§āĻā§:
āĻāĻŦāĻ āĻāĻāĻžāĻ°āĻāĻŋāĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻ¨ā§ āĻĢāĻŋāĻ°ā§, āĻāĻŽāĻ°āĻž āĻ˛āĻā§āĻ āĻāĻ°āĻž āĻĒāĻĄ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻŦ:
āĻ˛āĻŋāĻā§āĻāĻāĻŋ āĻā§āĻ˛āĻŋāĻ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻāĻŽāĻžāĻĻā§āĻ° āĻ ā§āĻ¯āĻžāĻĒā§ āĻ¨āĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻž āĻšāĻŦā§, āĻ¯āĻž āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ ā§āĻ¯āĻžāĻĒ āĻĒā§āĻˇā§āĻ āĻž:
āĻĒāĻ°āĻŋāĻĒā§āĻ°āĻ 1
āĻā§āĻŖāĻŋāĻ āĻĒā§āĻ°ā§āĻŽā§āĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻžāĻĻā§āĻ°āĻ āĻ°āĻ¯āĻŧā§āĻā§
OUTPUT_DIR āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻāĻžāĻĄāĻŧāĻž āĻāĻāĻžāĻ¨ā§ āĻĒā§āĻ¯āĻžāĻāĻžāĻ°ā§āĻ¨ āĻāĻāĻāĨ¤
āĻĒāĻ°āĻŋāĻĒā§āĻ°āĻ 2
āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§ āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻāĻ¯āĻŧā§āĻŦ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻšāĻŋāĻ¸āĻžāĻŦā§ NGINX āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻāĻŋ, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻŋ Apache āĻĻāĻŋāĻ¯āĻŧā§ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻŦā§āĻļ āĻ¸āĻšāĻ, āĻļā§āĻ§ā§ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻā§āĻŽāĻĒā§āĻ˛ā§āĻāĻāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°ā§āĻ¨
āĻāĻĒāĻ¸āĻāĻšāĻžāĻ°
āĻāĻ āĻ¸āĻŋāĻ°āĻŋāĻā§āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻ āĻāĻļā§, āĻāĻŽāĻ°āĻž āĻĻā§āĻāĻŋāĻ¯āĻŧā§āĻāĻŋ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻĒā§āĻ¨āĻļāĻŋāĻĢāĻ āĻĒā§āĻ˛ā§āĻ¯āĻžāĻāĻĢāĻ°ā§āĻŽā§ āĻāĻ§ā§āĻ¨āĻŋāĻ āĻāĻ¯āĻŧā§āĻŦ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻā§āĻ˛āĻŋāĻā§ āĻĻā§āĻ°ā§āĻ¤ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧāĨ¤ āĻāĻ āĻāĻŽāĻ°āĻž āĻĻā§āĻā§āĻāĻŋ āĻāĻāĻāĻŋ āĻāĻ¯āĻŧā§āĻŦ āĻ ā§āĻ¯āĻžāĻĒ āĻāĻŽā§āĻ āĻā§ āĻāĻ°ā§ āĻāĻŦāĻ āĻā§āĻāĻžāĻŦā§ āĻāĻāĻŋāĻā§ āĻāĻ°āĻ āĻĒā§āĻ°ā§āĻĄāĻžāĻāĻļāĻ¨-āĻ°ā§āĻĄāĻŋ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻŦāĻŋāĻ˛ā§āĻĄ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻā§āĻāĻ¨āĻĄ āĻŦāĻŋāĻ˛ā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ NGINX-āĻāĻ° āĻŽāĻ¤ā§ āĻāĻāĻāĻŋ āĻŦāĻŋāĻļā§āĻĻā§āĻ§ āĻāĻ¯āĻŧā§āĻŦ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧāĨ¤ āĻāĻ āĻ¸āĻŋāĻ°āĻŋāĻā§āĻ° āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻāĻŦāĻ āĻā§āĻĄāĻŧāĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§, āĻāĻŽāĻ°āĻž āĻĻā§āĻāĻžāĻŦ āĻāĻŋāĻāĻžāĻŦā§ OpenShift-āĻ āĻāĻĒāĻ¨āĻžāĻ° āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻĄā§āĻā§āĻ˛āĻĒāĻŽā§āĻ¨ā§āĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻāĻžāĻ˛āĻžāĻ¤ā§ āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ āĻāĻŦāĻ āĻĻā§āĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋāĻ° āĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻāĻā§āĻļāĻ¨ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻšāĻ¯āĻŧāĨ¤
āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§āĻ° āĻāĻ āĻ¸āĻŋāĻ°āĻŋāĻā§āĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§
- āĻ
āĻāĻļ ā§¨:
āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻ§āĻžāĻĒā§ āĻāĻ§ā§āĻ¨āĻŋāĻ āĻāĻ¯āĻŧā§āĻŦ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻāĻŋāĻāĻžāĻŦā§ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ ; - āĻĒāĻžāĻ°ā§āĻ 2: āĻĒā§āĻ°ā§āĻĄāĻžāĻāĻļāĻ¨ āĻĄāĻŋāĻĒā§āĻ˛āĻ¯āĻŧāĻŽā§āĻ¨ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¯ā§āĻā§āĻ¤ āĻāĻĒā§āĻ¨āĻļāĻŋāĻĢāĻ āĻ ā§āĻ¯āĻžāĻ¸ā§āĻŽā§āĻŦāĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻ¨āĻāĻŋāĻāĻāĻāĻ¨āĻāĻā§āĻ¸-āĻāĻ° āĻŽāĻ¤ā§ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ HTTP āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻāĻŽā§āĻ āĻ¸āĻš āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ S2I āĻāĻŽā§āĻ āĻā§āĻāĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦā§āĻ¨;
- āĻĒāĻžāĻ°ā§āĻ 3: āĻāĻŋāĻāĻžāĻŦā§ OpenShift āĻĒā§āĻ˛ā§āĻ¯āĻžāĻāĻĢāĻ°ā§āĻŽā§ āĻāĻĒāĻ¨āĻžāĻ° āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻĄā§āĻā§āĻ˛āĻĒāĻŽā§āĻ¨ā§āĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻāĻžāĻ˛āĻžāĻŦā§āĻ¨ āĻāĻŦāĻ āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ āĻĢāĻžāĻāĻ˛ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻāĻ āĻāĻ°āĻŦā§āĻ¨āĨ¤
āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻ¸āĻŽā§āĻĒāĻĻ
- āĻŦāĻŋāĻ¨āĻžāĻŽā§āĻ˛ā§āĻ¯ā§ āĻāĻŦā§āĻ
āĻāĻĒā§āĻ¨āĻļāĻŋāĻĢāĻā§ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻšāĻā§āĻā§ . - āĻ¤āĻĨā§āĻ¯
OpenShift āĻāĻŦāĻ Kubernetes .
āĻāĻ¤ā§āĻ¸: www.habr.com