āĻāĻŽāĻŋ 90 āĻāĻ° āĻĻāĻļāĻā§āĻ° āĻļā§āĻˇā§āĻ° āĻĻāĻŋāĻā§ āĻāĻŽāĻžāĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻāĻ¯āĻŧā§āĻŦāĻ¸āĻžāĻāĻ āĻ˛āĻŋāĻā§āĻāĻŋāĻ˛āĻžāĻŽāĨ¤ āĻ¤āĻāĻ¨ āĻ¤āĻžāĻĻā§āĻ° āĻāĻžāĻā§āĻ° āĻā§āĻ°āĻŽā§ āĻ°āĻžāĻāĻž āĻā§āĻŦ āĻ¸āĻšāĻ āĻāĻŋāĻ˛āĨ¤ āĻāĻŋāĻā§ āĻļā§āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻšā§āĻ¸ā§āĻāĻŋāĻ āĻ āĻāĻāĻāĻŋ Apache āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻāĻŋāĻ˛, āĻāĻĒāĻ¨āĻŋ FTP āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻ˛āĻ āĻāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻāĻ°āĻāĻŽ āĻāĻŋāĻā§ āĻ˛āĻŋāĻā§ ftp://ftp.example.com
. āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻĒāĻ¨āĻžāĻ° āĻ¨āĻžāĻŽ āĻāĻŦāĻ āĻĒāĻžāĻ¸āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻ˛āĻŋāĻāĻ¤ā§ āĻšāĻŦā§ āĻāĻŦāĻ āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻāĻĒāĻ˛ā§āĻĄ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ¸āĻŽāĻ¯āĻŧ āĻāĻŋāĻ˛, āĻāĻāĻ¨āĻāĻžāĻ° āĻā§āĻ¯āĻŧā§ āĻ¤āĻāĻ¨ āĻ¸āĻŦāĻāĻŋāĻā§ āĻ¸āĻšāĻ āĻāĻŋāĻ˛āĨ¤
āĻ¤āĻžāĻ°āĻĒāĻ° āĻĨā§āĻā§ āĻĻā§āĻ āĻĻāĻļāĻā§ āĻ¸āĻŦāĻāĻŋāĻā§ āĻ āĻ¨ā§āĻ āĻŦāĻĻāĻ˛ā§ āĻā§āĻā§āĨ¤ āĻāĻ¯āĻŧā§āĻŦāĻ¸āĻžāĻāĻāĻā§āĻ˛āĻŋ āĻāĻ°āĻ āĻāĻāĻŋāĻ˛ āĻšāĻ¯āĻŧā§ āĻāĻ ā§āĻā§; āĻĒā§āĻ°ā§āĻĄāĻžāĻāĻļāĻ¨ā§ āĻŽā§āĻā§āĻ¤āĻŋ āĻĒāĻžāĻāĻ¯āĻŧāĻžāĻ° āĻāĻā§ āĻ¸ā§āĻā§āĻ˛āĻŋāĻā§ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ā§ˇ āĻāĻāĻāĻŋ āĻāĻāĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻ˛ā§āĻĄ āĻŦā§āĻ¯āĻžāĻ˛ā§āĻ¨ā§āĻ¸āĻžāĻ°ā§āĻ° āĻĒāĻŋāĻāĻ¨ā§ āĻāĻ˛āĻŽāĻžāĻ¨ āĻ āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻĒāĻ°āĻŋāĻŖāĻ¤ āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻšāĻ¯āĻŧā§ āĻāĻ ā§āĨ¤
āĻāĻŽāĻžāĻ° āĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻāĻ¤ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻžāĻ° āĻāĻāĻāĻŋ āĻŦāĻŋāĻļā§āĻˇ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻāĻŋāĻ˛āĨ¤ āĻāĻŦāĻ āĻāĻŽāĻŋ āĻāĻžāĻ¨āĻ¤āĻžāĻŽ āĻ¯ā§ āĻāĻŽāĻžāĻ° āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻāĻāĻŋ āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°ā§ āĻ¸āĻžāĻāĻāĻāĻŋāĻā§ āĻā§āĻĒāĻžāĻĻāĻ¨ā§ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻžāĻ° āĻā§āĻˇāĻŽāĻ¤āĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨: āĻāĻāĻāĻŋ āĻļāĻžāĻāĻžāĻ¯āĻŧ āĻā§āĻĄ āĻ˛ā§āĻāĻž master
āĻāĻŋāĻāĻšāĻžāĻŦā§āĨ¤ āĻāĻĒāĻ°āĻ¨ā§āĻ¤ā§, āĻāĻŽāĻŋ āĻāĻžāĻ¨āĻ¤āĻžāĻŽ āĻ¯ā§ āĻāĻŽāĻžāĻ° āĻā§āĻ āĻāĻ¯āĻŧā§āĻŦ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻ
āĻĒāĻžāĻ°ā§āĻļāĻ¨ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻŋ āĻāĻāĻāĻŋ āĻŦāĻŋāĻļāĻžāĻ˛ āĻā§āĻŦāĻžāĻ°āĻ¨ā§āĻāĻ¸ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž āĻāĻ°āĻ¤ā§ āĻāĻžāĻāĻ¨āĻŋ, āĻŦāĻž āĻĄāĻāĻžāĻ° āĻ¸ā§āĻ¯āĻŧāĻžāĻ°ā§āĻŽ āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻāĻžāĻāĻ¨āĻŋ, āĻŦāĻž āĻĒāĻĄ, āĻāĻā§āĻ¨ā§āĻ āĻāĻŦāĻ āĻ
āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ§āĻ°āĻŖā§āĻ° āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻŦāĻšāĻ° āĻŦāĻāĻžāĻ¯āĻŧ āĻ°āĻžāĻāĻ¤ā§ āĻāĻžāĻāĻ¨āĻŋāĨ¤ āĻāĻāĻŋāĻ˛āĻ¤āĻž āĻāĻžāĻ āĻ¯āĻ¤āĻāĻž āĻ¸āĻŽā§āĻāĻŦ āĻ¸āĻšāĻ āĻāĻ°āĻžāĻ° āĻ˛āĻā§āĻˇā§āĻ¯ āĻ
āĻ°ā§āĻāĻ¨ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻžāĻā§ CI/CD āĻāĻ° āĻ¸āĻžāĻĨā§ āĻĒāĻ°āĻŋāĻāĻŋāĻ¤ āĻšāĻ¤ā§ āĻšāĻŦā§āĨ¤
āĻāĻĒāĻ¨āĻžāĻ° āĻ¯āĻĻāĻŋ āĻāĻāĻāĻŋ āĻā§āĻ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒ āĻĨāĻžāĻā§ (āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻāĻāĻāĻŋ Node.js āĻĒā§āĻ°āĻāĻ˛ā§āĻĒ) āĻāĻŦāĻ āĻāĻĒāĻ¨āĻŋ āĻāĻžāĻ¨āĻ¤ā§ āĻāĻžāĻ¨ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§āĻ° āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ, āĻāĻŦāĻ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°ā§ āĻ¯ā§ āĻ°āĻŋāĻĒā§āĻāĻŋāĻāĻ°āĻŋāĻ¤ā§ āĻ¯āĻž āĻ¸āĻāĻ°āĻā§āĻˇāĻŋāĻ¤ āĻāĻā§ āĻ¤āĻž āĻā§āĻĒāĻžāĻĻāĻ¨ā§ āĻ¯āĻž āĻāĻžāĻ āĻāĻ°ā§ āĻ¤āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻŽāĻŋāĻ˛ā§ āĻ¯āĻžāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻŽāĻŋ āĻāĻĒāĻ¨āĻŋ āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§ āĻāĻā§āĻ°āĻšā§ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻŽāĻ¨ā§ āĻšāĻ¯āĻŧ.
āĻĒā§āĻ°ā§āĻŦāĻļāĻ°ā§āĻ¤
āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻāĻŋāĻ° āĻĒāĻžāĻ āĻā§āĻ° āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻ˛āĻžāĻāĻ¨ āĻāĻŦāĻ āĻŦā§āĻ¯āĻžāĻļ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻ˛ā§āĻāĻžāĻ° āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻ§āĻžāĻ°āĻŖāĻž āĻ°āĻ¯āĻŧā§āĻā§ āĻŦāĻ˛ā§ āĻāĻļāĻž āĻāĻ°āĻž āĻšāĻā§āĻā§āĨ¤ āĻāĻĒāĻ°āĻ¨ā§āĻ¤ā§, āĻ¤āĻžāĻ° āĻ
ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻŦā§
āĻā§āĻ˛
āĻāĻŽāĻŋ āĻŦāĻ˛āĻŦ āĻ¨āĻž āĻ¯ā§ āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻāĻŋāĻā§ āĻ¨āĻŋāĻāĻļāĻ°ā§āĻ¤āĻāĻžāĻŦā§ "āĻāĻŋāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛" āĻŦāĻ˛āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻāĻŋ āĻāĻ°āĻ āĻāĻāĻāĻŋ āĻ¨āĻĨāĻŋ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻŽāĻŋ āĻ¯āĻž āĻļāĻŋāĻā§āĻāĻŋ āĻ¸ā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻĨāĻž āĻŦāĻ˛āĻŋ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧ āĻĒāĻžāĻ¸ā§ āĻ¸āĻā§āĻāĻžāĻ˛āĻŋāĻ¤ āĻĒā§āĻ°ā§āĻĄāĻžāĻāĻļāĻ¨ā§ āĻā§āĻĄ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻŦāĻ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¯ā§āĻā§āĻ¤ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻŋāĨ¤
āĻāĻ āĻāĻŽāĻžāĻ° āĻāĻ°ā§āĻŽāĻĒā§āĻ°āĻŦāĻžāĻš āĻšāĻā§āĻā§ āĻāĻŋ āĻļā§āĻˇ.
āĻŦā§āĻ¯āĻ¤ā§āĻ¤ āĻ¯ā§āĻā§āĻ¨ā§ āĻ¸āĻāĻā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ āĻļāĻžāĻāĻžāĻ¯āĻŧ āĻĒā§āĻ¸ā§āĻ āĻāĻ°āĻž āĻā§āĻĄā§āĻ° āĻāĻ¨ā§āĻ¯ master
, āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻāĻ°ā§āĻŽ āĻ¸āĻā§āĻāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧ:
- āĻā§āĻ°ā§āĻ¯āĻžāĻāĻŋāĻ¸ āĻ¸āĻŋāĻāĻ-āĻāĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒāĻāĻŋ āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧāĨ¤
- āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻāĻ¨āĻŋāĻ, āĻāĻ¨ā§āĻāĻŋāĻā§āĻ°ā§āĻļāĻ¨ āĻāĻŦāĻ āĻļā§āĻˇ āĻĨā§āĻā§ āĻļā§āĻˇ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¸āĻā§āĻāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤
āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¯ā§ āĻā§āĻĄā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĒāĻĄāĻŧā§ āĻ¤āĻžāĻ° āĻāĻ¨ā§āĻ¯ master
, āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ¸āĻā§āĻāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧ:
- āĻāĻĒāĻ°ā§ āĻāĻ˛ā§āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ¸āĻŦāĻāĻŋāĻā§, āĻĒā§āĻ˛āĻžāĻ¸...
- āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻā§āĻĄ, āĻ¸ā§āĻāĻŋāĻāĻ¸ āĻāĻŦāĻ āĻĒāĻ°āĻŋāĻŦā§āĻļā§āĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻĄāĻāĻžāĻ° āĻāĻŽā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĨ¤
- āĻĄāĻāĻžāĻ° āĻšāĻžāĻŦā§ āĻāĻŦāĻŋāĻāĻŋ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻšāĻā§āĻā§āĨ¤
- āĻā§āĻĒāĻžāĻĻāĻ¨ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻāĨ¤
- āĻĄāĻāĻžāĻ° āĻšāĻžāĻŦ āĻĨā§āĻā§ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻāĻāĻāĻŋ āĻāĻŦāĻŋ āĻāĻĒāĻ˛ā§āĻĄ āĻāĻ°āĻž āĻšāĻā§āĻā§āĨ¤
- āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ§āĻžāĻ°āĻ āĻŦāĻ¨ā§āĻ§ āĻāĻ°āĻž āĻāĻŦāĻ āĻ¨āĻ¤ā§āĻ¨ āĻāĻŦāĻŋāĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻļā§āĻ°ā§ āĻāĻ°āĻžāĨ¤
āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻĄāĻāĻžāĻ°, āĻāĻŋāĻ¤ā§āĻ° āĻāĻŦāĻ āĻĒāĻžāĻ¤ā§āĻ° āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻā§āĻŦāĻžāĻ°ā§ āĻāĻŋāĻā§āĻ āĻ¨āĻž āĻāĻžāĻ¨ā§āĻ¨ āĻ¤āĻŦā§ āĻāĻŋāĻ¨ā§āĻ¤āĻž āĻāĻ°āĻŦā§āĻ¨ āĻ¨āĻžāĨ¤ āĻāĻŽāĻŋ āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻāĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¸āĻŦ āĻŦāĻ˛āĻŦāĨ¤
CI/CD āĻāĻŋ?
āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻ°ā§āĻĒ CI/CD-āĻāĻ° āĻ āĻ°ā§āĻĨ āĻšāĻ˛ "āĻ āĻŦāĻŋāĻā§āĻāĻŋāĻ¨ā§āĻ¨ āĻāĻā§āĻāĻ°āĻŖ/āĻ¨āĻŋāĻ°āĻŦāĻŋāĻā§āĻāĻŋāĻ¨ā§āĻ¨ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĨ¤"
â āĻā§āĻ°āĻŽāĻžāĻāĻ¤ āĻāĻā§āĻāĻ°āĻŖ
āĻā§āĻ°āĻŽāĻžāĻāĻ¤ āĻāĻ¨ā§āĻāĻŋāĻā§āĻ°ā§āĻļāĻ¨ āĻšāĻ˛ āĻāĻŽāĻ¨ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¯ā§āĻāĻžāĻ¨ā§ āĻĄā§āĻā§āĻ˛āĻĒāĻžāĻ°āĻ°āĻž āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§āĻ° āĻŽā§āĻ˛ āĻ¸ā§āĻ°ā§āĻ¸ āĻā§āĻĄ āĻ°āĻŋāĻĒā§āĻāĻŋāĻāĻ°āĻŋāĻ¤ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻļā§āĻ°ā§āĻ¤āĻŋ āĻĻā§āĻ¯āĻŧ (āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻāĻāĻāĻŋ āĻļāĻžāĻāĻž master
) āĻāĻāĻ āĻ¸āĻŽāĻ¯āĻŧā§, āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻā§āĻĄā§āĻ° āĻā§āĻŖāĻŽāĻžāĻ¨ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
â āĻ āĻŦāĻŋāĻ°āĻžāĻŽ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž
āĻā§āĻ°āĻŽāĻžāĻāĻ¤ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž āĻšāĻ˛ āĻāĻ¨ āĻāĻ¨, āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻā§āĻĄ āĻā§āĻĒāĻžāĻĻāĻ¨ā§ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĨ¤ CI/CD āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻ°ā§āĻĒā§āĻ° āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻ āĻāĻļāĻā§ āĻāĻāĻ¨āĻ āĻāĻāĻ¨āĻ "āĻ āĻŦāĻŋāĻā§āĻāĻŋāĻ¨ā§āĻ¨ āĻŦāĻŋāĻ¤āĻ°āĻŖ" āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦāĻžāĻ¨āĻžāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻāĻŋ āĻŽā§āĻ˛āĻ¤ "āĻ¨āĻŋāĻ°āĻŦāĻŋāĻā§āĻāĻŋāĻ¨ā§āĻ¨ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ°" āĻŽāĻ¤āĻ, āĻāĻŋāĻ¨ā§āĻ¤ā§ "āĻ¨āĻŋāĻ°āĻŦāĻŋāĻā§āĻāĻŋāĻ¨ā§āĻ¨ āĻŦāĻŋāĻ¤āĻ°āĻŖ" āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§āĻ° āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻļā§āĻ°ā§ āĻāĻ°āĻžāĻ° āĻāĻā§ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻā§āĻ˛āĻŋ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧāĻ¤āĻž āĻŦā§āĻāĻžāĻ¯āĻŧāĨ¤
āĻā§āĻāĻŋāĻ āĻ¸ā§āĻāĻžāĻ°ā§āĻā§āĻĄ
āĻāĻ āĻ¸āĻŦ āĻļāĻŋāĻāĻ¤ā§ āĻāĻŽāĻŋ āĻ¯ā§ āĻ
ā§āĻ¯āĻžāĻĒāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŋ āĻ¤āĻžāĻā§ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ
āĻāĻŽāĻžāĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋ Node.js āĻĒāĻ°āĻŋāĻŦā§āĻļā§ āĻāĻ˛āĻŽāĻžāĻ¨ āĻāĻāĻāĻŋ āĻāĻā§āĻ¸āĻĒā§āĻ°ā§āĻ¸ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°, āĻāĻāĻāĻŋ āĻāĻāĻ-āĻĒā§āĻˇā§āĻ āĻž āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻĒāĻ°āĻŋāĻŦā§āĻļāĻ¨ āĻāĻ°ā§ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻ¸ā§āĻ°āĻā§āĻˇāĻŋāĻ¤ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°-āĻ¸āĻžāĻāĻĄ API āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻ°ā§āĨ¤ āĻāĻ āĻ¸ā§āĻĨāĻžāĻĒāĻ¤ā§āĻ¯āĻāĻŋ āĻ¸ā§āĻ āĻā§āĻļāĻ˛ āĻ
āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°ā§ āĻ¯āĻž āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻ¸āĻžāĻĨā§ āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļ āĻāĻ°āĻ˛āĻžāĻŽ
āĻĄāĻāĻļā§āĻ°āĻŽāĻŋāĻ
āĻĄāĻāĻžāĻ° āĻšāĻ˛ āĻāĻāĻāĻŋ āĻā§āĻ˛ āĻ¯āĻž, āĻāĻ¨āĻā§āĻāĻ¨āĻžāĻ°āĻžāĻāĻā§āĻļāĻ¨ āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¤āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻ§āĻ¨ā§āĻ¯āĻŦāĻžāĻĻ, āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻā§āĻ˛āĻŋāĻā§ āĻ¸āĻšāĻā§āĻ āĻŦāĻŋāĻ¤āĻ°āĻŖ, āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻŦāĻ āĻāĻāĻ āĻĒāĻ°āĻŋāĻŦā§āĻļā§ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻ
āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧ, āĻāĻŽāĻ¨āĻāĻŋ āĻĄāĻāĻžāĻ° āĻĒā§āĻ˛ā§āĻ¯āĻžāĻāĻĢāĻ°ā§āĻŽ āĻ¨āĻŋāĻā§āĻ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻĒāĻ°āĻŋāĻŦā§āĻļā§ āĻāĻ˛ā§āĨ¤ āĻĒā§āĻ°āĻĨāĻŽā§, āĻāĻŽāĻžāĻā§ āĻĄāĻāĻžāĻ° āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻ˛āĻžāĻāĻ¨ āĻā§āĻ˛āĻ¸ (āĻ¸āĻŋāĻāĻ˛āĻāĻ) āĻ āĻāĻŽāĻžāĻ° āĻšāĻžāĻ¤ āĻĒā§āĻ¤ā§ āĻšāĻŦā§āĨ¤
āĻĄāĻāĻžāĻ° āĻšāĻžāĻŦ āĻŽā§āĻāĻžāĻŽā§āĻāĻŋ āĻāĻāĻ āĻāĻŋāĻ¨āĻŋāĻ¸
āĻ¸ā§āĻ¤āĻ°āĻžāĻ, āĻĄāĻāĻžāĻ° āĻĻāĻŋāĻ¯āĻŧā§ āĻļā§āĻ°ā§ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻĒāĻ¨āĻžāĻā§ āĻĻā§āĻāĻŋ āĻāĻŋāĻ¨āĻŋāĻ¸ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§:
- āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°ā§āĻ¨
āĻĄāĻāĻžāĻ° āĻĄā§āĻ¸ā§āĻāĻāĻĒ . - āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯
āĻĄāĻāĻžāĻ° āĻšāĻžāĻŦ .
āĻāĻ° āĻĒāĻ°ā§, āĻāĻĒāĻ¨āĻŋ āĻĄāĻāĻžāĻ° āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖāĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻ¤ā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻāĻŽāĻžāĻ¨ā§āĻĄāĻāĻŋ āĻāĻžāĻ˛āĻŋāĻ¯āĻŧā§ āĻĄāĻāĻžāĻ° āĻ¸āĻŋāĻāĻ˛āĻāĻ āĻāĻžāĻ āĻāĻ°āĻā§ āĻāĻŋāĻ¨āĻž āĻ¤āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨:
docker -v
āĻāĻ°āĻĒāĻ°ā§, āĻāĻŋāĻā§āĻāĻžāĻ¸āĻž āĻāĻ°āĻž āĻšāĻ˛ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻ¨āĻžāĻŽ āĻāĻŦāĻ āĻĒāĻžāĻ¸āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻĒā§āĻ°āĻŦā§āĻļ āĻāĻ°ā§ āĻĄāĻāĻžāĻ° āĻšāĻžāĻŦā§ āĻ˛āĻ āĻāĻ¨ āĻāĻ°ā§āĻ¨:
docker login
āĻĄāĻāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§, āĻāĻĒāĻ¨āĻžāĻā§ āĻ āĻŦāĻļā§āĻ¯āĻ āĻāĻŋāĻ¤ā§āĻ° āĻāĻŦāĻ āĻĒāĻžāĻ¤ā§āĻ°ā§āĻ° āĻ§āĻžāĻ°āĻŖāĻžāĻā§āĻ˛āĻŋ āĻŦā§āĻāĻ¤ā§ āĻšāĻŦā§āĨ¤
âāĻāĻŦāĻŋ
āĻāĻāĻāĻŋ āĻāĻŋāĻ¤ā§āĻ° āĻāĻāĻāĻŋ āĻŦā§āĻ˛ā§āĻĒā§āĻ°āĻŋāĻ¨ā§āĻā§āĻ° āĻŽāĻ¤ā§ āĻāĻŋāĻā§ āĻ¯āĻž āĻ§āĻžāĻ°āĻ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻžāĻŦāĻ˛ā§ āĻ§āĻžāĻ°āĻŖ āĻāĻ°ā§āĨ¤ āĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻĢāĻžāĻāĻ˛ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻŦāĻ āĻ¸ā§āĻāĻŋāĻāĻ¸ā§āĻ° āĻāĻāĻāĻŋ āĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§āĻ¯āĻŧ āĻ¸ā§āĻ¨ā§āĻ¯āĻžāĻĒāĻļāĻāĨ¤ āĻŦāĻŋāĻāĻžāĻļāĻāĻžāĻ°ā§āĻ°āĻž āĻ¸āĻšāĻā§āĻ āĻāĻŦāĻŋ āĻļā§āĻ¯āĻŧāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
# ĐŅвОд ŅвĐĩĐ´ĐĩĐŊиК ОйО вŅĐĩŅ
ОйŅаСаŅ
docker images
āĻāĻ āĻāĻŽāĻžāĻ¨ā§āĻĄāĻāĻŋ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽ āĻ¸āĻš āĻāĻāĻāĻŋ āĻā§āĻŦāĻŋāĻ˛ āĻāĻāĻāĻĒā§āĻ āĻāĻ°āĻŦā§:
REPOSITORY TAG IMAGE ID CREATED SIZE
---
āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§āĻ¤ā§ āĻāĻŽāĻ°āĻž āĻāĻāĻ āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ā§ āĻāĻŽāĻžāĻ¨ā§āĻĄā§āĻ° āĻāĻŋāĻā§ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĻā§āĻāĻŦ - āĻĒā§āĻ°āĻĨāĻŽā§ āĻāĻāĻāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻ¸āĻš āĻāĻāĻāĻŋ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻāĻā§, āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻāĻŋ āĻā§ āĻāĻāĻāĻĒā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¤āĻžāĻ° āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖāĨ¤
âāĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ°
āĻāĻāĻāĻŋ āĻ§āĻžāĻ°āĻ āĻāĻāĻāĻŋ āĻāĻā§āĻ¸āĻŋāĻāĻŋāĻāĻā§āĻŦāĻ˛ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻ¯āĻž āĻāĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻ¸āĻŦāĻāĻŋāĻā§ āĻ§āĻžāĻ°āĻŖ āĻāĻ°ā§āĨ¤ āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻ¸āĻ°ā§āĻŦāĻĻāĻž āĻāĻāĻ āĻāĻžāĻ āĻāĻ°āĻŦā§, āĻ āĻŦāĻāĻžāĻ āĻžāĻŽā§ āĻ¨āĻŋāĻ°ā§āĻŦāĻŋāĻļā§āĻˇā§: āĻāĻāĻāĻŋ āĻŦāĻŋāĻā§āĻāĻŋāĻ¨ā§āĻ¨ āĻĒāĻ°āĻŋāĻŦā§āĻļā§ āĻāĻŦāĻ āĻāĻāĻ āĻĒāĻ°āĻŋāĻŦā§āĻļā§āĨ¤ āĻŽā§āĻĻā§āĻĻāĻž āĻāĻĨāĻž āĻšāĻ˛ āĻāĻāĻ āĻāĻŋāĻ¤ā§āĻ°ā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻĒāĻ°āĻŋāĻŦā§āĻļā§ āĻāĻžāĻ˛ā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
# ĐĐĩŅĐĩŅиŅĐģĐĩĐŊиĐĩ вŅĐĩŅ
ĐēĐžĐŊŅĐĩĐšĐŊĐĩŅОв
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
---
âāĻā§āĻ¯āĻžāĻ
āĻāĻāĻāĻŋ āĻā§āĻ¯āĻžāĻ āĻāĻāĻāĻŋ āĻāĻŋāĻ¤ā§āĻ°ā§āĻ° āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖā§āĻ° āĻāĻāĻāĻŋ āĻāĻā§āĻāĻŋāĻ¤āĨ¤
â āĻĄāĻāĻžāĻ° āĻāĻŽāĻžāĻ¨ā§āĻĄā§āĻ° āĻāĻāĻāĻŋ āĻĻā§āĻ°ā§āĻ¤ āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸
āĻāĻāĻžāĻ¨ā§ āĻāĻŋāĻā§ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻāĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻĄāĻāĻžāĻ° āĻāĻŽāĻžāĻ¨ā§āĻĄā§āĻ° āĻāĻāĻāĻŋ āĻāĻāĻžāĻ°āĻāĻŋāĻ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤
āĻā§āĻŽ
āĻĒā§āĻ°āĻ¸āĻā§āĻ
āĻĒā§āĻ°āĻāĻžāĻŦ
āĻāĻžāĻŦāĻŽā§āĻ°ā§āĻ¤āĻŋ
āĻāĻāĻāĻŋ āĻĄāĻāĻžāĻ°āĻĢāĻžāĻāĻ˛ āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻāĻŦāĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž
āĻāĻžāĻŦāĻŽā§āĻ°ā§āĻ¤āĻŋ
āĻāĻŽā§āĻ āĻā§āĻ¯āĻžāĻāĻŋāĻ
āĻāĻžāĻŦāĻŽā§āĻ°ā§āĻ¤āĻŋ
āĻāĻŽā§āĻ āĻ¤āĻžāĻ˛āĻŋāĻāĻž
āĻāĻ§āĻžāĻ°
āĻāĻāĻāĻŋ āĻāĻŦāĻŋāĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻ§āĻžāĻ°āĻ āĻāĻžāĻ˛āĻžāĻ¨ā§
āĻāĻžāĻŦāĻŽā§āĻ°ā§āĻ¤āĻŋ
āĻ°ā§āĻāĻŋāĻ¸ā§āĻā§āĻ°āĻŋāĻ¤ā§ āĻāĻāĻāĻŋ āĻāĻŦāĻŋ āĻāĻĒāĻ˛ā§āĻĄ āĻāĻ°āĻž āĻšāĻā§āĻā§
āĻāĻžāĻŦāĻŽā§āĻ°ā§āĻ¤āĻŋ
āĻ°ā§āĻāĻŋāĻ¸ā§āĻā§āĻ°āĻŋ āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻāĻŦāĻŋ āĻ˛ā§āĻĄ āĻāĻ°āĻž āĻšāĻā§āĻā§
āĻāĻ§āĻžāĻ°
āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĒāĻžāĻ¤ā§āĻ°ā§
āĻāĻŦāĻŋ/āĻ§āĻžāĻ°āĻ
āĻ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻĒāĻžāĻ¤ā§āĻ° āĻāĻŦāĻ āĻāĻŦāĻŋ āĻ āĻĒāĻ¸āĻžāĻ°āĻŖ
âāĻĄāĻāĻžāĻ°āĻĢāĻžāĻāĻ˛
āĻāĻŽāĻŋ āĻāĻžāĻ¨āĻŋ āĻāĻŋāĻāĻžāĻŦā§ āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧāĻāĻžāĻŦā§ āĻāĻāĻāĻŋ āĻāĻ¤ā§āĻĒāĻžāĻĻāĻ¨ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻāĻžāĻ˛āĻžāĻ¤ā§ āĻšāĻ¯āĻŧāĨ¤ āĻāĻŽāĻžāĻ° āĻāĻžāĻā§ āĻāĻāĻāĻŋ āĻ°ā§āĻĄāĻŋāĻŽā§āĻĄ āĻ°āĻŋāĻ
ā§āĻ¯āĻžāĻā§āĻ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻāĻ°āĻž āĻāĻāĻāĻŋ āĻāĻ¯āĻŧā§āĻŦāĻĒā§āĻ¯āĻžāĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻāĻā§āĨ¤ āĻāĻ° āĻĒāĻ°ā§, āĻāĻŽāĻžāĻ° āĻāĻžāĻā§ āĻāĻāĻāĻŋ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯āĻž āĻĒā§āĻ°ā§āĻā§ āĻāĻāĻāĻŋ Node.js āĻāĻŋāĻ¤ā§āĻ¤āĻŋāĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻļā§āĻ°ā§ āĻāĻ°ā§ 5000
. āĻāĻāĻŋ āĻāĻ āĻŽāĻ¤ āĻĻā§āĻāĻžāĻ¯āĻŧ:
npm i # ŅŅŅĐ°ĐŊОвĐēĐ° СавиŅиĐŧĐžŅŅĐĩĐš
npm run build # ŅйОŅĐēĐ° React-ĐŋŅиĐģĐžĐļĐĩĐŊиŅ
npm run start # СаĐŋŅŅĐē Node-ŅĐĩŅвĐĩŅĐ°
āĻāĻāĻž āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤ āĻ¯ā§ āĻāĻŽāĻžāĻ° āĻāĻžāĻā§ āĻāĻ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻ¨ā§āĻāĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻžāĻ¨ā§, āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻ¯ā§āĻā§āĻ¨ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ¨ā§āĻĄ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻāĻ°āĻŦā§āĨ¤
āĻ§āĻžāĻ°āĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻĒāĻ¨āĻžāĻā§ āĻĄāĻāĻžāĻ°āĻā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻĻāĻŋāĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻ¨āĻžāĻŽāĻ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻāĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ Dockerfile
, āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§āĻ° āĻ°ā§āĻ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻ
āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤āĨ¤ āĻāĻ āĻĢāĻžāĻāĻ˛āĻāĻŋ, āĻĒā§āĻ°āĻĨāĻŽā§, āĻŦā§āĻļ āĻŦā§āĻ§āĻāĻŽā§āĻ¯ āĻŦāĻ˛ā§ āĻŽāĻ¨ā§ āĻšāĻā§āĻā§āĨ¤
āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻŋāĻ¤ā§ āĻ¯āĻž āĻ°āĻ¯āĻŧā§āĻā§ āĻ¤āĻž āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻŦāĻŋāĻļā§āĻˇ āĻāĻŽāĻžāĻ¨ā§āĻĄā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ āĻāĻžāĻā§āĻ° āĻĒāĻ°āĻŋāĻŦā§āĻļ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ā§āĻ° āĻ āĻ¨ā§āĻ°ā§āĻĒ āĻāĻŋāĻā§ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°ā§āĨ¤ āĻāĻāĻžāĻ¨ā§ āĻāĻ āĻāĻŽāĻžāĻ¨ā§āĻĄā§āĻ° āĻāĻŋāĻā§ āĻāĻā§:
āĻĨā§āĻā§ â āĻāĻ āĻāĻŽāĻžāĻ¨ā§āĻĄāĻāĻŋ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻ˛ āĻļā§āĻ°ā§ āĻāĻ°ā§āĨ¤ āĻāĻāĻŋ āĻŦā§āĻ¸ āĻāĻŽā§āĻ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°ā§ āĻ¯āĻžāĻ° āĻāĻĒāĻ° āĻ§āĻžāĻ°āĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§āĨ¤āĻ āĻ¨ā§āĻ˛āĻŋāĻĒāĻŋ - āĻāĻāĻāĻŋ āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ āĻā§āĻ¸ āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻĒāĻžāĻ¤ā§āĻ°ā§ āĻĢāĻžāĻāĻ˛ āĻ āĻ¨ā§āĻ˛āĻŋāĻĒāĻŋ āĻāĻ°āĻžāĨ¤āĻāĻ¯āĻŧāĻžāĻ°ā§āĻāĻĄāĻŋāĻ° â āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻāĻŽāĻžāĻ¨ā§āĻĄā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ¯āĻŧāĻžāĻ°ā§āĻāĻŋāĻ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻ¸ā§āĻ āĻāĻ°āĻž āĻšāĻā§āĻā§āĨ¤āĻāĻžāĻ˛āĻžāĻ¨ - āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻāĻžāĻ˛āĻžāĻ¨āĨ¤āĻĒā§āĻ°āĻāĻžāĻļ āĻāĻ°āĻž - āĻĒā§āĻ°ā§āĻ āĻ¸ā§āĻāĻŋāĻāĻ¸āĨ¤āĻāĻ¨ā§āĻā§āĻ°āĻŋāĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ - āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°āĻžāĻ° āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļā§āĻ° āĻāĻā§āĻāĻŋāĻ¤āĨ¤
Dockerfile
āĻāĻ āĻŽāĻ¤ āĻāĻŋāĻā§ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻ°ā§:
# ĐĐ°ĐŗŅŅСиŅŅ йаСОвŅĐš ОйŅаС
FROM node:12-alpine
# ĐĄĐēĐžĐŋиŅОваŅŅ ŅĐ°ĐšĐģŅ иС ŅĐĩĐēŅŅĐĩĐš диŅĐĩĐēŅĐžŅии в диŅĐĩĐēŅĐžŅиŅ app/
COPY . app/
# ĐŅĐŋĐžĐģŅСОваŅŅ app/ в ŅĐžĐģи ŅайОŅĐĩĐš диŅĐĩĐēŅĐžŅии
WORKDIR app/
# ĐŖŅŅĐ°ĐŊОвиŅŅ СавиŅиĐŧĐžŅŅи (ĐēĐžĐŧĐ°ĐŊĐ´Đ° npm ci ĐŋĐžŅ
ĐžĐļĐ° npm i, ĐŊĐž иŅĐŋĐžĐģŅСŅĐĩŅŅŅ Đ´ĐģŅ авŅĐžĐŧĐ°ŅиСиŅОваĐŊĐŊŅŅ
ŅйОŅĐžĐē)
RUN npm ci --only-production
# ХОйŅĐ°ŅŅ ĐēĐģиĐĩĐŊŅŅĐēĐžĐĩ React-ĐŋŅиĐģĐžĐļĐĩĐŊиĐĩ Đ´ĐģŅ ĐŋŅОдаĐēŅĐŊĐ°
RUN npm run build
# ĐŅĐžŅĐģŅŅиваŅŅ ŅĐēаСаĐŊĐŊŅĐš ĐŋĐžŅŅ
EXPOSE 5000
# ĐĐ°ĐŋŅŅŅиŅŅ Node-ŅĐĩŅвĐĩŅ
ENTRYPOINT npm run start
āĻāĻĒāĻ¨āĻžāĻ° āĻŦā§āĻā§ āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻŦā§āĻ¸ āĻāĻŽā§āĻā§āĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§, āĻāĻĒāĻ¨āĻžāĻā§ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¤āĻž āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻ¤ā§ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻ¸āĻ˛ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻāĻŋ āĻšāĻ˛ āĻāĻŋāĻā§ āĻŦā§āĻ¸ āĻāĻŽā§āĻ (āĻ¯ā§āĻŽāĻ¨ āĻ¨ā§āĻĄ āĻāĻ˛āĻĒāĻžāĻāĻ¨ āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸) āĻ¯āĻ¤āĻāĻž āĻ¸āĻŽā§āĻāĻŦ āĻāĻŽāĻĒā§āĻ¯āĻžāĻā§āĻ āĻāĻ°āĻžāĻ° āĻ˛āĻā§āĻˇā§āĻ¯ āĻ¨āĻŋāĻ¯āĻŧā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻ¤āĻžāĻĻā§āĻ° āĻāĻžāĻā§ āĻāĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻŋāĻ¤ āĻāĻŋāĻā§ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻ¨āĻžāĻ āĻĨāĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
âāĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖ, āĻā§āĻ¯āĻžāĻāĻŋāĻ āĻāĻŦāĻ āĻāĻžāĻ˛āĻžāĻ¨ā§
āĻ˛ā§āĻāĻžāĻ˛ āĻ
ā§āĻ¯āĻžāĻ¸ā§āĻŽā§āĻŦāĻ˛āĻŋ āĻ āĻ˛āĻā§āĻā§āĻ° āĻāĻ¨āĻā§āĻāĻ¨āĻžāĻ° āĻĒāĻ°ā§ āĻāĻā§ Dockerfile
āĻāĻžāĻāĻā§āĻ˛ā§ āĻŦā§āĻļ āĻ¸āĻšāĻāĨ¤ āĻāĻĒāĻ¨āĻŋ āĻāĻŦāĻŋāĻāĻŋāĻā§ āĻĄāĻāĻžāĻ° āĻšāĻžāĻŦā§ āĻĒā§āĻļ āĻāĻ°āĻžāĻ° āĻāĻā§, āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻāĻŋ āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧāĻāĻžāĻŦā§ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤
â āĻ¸āĻŽāĻžāĻŦā§āĻļ
āĻĒā§āĻ°āĻĨāĻŽā§ āĻāĻĒāĻ¨āĻžāĻā§ āĻ¸āĻāĻā§āĻ°āĻš āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ latest
).
# ХйОŅĐēĐ° ОйŅаСа
docker build -t <image>:<tag> .
āĻāĻ āĻāĻŽāĻžāĻ¨ā§āĻĄāĻāĻŋ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻĒāĻ°ā§, āĻāĻĒāĻ¨āĻŋ āĻĄāĻāĻžāĻ° āĻāĻŦāĻŋāĻāĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤
Sending build context to Docker daemon 2.88MB
Step 1/9 : FROM node:12-alpine
---> ...вŅĐŋĐžĐģĐŊĐĩĐŊиĐĩ ŅŅĐ°ĐŋОв ŅйОŅĐēи...
Successfully built 123456789123
Successfully tagged <image>:<tag>
āĻŦāĻŋāĻ˛ā§āĻĄāĻāĻŋ āĻāĻ¯āĻŧā§āĻ āĻŽāĻŋāĻ¨āĻŋāĻ āĻ¸āĻŽāĻ¯āĻŧ āĻ¨āĻŋāĻ¤ā§ āĻĒāĻžāĻ°ā§ - āĻāĻāĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻ¤āĻā§āĻ˛āĻŋ āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¤āĻž āĻ°āĻ¯āĻŧā§āĻā§ āĻ¤āĻžāĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§āĨ¤ āĻāĻāĻŦāĻžāĻ° āĻŦāĻŋāĻ˛ā§āĻĄ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻšāĻ˛ā§, āĻāĻĒāĻ¨āĻŋ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻāĻžāĻ˛āĻžāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ docker images
āĻāĻŦāĻ āĻāĻĒāĻ¨āĻžāĻ° āĻ¨āĻ¤ā§āĻ¨ āĻāĻŦāĻŋāĻ° āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻĻā§āĻā§āĻ¨āĨ¤
REPOSITORY TAG IMAGE ID CREATED SIZE
<image> latest 123456789123 About a minute ago x.xxGB
âāĻ˛āĻā§āĻ āĻāĻ°ā§āĻ¨
āĻāĻŽā§āĻ āĻ¤ā§āĻ°āĻŋ āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻ° āĻŽāĻžāĻ¨ā§ āĻšāĻ˛ āĻ¯ā§ āĻāĻĒāĻ¨āĻŋ āĻāĻāĻŋāĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻ§āĻžāĻ°āĻ āĻāĻžāĻ˛āĻžāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻāĻžāĻ°āĻŖ āĻāĻŽāĻŋ āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ°ā§ āĻāĻ˛āĻŽāĻžāĻ¨ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋ āĻ
ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°āĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽ āĻšāĻ¤ā§ āĻāĻžāĻ localhost:5000
, āĻāĻŽāĻŋ, āĻā§āĻĄāĻŧāĻžāĻ° āĻŦāĻžāĻŽ āĻĻāĻŋāĻā§ 5000:5000
āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻž āĻšāĻ¯āĻŧ 5000
. āĻĄāĻžāĻ¨ āĻĒāĻžāĻļā§ āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻĒā§āĻ°ā§āĻāĨ¤
# ĐĐ°ĐŋŅŅĐē Ņ иŅĐŋĐžĐģŅСОваĐŊиĐĩĐŧ ĐģĐžĐēĐ°ĐģŅĐŊĐžĐŗĐž ĐŋĐžŅŅĐ° 5000 и ĐŋĐžŅŅĐ° ĐēĐžĐŊŅĐĩĐšĐŊĐĩŅĐ° 5000
docker run -p 5000:5000 <image>:<tag>
āĻāĻāĻ¨ āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻŦāĻ āĻāĻ˛āĻā§, āĻāĻĒāĻ¨āĻŋ āĻāĻŽāĻžāĻ¨ā§āĻĄāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ docker ps
āĻāĻ āĻ§āĻžāĻ°āĻ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¤āĻĨā§āĻ¯ āĻĻā§āĻāĻ¤ā§ (āĻŦāĻž āĻāĻĒāĻ¨āĻŋ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ docker ps -a
, āĻ¯āĻž āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¤āĻĨā§āĻ¯ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°ā§, āĻļā§āĻ§ā§ āĻāĻ˛āĻŽāĻžāĻ¨ āĻ¨āĻ¯āĻŧ)āĨ¤
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
987654321234 <image> "/bin/sh -c 'npm runâĻ" 6 seconds ago Up 6 seconds 0.0.0.0:5000->5000/tcp stoic_darwin
āĻāĻāĻ¨ āĻ¯āĻĻāĻŋ āĻ āĻŋāĻāĻžāĻ¨āĻžāĻ¯āĻŧ āĻ¯āĻžāĻ¨ localhost:5000
â āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻāĻ˛āĻŽāĻžāĻ¨ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻāĻāĻāĻŋ āĻĒā§āĻˇā§āĻ āĻž āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻ¯āĻž āĻāĻāĻāĻŋ āĻāĻ¤ā§āĻĒāĻžāĻĻāĻ¨ āĻĒāĻ°āĻŋāĻŦā§āĻļā§ āĻāĻ˛āĻŽāĻžāĻ¨ āĻāĻāĻāĻŋ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻĒā§āĻˇā§āĻ āĻžāĻ° āĻŽāĻ¤ā§ āĻĻā§āĻāĻ¤ā§ āĻ āĻŋāĻ āĻāĻāĻ āĻ°āĻāĻŽā§ˇ
âāĻā§āĻ¯āĻžāĻāĻŋāĻ āĻāĻŦāĻ āĻĒā§āĻ°āĻāĻžāĻļāĻ¨āĻž
āĻĒā§āĻ°ā§āĻĄāĻžāĻāĻļāĻ¨ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻāĻŦāĻŋāĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻžāĻĻā§āĻ° āĻĄāĻāĻžāĻ° āĻšāĻžāĻŦ āĻĨā§āĻā§ āĻāĻ āĻāĻŦāĻŋāĻāĻŋ āĻĄāĻžāĻāĻ¨āĻ˛ā§āĻĄ āĻāĻ°āĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽ āĻšāĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻ° āĻŽāĻžāĻ¨ā§ āĻšāĻ˛ āĻ¯ā§ āĻāĻĒāĻ¨āĻžāĻā§ āĻĒā§āĻ°āĻĨāĻŽā§ āĻĄāĻāĻžāĻ° āĻšāĻžāĻŦā§āĻ° āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¸āĻāĻā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻ° āĻĒāĻ°ā§, āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻžāĻā§ āĻāĻāĻāĻŋ āĻāĻžāĻ¯āĻŧāĻāĻž āĻĨāĻžāĻāĻŦā§ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻŽāĻ°āĻž āĻāĻŦāĻŋāĻāĻŋ āĻĒāĻžāĻ āĻžāĻ¤ā§ āĻĒāĻžāĻ°āĻŋāĨ¤ āĻāĻŦāĻŋāĻāĻŋāĻ° āĻ¨āĻžāĻŽ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¯āĻžāĻ¤ā§ āĻāĻāĻŋāĻ° āĻ¨āĻžāĻŽ āĻāĻŽāĻžāĻĻā§āĻ° āĻĄāĻāĻžāĻ° āĻšāĻžāĻŦ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻ¨āĻžāĻŽ āĻĻāĻŋāĻ¯āĻŧā§ āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧāĨ¤ āĻāĻāĻŋ āĻ¸āĻāĻā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤āĨ¤ āĻ¨āĻžāĻŽā§āĻ° āĻļā§āĻˇā§ āĻ¯ā§āĻā§āĻ¨ā§ āĻā§āĻ¯āĻžāĻ āĻŦāĻ¸āĻžāĻ¨ā§ āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻ¨ā§āĻā§ āĻāĻ āĻ¸ā§āĻāĻŋāĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻŽā§āĻ āĻ¨āĻžāĻŽāĻāĻ°āĻŖā§āĻ° āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖāĨ¤
āĻāĻāĻ¨ āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ¨āĻžāĻŽ āĻĻāĻŋāĻ¯āĻŧā§ āĻāĻŽā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻāĻŽāĻžāĻ¨ā§āĻĄāĻāĻŋ āĻāĻžāĻ˛āĻžāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ docker push
āĻāĻāĻŋāĻā§ āĻĄāĻāĻžāĻ° āĻšāĻžāĻŦ āĻ¸āĻāĻā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ā§ āĻ ā§āĻ˛ā§ āĻĻāĻŋāĻ¤ā§āĨ¤
docker build -t <username>/<repository>:<tag> .
docker tag <username>/<repository>:<tag> <username>/<repository>:latest
docker push <username>/<repository>:<tag>
# ĐĐ° ĐŋŅĐ°ĐēŅиĐēĐĩ ŅŅĐž ĐŧĐžĐļĐĩŅ вŅĐŗĐģŅĐ´ĐĩŅŅ, ĐŊĐ°ĐŋŅиĐŧĐĩŅ, ŅĐ°Đē:
docker build -t user/app:v1.0.0 .
docker tag user/app:v1.0.0 user/app:latest
docker push user/app:v1.0.0
āĻ¸āĻŦāĻāĻŋāĻā§ āĻ āĻŋāĻāĻ āĻžāĻ āĻĨāĻžāĻāĻ˛ā§, āĻāĻŦāĻŋāĻāĻŋ āĻĄāĻāĻžāĻ° āĻšāĻžāĻŦā§ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻŦā§ āĻāĻŦāĻ āĻ¸āĻšāĻā§āĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻāĻĒāĻ˛ā§āĻĄ āĻāĻ°āĻž āĻ¯āĻžāĻŦā§ āĻŦāĻž āĻ āĻ¨ā§āĻ¯ āĻĄā§āĻā§āĻ˛āĻĒāĻžāĻ°āĻĻā§āĻ° āĻāĻžāĻā§ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°āĻž āĻ¯āĻžāĻŦā§āĨ¤
āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻĒāĻĻāĻā§āĻˇā§āĻĒ
āĻāĻāĻ¨ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻāĻŽāĻ°āĻž āĻ¯āĻžāĻāĻžāĻ āĻāĻ°ā§āĻāĻŋ āĻ¯ā§ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋ, āĻāĻāĻāĻŋ āĻĄāĻāĻžāĻ° āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻāĻāĻžāĻ°ā§, āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧāĻāĻžāĻŦā§ āĻāĻ˛āĻā§āĨ¤ āĻāĻŽāĻ°āĻž āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ°āĻāĻŋ āĻĄāĻāĻžāĻ° āĻšāĻžāĻŦā§ āĻāĻĒāĻ˛ā§āĻĄ āĻāĻ°ā§āĻāĻŋāĨ¤ āĻāĻ° āĻ āĻ°ā§āĻĨ āĻšāĻ˛ āĻāĻŽāĻ°āĻž āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻ˛āĻā§āĻˇā§āĻ¯ā§āĻ° āĻĻāĻŋāĻā§ āĻā§āĻŦ āĻāĻžāĻ˛ āĻ āĻā§āĻ°āĻāĻ¤āĻŋ āĻāĻ°ā§āĻāĻŋāĨ¤ āĻāĻāĻ¨ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻ°āĻ āĻĻā§āĻāĻŋ āĻĒā§āĻ°āĻļā§āĻ¨ā§āĻ° āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§:
- āĻā§āĻĄ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻŦāĻ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ CI āĻā§āĻ˛ āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°āĻž āĻšāĻā§āĻā§āĨ¤
- āĻĒā§āĻ°ā§āĻĄāĻžāĻāĻļāĻ¨ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°āĻž āĻšāĻā§āĻā§ āĻ¯āĻžāĻ¤ā§ āĻāĻāĻŋ āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻĄ āĻĄāĻžāĻāĻ¨āĻ˛ā§āĻĄ āĻāĻŦāĻ āĻāĻžāĻ˛āĻžāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻāĻŽāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŋ
āĻāĻāĻŋ āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤ āĻ¯ā§ āĻāĻāĻžāĻ¨ā§ āĻāĻĒāĻ¨āĻŋ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻā§āĻ˛āĻŋāĻ° āĻāĻ°ā§āĻāĻāĻŋ āĻ¸āĻāĻŽāĻŋāĻļā§āĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, Travis CI āĻāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§, āĻāĻĒāĻ¨āĻŋ CircleCI āĻŦāĻž Github āĻ ā§āĻ¯āĻžāĻāĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻāĻŦāĻ DigitalOcean āĻāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ - AWS āĻŦāĻž LinodeāĨ¤
āĻāĻŽāĻ°āĻž Travis CI āĻāĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ¯āĻŧā§āĻāĻŋ, āĻāĻŦāĻ āĻāĻŽāĻŋ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ āĻāĻ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻ¤ā§ āĻāĻŋāĻā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°ā§āĻāĻŋāĨ¤ āĻ āĻ¤āĻāĻŦ, āĻāĻāĻ¨ āĻāĻŽāĻŋ āĻā§āĻāĻžāĻŦā§ āĻāĻāĻŋāĻā§ āĻāĻžāĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻāĻ°āĻŦ āĻ¸ā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¸āĻāĻā§āĻˇā§āĻĒā§ āĻāĻĨāĻž āĻŦāĻ˛āĻŦāĨ¤
āĻā§āĻ°ā§āĻ¯āĻžāĻāĻŋāĻ¸ āĻ¸āĻŋāĻāĻ
āĻā§āĻ°ā§āĻ¯āĻžāĻāĻŋāĻ¸ āĻ¸āĻŋāĻāĻ āĻā§āĻĄ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻŦāĻ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¸āĻ°āĻā§āĻāĻžāĻŽāĨ¤ āĻāĻŽāĻŋ āĻā§āĻ°ā§āĻ¯āĻžāĻāĻŋāĻ¸ āĻ¸āĻŋāĻāĻ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ā§āĻ° āĻāĻāĻŋāĻ˛āĻ¤āĻžāĻ¯āĻŧ āĻ¯ā§āĻ¤ā§ āĻāĻžāĻ āĻ¨āĻž, āĻ¯ā§āĻšā§āĻ¤ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒ āĻ āĻ¨āĻ¨ā§āĻ¯, āĻāĻŦāĻ āĻāĻāĻŋ āĻā§āĻŦ āĻŦā§āĻļāĻŋ āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻ¸āĻŦā§ āĻ¨āĻžāĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻā§āĻ°ā§āĻ¯āĻžāĻāĻŋāĻ¸ āĻ¸āĻŋāĻāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨ā§āĻ¨ āĻ¤āĻŦā§ āĻāĻĒāĻ¨āĻžāĻā§ āĻļā§āĻ°ā§ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻŋ āĻŽā§āĻ˛āĻŋāĻ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻā§āĻ˛āĻŋ āĻāĻāĻžāĻ° āĻāĻ°āĻŦāĨ¤ āĻāĻĒāĻ¨āĻŋ Travis CI, CircleCI, Jenkins āĻŦāĻž āĻ āĻ¨ā§āĻ¯ āĻāĻŋāĻā§ āĻāĻ¯āĻŧāĻ¨ āĻāĻ°ā§āĻ¨ āĻ¨āĻž āĻā§āĻ¨, āĻ āĻ¨ā§āĻ°ā§āĻĒ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ¸āĻ°ā§āĻŦāĻ¤ā§āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻŦā§āĨ¤
āĻā§āĻ°ā§āĻ¯āĻžāĻāĻŋāĻ¸ āĻ¸āĻŋāĻāĻ āĻĻāĻŋāĻ¯āĻŧā§ āĻļā§āĻ°ā§ āĻāĻ°āĻ¤ā§, āĻ¯āĻžāĻ¨
āĻĒā§āĻ°āĻ¤āĻŋāĻŦāĻžāĻ° āĻā§āĻ°ā§āĻ¯āĻžāĻāĻŋāĻ¸ āĻ¸āĻŋāĻāĻ āĻāĻžāĻ˛ā§ āĻšāĻ˛ā§, āĻāĻāĻāĻŋ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻāĻžāĻ˛ā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¯āĻž āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĢāĻžāĻāĻ˛ā§ āĻāĻ˛ā§āĻ˛ā§āĻāĻŋāĻ¤ āĻāĻŽāĻžāĻ¨ā§āĻĄāĻā§āĻ˛āĻŋ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°ā§, āĻ¯āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¸āĻāĻļā§āĻ˛āĻŋāĻˇā§āĻ āĻ¸āĻāĻā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ āĻļāĻžāĻāĻžāĻā§āĻ˛āĻŋ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
âāĻāĻžāĻāĻ°ā§āĻ° āĻā§āĻŦāĻ¨āĻāĻā§āĻ°
āĻā§āĻ°ā§āĻ¯āĻžāĻāĻŋāĻ¸ āĻ¸āĻŋāĻāĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĢāĻžāĻāĻ˛ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ .travis.yml
āĻāĻŦāĻ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒ āĻ°ā§āĻ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŋāĻ¤, āĻāĻā§āĻ¨ā§āĻā§āĻ° āĻ§āĻžāĻ°āĻŖāĻž āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻ°ā§
apt addons
cache components
before_install
install
before_script
script
before_cache
after_success иĐģи after_failure
before_deploy
deploy
after_deploy
after_script
âāĻĒāĻ°ā§āĻā§āĻˇāĻž
āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĢāĻžāĻāĻ˛ā§ āĻāĻŽāĻŋ āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ āĻā§āĻ°ā§āĻ¯āĻžāĻāĻŋāĻ¸ āĻ¸āĻŋāĻāĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻ¯āĻžāĻā§āĻāĻŋāĨ¤ āĻāĻŽāĻŋ āĻāĻžāĻˇāĻž āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¨ā§āĻĄ 12 āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°ā§āĻāĻŋ āĻāĻŦāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻā§ āĻĄāĻāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¤āĻžāĻā§āĻ˛āĻŋ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻ¤ā§ āĻŦāĻ˛ā§āĻāĻŋāĨ¤
āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻā§āĻā§āĻ¤ āĻ¸āĻŦāĻāĻŋāĻā§ .travis.yml
, āĻ°āĻŋāĻĒā§āĻāĻŋāĻāĻ°āĻŋāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻļāĻžāĻāĻžāĻ¯āĻŧ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒā§āĻ˛ āĻ
āĻ¨ā§āĻ°ā§āĻ§ āĻāĻ°āĻž āĻšāĻ˛ā§ āĻ¤āĻž āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°āĻž āĻšāĻŦā§, āĻ¯āĻĻāĻŋ āĻ¨āĻž āĻ
āĻ¨ā§āĻ¯āĻĨāĻžāĻ¯āĻŧ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻĻāĻ°āĻāĻžāĻ°ā§ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻāĻžāĻ°āĻŖ āĻāĻ° āĻŽāĻžāĻ¨ā§ āĻšāĻ˛ āĻ¯ā§ āĻāĻŽāĻ°āĻž āĻ¸āĻāĻā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ā§ āĻāĻ¸āĻž āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻā§āĻĄ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋāĨ¤ āĻāĻāĻŋ āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻžāĻ¨āĻ¤ā§ āĻĻā§āĻ¯āĻŧ āĻ¯ā§ āĻā§āĻĄāĻāĻŋ āĻļāĻžāĻāĻžāĻ¯āĻŧ āĻ˛ā§āĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻāĻŋāĻ¨āĻžāĨ¤ master
, āĻāĻŦāĻ āĻāĻāĻŋ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒ āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻā§āĻ āĻāĻ°āĻŦā§ āĻāĻŋāĻ¨āĻžāĨ¤ āĻāĻ āĻŦāĻŋāĻļā§āĻŦāĻŦā§āĻ¯āĻžāĻĒā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ā§, āĻāĻŽāĻŋ āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧāĻāĻžāĻŦā§ āĻ¸āĻŦāĻāĻŋāĻā§ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻŋ, āĻĒāĻāĻā§āĻŽāĻŋāĻ¤ā§ āĻāĻ¯āĻŧā§āĻŦāĻĒā§āĻ¯āĻžāĻ āĻĄā§āĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻāĻžāĻ˛āĻžāĻ (āĻāĻāĻŋ āĻāĻŽāĻžāĻ° āĻāĻ°ā§āĻŽāĻĒā§āĻ°āĻŦāĻžāĻšā§āĻ° āĻāĻāĻāĻŋ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯), āĻāĻŦāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻžāĻ˛āĻžāĻāĨ¤
āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻžāĻ¨ āĻ¯ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻ¸āĻāĻā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ā§ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻāĻžāĻ°ā§āĻ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°ā§ āĻŦā§āĻ¯āĻžāĻ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°āĻž āĻšā§āĻ,
āĻ¤āĻžāĻ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻāĻāĻžāĻ¨ā§ .travis.yml
:
# ĐŖŅŅĐ°ĐŊОвиŅŅ ŅСŅĐē
language: node_js
# ĐŖŅŅĐ°ĐŊОвиŅŅ вĐĩŅŅиŅ Node.js
node_js:
- '12'
services:
# ĐŅĐŋĐžĐģŅСОваŅŅ ĐēĐžĐŧĐ°ĐŊĐ´ĐŊŅŅ ŅŅŅĐžĐēŅ Docker
- docker
install:
# ĐŖŅŅĐ°ĐŊОвиŅŅ СавиŅиĐŧĐžŅŅи Đ´ĐģŅ ŅĐĩŅŅОв
- npm ci
before_script:
# ĐĐ°ĐŋŅŅŅиŅŅ ŅĐĩŅвĐĩŅ и ĐēĐģиĐĩĐŊŅ Đ´ĐģŅ ŅĐĩŅŅОв
- npm run dev &
script:
# ĐĐ°ĐŋŅŅŅиŅŅ ŅĐĩŅŅŅ
- npm run test
āĻāĻāĻžāĻ¨ā§āĻ āĻ°āĻŋāĻĒā§āĻāĻŋāĻāĻ°āĻŋāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻļāĻžāĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŦāĻ āĻĒā§āĻ˛ āĻ āĻ¨ā§āĻ°ā§āĻ§ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻā§āĻāĻžāĻ˛āĻŋāĻ¤ āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻā§āĻ˛āĻŋ āĻļā§āĻˇ āĻšāĻ¯āĻŧāĨ¤
â āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž
āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¸āĻĢāĻ˛āĻāĻžāĻŦā§ āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨ āĻšāĻ¯āĻŧā§āĻā§ āĻāĻ āĻ
āĻ¨ā§āĻŽāĻžāĻ¨ā§āĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§, āĻāĻŽāĻ°āĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ, āĻ¯āĻž āĻāĻā§āĻāĻŋāĻ, āĻā§āĻĄāĻāĻŋ āĻĒā§āĻ°ā§āĻĄāĻžāĻāĻļāĻ¨ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋāĨ¤ āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻŽāĻ°āĻž āĻāĻāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻļāĻžāĻāĻž āĻĨā§āĻā§ āĻā§āĻĄā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ master
, āĻāĻŽāĻ°āĻž āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ° āĻ¸ā§āĻāĻŋāĻāĻ¸ā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻā§ āĻ¯āĻĨāĻžāĻ¯āĻĨ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻ¨āĻž āĻĻāĻŋāĻāĨ¤ āĻāĻŽāĻ°āĻž āĻāĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻā§āĻā§āĻā§ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§āĻ¤ā§ āĻ¯ā§ āĻā§āĻĄāĻāĻŋ āĻĻā§āĻāĻŦ āĻ¸ā§āĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻžāĻ° āĻāĻā§, āĻāĻŽāĻŋ āĻāĻĒāĻ¨āĻžāĻā§ āĻ¸āĻ¤āĻ°ā§āĻ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ āĻ¯ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻžāĻā§ āĻ
āĻŦāĻļā§āĻ¯āĻ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻā§āĻ¤ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻĨāĻžāĻāĻ¤ā§ āĻšāĻŦā§ āĻ¯ā§āĻāĻŋ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧāĨ¤
deploy:
# ХОйŅĐ°ŅŅ Docker-ĐēĐžĐŊŅĐĩĐšĐŊĐĩŅ и ĐžŅĐŋŅавиŅŅ ĐĩĐŗĐž ĐŊĐ° Docker Hub
provider: script
script: bash deploy.sh
on:
branch: master
āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ° āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻĻā§āĻāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ° āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻ°ā§:
- āĻāĻāĻāĻŋ CI āĻā§āĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻŽā§āĻāĻāĻŋāĻā§ āĻĄāĻāĻžāĻ° āĻšāĻžāĻŦā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨, āĻā§āĻ¯āĻžāĻ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻĒāĻžāĻ āĻžāĻ¨ (āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻā§āĻ°ā§āĻ¯āĻžāĻāĻŋāĻ¸ āĻ¸āĻŋāĻāĻ)āĨ¤
- āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻāĻŋāĻ¤ā§āĻ°āĻāĻŋ āĻ˛ā§āĻĄ āĻāĻ°āĻž, āĻĒā§āĻ°āĻžāĻ¨ā§ āĻ§āĻžāĻ°āĻāĻāĻŋ āĻŦāĻ¨ā§āĻ§ āĻāĻ°āĻž āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻļā§āĻ°ā§ āĻāĻ°āĻž (āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻāĻŋ DigitalOcean āĻĒā§āĻ˛ā§āĻ¯āĻžāĻāĻĢāĻ°ā§āĻŽā§ āĻāĻ˛ā§)āĨ¤
āĻĒā§āĻ°āĻĨāĻŽā§, āĻāĻĒāĻ¨āĻžāĻā§ āĻĄāĻāĻžāĻ° āĻšāĻžāĻŦā§ āĻāĻŽā§āĻ āĻ¤ā§āĻ°āĻŋ, āĻā§āĻ¯āĻžāĻāĻŋāĻ āĻāĻŦāĻ āĻĒā§āĻļ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻŽā§āĻ āĻāĻŦāĻ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧ āĻ˛āĻāĻāĻ¨āĻā§āĻ˛āĻŋāĻ¤ā§ āĻ āĻ¨āĻ¨ā§āĻ¯ āĻā§āĻ¯āĻžāĻ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻāĻāĻŋ āĻā§āĻļāĻ˛ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻāĻžāĻĄāĻŧāĻž āĻāĻāĻŋ āĻāĻŽāĻ°āĻž āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻŋ āĻ¯āĻž āĻāĻ°ā§āĻāĻŋ āĻ¤āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻā§āĻŦ āĻŽāĻŋāĻ˛āĨ¤ āĻĄāĻŋāĻĒā§āĻ˛āĻ¯āĻŧāĻŽā§āĻ¨ā§āĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻā§āĻ° āĻāĻŋāĻā§ āĻŦāĻŋāĻŦāĻ°āĻŖ āĻ¯ā§āĻŽāĻ¨ āĻā§āĻ¯āĻžāĻāĻŋāĻ āĻā§āĻļāĻ˛, āĻ˛āĻāĻāĻ¨, āĻāĻ¸āĻāĻ¸āĻāĻāĻ āĻā§ āĻāĻ¨āĻā§āĻĄāĻŋāĻ, āĻāĻ¸āĻāĻ¸āĻāĻāĻ āĻ¸āĻāĻ¯ā§āĻ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ā§ āĻāĻŽāĻžāĻ° āĻ āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¸ā§āĻāĻžāĻā§āĻ¯āĻŦāĻļāĻ¤ āĻāĻŽāĻžāĻ° āĻŦāĻ¯āĻŧāĻĢā§āĻ°ā§āĻ¨ā§āĻĄ āĻŦāĻžāĻļā§āĻ° āĻ¸āĻžāĻĨā§ āĻ āĻ¨ā§āĻ āĻāĻžāĻ˛ā§, āĻ¯ā§āĻŽāĻ¨āĻāĻž āĻ āĻ¨ā§āĻ¯ āĻ āĻ¨ā§āĻ āĻāĻŋāĻā§āĻ° āĻ¸āĻžāĻĨā§āĨ¤ āĻ¤āĻŋāĻ¨āĻŋ āĻāĻŽāĻžāĻā§ āĻāĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻ˛āĻŋāĻāĻ¤ā§ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻāĻ°ā§āĻā§āĻ¨āĨ¤
āĻ¸ā§āĻ¤āĻ°āĻžāĻ, āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻā§āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻ
āĻāĻļāĻāĻŋ āĻĄāĻāĻžāĻ° āĻšāĻžāĻŦā§ āĻāĻŦāĻŋāĻāĻŋ āĻāĻĒāĻ˛ā§āĻĄ āĻāĻ°āĻā§āĨ¤ āĻāĻāĻŋ āĻāĻ°āĻž āĻŦā§āĻļ āĻ¸āĻšāĻāĨ¤ āĻāĻŽāĻŋ āĻ¯ā§ āĻā§āĻ¯āĻžāĻāĻŋāĻ āĻ¸ā§āĻāĻŋāĻŽāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻāĻŋ āĻ¤āĻžāĻ¤ā§ āĻāĻāĻāĻŋ āĻāĻŋāĻ āĻšā§āĻ¯āĻžāĻļ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻāĻŋāĻ āĻā§āĻ¯āĻžāĻ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°āĻž āĻāĻĄāĻŧāĻŋāĻ¤, āĻ¯āĻĻāĻŋ āĻāĻāĻāĻŋ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻĨāĻžāĻā§āĨ¤ āĻāĻāĻŋ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°ā§ āĻ¯ā§ āĻā§āĻ¯āĻžāĻāĻāĻŋ āĻ
āĻ¨āĻ¨ā§āĻ¯ āĻāĻŦāĻ āĻāĻāĻŋ āĻ¯ā§āĻāĻŋāĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§ āĻ¸ā§āĻāĻŋāĻā§ āĻ¸āĻ¨āĻžāĻā§āĻ¤ āĻāĻ°āĻž āĻ¸āĻšāĻ āĻāĻ°ā§ āĻ¤ā§āĻ˛ā§āĨ¤ DOCKER_USERNAME
и DOCKER_PASSWORD
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻĒāĻ°āĻŋāĻŦā§āĻļā§āĻ° āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻ¯āĻž āĻā§āĻ°ā§āĻ¯āĻžāĻāĻŋāĻ¸ āĻ¸āĻŋāĻāĻ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¸ā§āĻ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ Travis CI āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻ¸āĻāĻŦā§āĻĻāĻ¨āĻļā§āĻ˛ āĻĄā§āĻāĻž āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°āĻŦā§ āĻ¯āĻžāĻ¤ā§ āĻāĻāĻŋ āĻā§āĻ˛ āĻšāĻžāĻ¤ā§ āĻ¨āĻž āĻĒāĻĄāĻŧā§āĨ¤
āĻāĻāĻžāĻ¨ā§ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻā§āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻ
āĻāĻļ deploy.sh
.
#!/bin/sh
set -e # ĐŅŅĐ°ĐŊОвиŅŅ ŅĐēŅиĐŋŅ ĐŋŅи ĐŊĐ°ĐģиŅии ĐžŅийОĐē
IMAGE="<username>/<repository>" # ĐĐąŅаС Docker
GIT_VERSION=$(git describe --always --abbrev --tags --long) # Git-Ņ
ŅŅ и ŅĐĩĐŗи
# ХйОŅĐēĐ° и ŅĐĩĐŗиŅОваĐŊиĐĩ ОйŅаСа
docker build -t ${IMAGE}:${GIT_VERSION} .
docker tag ${IMAGE}:${GIT_VERSION} ${IMAGE}:latest
# ĐŅ
Од в Docker Hub и вŅĐŗŅŅСĐēĐ° ОйŅаСа
echo "${DOCKER_PASSWORD}" | docker login -u "${DOCKER_USERNAME}" --password-stdin
docker push ${IMAGE}:${GIT_VERSION}
āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻā§āĻ° āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻ
āĻāĻļāĻāĻŋ āĻā§ āĻšāĻŦā§ āĻ¤āĻž āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻ°ā§āĻĒā§ āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§ āĻāĻĒāĻ¨āĻŋ āĻā§āĻ¨ āĻšā§āĻ¸ā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻā§āĻ¨ āĻāĻŦāĻ āĻāĻāĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻāĻāĻŋ āĻā§āĻāĻžāĻŦā§ āĻ¸āĻāĻāĻ āĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§ āĻ¤āĻžāĻ° āĻāĻĒāĻ°āĨ¤ āĻāĻŽāĻžāĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻŽāĻŋ āĻĄāĻŋāĻāĻŋāĻāĻžāĻ˛ āĻŽāĻšāĻžāĻ¸āĻžāĻāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŋ, āĻāĻŽāĻŋ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻāĻŽāĻžāĻ¨ā§āĻĄāĻā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŋ aws
, āĻāĻŦāĻ āĻ¤āĻžāĻāĨ¤
āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°āĻž āĻŦāĻŋāĻļā§āĻˇ āĻāĻ āĻŋāĻ¨ āĻāĻŋāĻ˛ āĻ¨āĻž. āĻ¸ā§āĻ¤āĻ°āĻžāĻ, āĻāĻŽāĻŋ āĻŦā§āĻ¸ āĻāĻŽā§āĻ āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻĢā§āĻāĻāĻž āĻ¸ā§āĻ āĻāĻĒ. āĻāĻāĻŋ āĻ˛āĻā§āĻˇ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤ āĻ¯ā§ āĻāĻŽāĻŋ āĻ¯ā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻāĻŋ āĻŦā§āĻā§ āĻ¨āĻŋāĻ¯āĻŧā§āĻāĻŋ āĻ¤āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻāĻžāĻ°ā§āĻ° āĻāĻ-āĻāĻžāĻ˛ā§āĻ¨ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛ āĻāĻ¨āĻ¸ā§āĻāĻ˛ā§āĻļāĻ¨ āĻāĻŦāĻ āĻĄāĻāĻžāĻ°ā§āĻ° āĻāĻ-āĻāĻžāĻ˛ā§āĻ¨ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛ āĻ˛āĻā§āĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨āĨ¤ āĻāĻŽāĻŋ āĻĄāĻāĻžāĻ° āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻ¤ā§ āĻāĻŦā§āĻ¨ā§āĻā§ 18.04 āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻāĻŋ, āĻ¤āĻžāĻ āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻāĻ āĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻāĻŦā§āĻ¨ā§āĻā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨ āĻ¤āĻŦā§ āĻāĻĒāĻ¨āĻŋ āĻā§āĻŦāĻ˛ āĻ
āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻāĻŽāĻŋ āĻāĻāĻžāĻ¨ā§ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻĨāĻž āĻŦāĻ˛āĻāĻŋ āĻ¨āĻž, āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻ āĻĻāĻŋāĻāĻāĻŋ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻŦā§āĻ¯āĻžāĻĒāĻāĻāĻžāĻŦā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻŽāĻŋ āĻļā§āĻ§ā§ SSH āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¯ā§ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒāĻāĻŋ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻšāĻŦā§ āĻ¤āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻŋāĻ¤ āĻāĻ°ā§āĻŽā§āĻ° āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻĒāĻ°āĻŋāĻāĻ˛ā§āĻĒāĻ¨āĻž āĻĻā§āĻŦ:
- āĻāĻŽāĻžāĻĻā§āĻ° āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§ āĻ¯ā§ āĻ§āĻžāĻ°āĻāĻāĻŋ āĻāĻ˛āĻā§ āĻ¤āĻž āĻā§āĻāĻā§ āĻŦā§āĻ° āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻāĻŦāĻ āĻāĻāĻŋ āĻŦāĻ¨ā§āĻ§ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤
- āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻāĻĒāĻ¨āĻžāĻā§ āĻĒāĻāĻā§āĻŽāĻŋāĻ¤ā§ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ§āĻžāĻ°āĻ āĻāĻžāĻ˛ā§ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤
- āĻāĻĒāĻ¨āĻžāĻā§ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ āĻĒā§āĻ°ā§āĻ āĻ¸ā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§
80
- āĻāĻāĻŋ āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻāĻāĻŋ āĻ āĻŋāĻāĻžāĻ¨āĻžāĻ¯āĻŧ āĻ¸āĻžāĻāĻā§ āĻĒā§āĻ°āĻŦā§āĻļ āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻŦā§example.com
, āĻĒā§āĻ°ā§āĻ āĻāĻ˛ā§āĻ˛ā§āĻ āĻ¨āĻž āĻāĻ°ā§, āĻāĻāĻāĻŋ āĻ āĻŋāĻāĻžāĻ¨āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§example.com:5000
. - āĻ āĻŦāĻļā§āĻˇā§, āĻāĻĒāĻ¨āĻžāĻā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒā§āĻ°āĻžāĻ¨ā§ āĻĒāĻžāĻ¤ā§āĻ° āĻāĻŦāĻ āĻāĻŋāĻ¤ā§āĻ°āĻā§āĻ˛āĻŋ āĻŽā§āĻāĻ¤ā§ āĻšāĻŦā§āĨ¤
āĻāĻāĻžāĻ¨ā§āĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻā§āĻ° āĻ§āĻžāĻ°āĻžāĻŦāĻžāĻšāĻŋāĻāĻ¤āĻžāĨ¤
# ĐĐ°ĐšŅи ID ŅайОŅĐ°ŅŅĐĩĐŗĐž ĐēĐžĐŊŅĐĩĐšĐŊĐĩŅĐ°
CONTAINER_ID=$(docker ps | grep takenote | cut -d" " -f1)
# ĐŅŅĐ°ĐŊОвиŅŅ ŅŅĐ°ŅŅĐš ĐēĐžĐŊŅĐĩĐšĐŊĐĩŅ, СаĐŋŅŅŅиŅŅ ĐŊОвŅĐš, ĐžŅиŅŅиŅŅ ŅиŅŅĐĩĐŧŅ
docker stop ${CONTAINER_ID}
docker run --restart unless-stopped -d -p 80:5000 ${IMAGE}:${GIT_VERSION}
docker system prune -a -f
āĻāĻŋāĻā§ āĻāĻŋāĻ¨āĻŋāĻ¸ āĻŽāĻ¨ā§āĻ¯ā§āĻ āĻĻāĻŋāĻ¤ā§
āĻāĻāĻž āĻ¸āĻŽā§āĻāĻŦ āĻ¯ā§ āĻāĻĒāĻ¨āĻŋ āĻ¯āĻāĻ¨ Travis CI āĻĨā§āĻā§ SSH āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻŦā§āĻ¨, āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻž āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻŦā§āĻ¨ āĻ¯āĻž āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻ¨āĻ¸ā§āĻāĻ˛ā§āĻļāĻ¨ āĻāĻžāĻ˛āĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻž āĻĨā§āĻā§ āĻŦāĻžāĻ§āĻž āĻĻā§āĻŦā§ āĻāĻžāĻ°āĻŖ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻĒā§āĻā§āĻˇāĻž āĻāĻ°āĻŦā§āĨ¤
The authenticity of host '<hostname> (<IP address>)' can't be established.
RSA key fingerprint is <key fingerprint>.
Are you sure you want to continue connecting (yes/no)?
āĻāĻŽāĻŋ āĻļāĻŋāĻā§āĻāĻŋ āĻ¯ā§ āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻā§āĻā§ āĻŦā§āĻ¸ 64-āĻ āĻāĻ¨āĻā§āĻĄ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¯āĻžāĻ¤ā§ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻĢāĻ°ā§āĻŽā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¯āĻžāĻ¤ā§ āĻāĻāĻŋ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻāĻ¨āĻāĻāĻžāĻŦā§ āĻāĻŦāĻ āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¯ā§āĻā§āĻ¯āĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧāĨ¤ āĻāĻ¨āĻ¸ā§āĻāĻ˛ā§āĻļāĻ¨ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧā§, āĻāĻĒāĻ¨āĻŋ āĻ¸āĻ°ā§āĻŦāĻāĻ¨ā§āĻ¨ āĻā§āĻāĻŋ āĻĄāĻŋāĻā§āĻĄ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻ˛ā§ āĻ˛āĻŋāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ known_hosts
āĻāĻĒāĻ°ā§āĻ° āĻ¤ā§āĻ°ā§āĻāĻŋ āĻĒāĻ°āĻŋāĻ¤ā§āĻ°āĻžāĻŖ āĻĒā§āĻ¤ā§.
echo <public key> | base64 # вŅвОдиŅ <ĐŋŅĐąĐģиŅĐŊŅĐš ĐēĐģŅŅ, СаĐēОдиŅОваĐŊĐŊŅĐš в base64>
āĻ āĻ¨ā§āĻļā§āĻ˛āĻ¨ā§, āĻāĻ āĻāĻĻā§āĻļāĻāĻŋ āĻāĻāĻ°āĻāĻŽ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻ°ā§:
echo "123.45.67.89 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tjom/BWDSU
GPl+nafzlHDTYW7hdI4yZ5ew18JH4JW9jbhUFrviQzM7xlELEVf4h9lFX5QVkbPppSwg0cda3
Pbv7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8V6RjsNAQwdsdMFvSlVK/7XA
t3FaoJoAsncM1Q9x5+3V0Ww68/eIFmb1zuUFljQJKprrX88XypNDvjYNby6vw/Pb0rwert/En
mZ+AW4OZPnTPI89ZPmVMLuayrD2cE86Z/il8b+gw3r3+1nKatmIkjn2so1d01QraTlMqVSsbx
NrRFi9wrf+M7Q== [email protected]" | base64
āĻāĻŦāĻ āĻāĻāĻžāĻ¨ā§ āĻāĻāĻŋ āĻāĻŋ āĻāĻ¤ā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°ā§ - āĻāĻāĻāĻŋ āĻŦā§āĻ¸64 āĻāĻ¨āĻā§āĻĄā§āĻĄ āĻ¸ā§āĻā§āĻ°āĻŋāĻ:
MTIzLjQ1LjY3Ljg5IHNzaC1yc2EgQUFBQUIzTnphQzF5YzJFQUFBQUJJd0FBQVFFQWtsT1Vwa0RIcmZIWTE3U2JybVRJcE5MVEdLOVRqb20vQldEU1UKR1BsK25hZnpsSERUWVc3aGRJNHlaNWV3MThKSDRKVzlqYmhVRnJ2aVF6TTd4bEVMRVZmNGg5bEZYNVFWa2JQcHBTd2cwY2RhMwpQYnY3a09kSi9NVHlCbFdYRkNSK0hBbzNGWFJpdEJxeGlYMW5LaFhwSEFac01jaUxxOFY2UmpzTkFRd2RzZE1GdlNsVksvN1hBCnQzRmFvSm9Bc25jTTFROXg1KzNWMFd3NjgvZUlGbWIxenVVRmxqUUpLcHJyWDg4WHlwTkR2allOYnk2dncvUGIwcndlcnQvRW4KbVorQVc0T1pQblRQSTg5WlBtVk1MdWF5ckQyY0U4NlovaWw4YitndzNyMysxbkthdG1Ja2puMnNvMWQwMVFyYVRsTXFWU3NieApOclJGaTl3cmYrTTdRPT0geW91QGV4YW1wbGUuY29tCg==
āĻāĻāĻžāĻ¨ā§ āĻāĻĒāĻ°ā§ āĻāĻ˛ā§āĻ˛āĻŋāĻāĻŋāĻ¤ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻāĻā§
install:
- echo < ĐŋŅĐąĐģиŅĐŊŅĐš ĐēĐģŅŅ, СаĐēОдиŅОваĐŊĐŊŅĐš в base64> | base64 -d >> $HOME/.ssh/known_hosts
āĻ¸āĻāĻ¯ā§āĻ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻāĻāĻāĻŋ āĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻāĻ¤ āĻā§ āĻĻāĻŋāĻ¯āĻŧā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻ¯ā§āĻšā§āĻ¤ā§ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻāĻāĻŋ āĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻāĻ¤ āĻā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻā§ āĻĻāĻŋāĻ¯āĻŧā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻāĻĒāĻ¨āĻžāĻā§ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¯ā§ āĻāĻāĻŋ āĻāĻāĻāĻŋ Travis CI āĻāĻ¨āĻāĻžāĻ¯āĻŧāĻ°āĻ¨āĻŽā§āĻ¨ā§āĻ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§ āĻ¨āĻŋāĻ°āĻžāĻĒāĻĻā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ āĻāĻāĻŋ āĻā§āĻĨāĻžāĻ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻšāĻā§āĻā§ āĻ¨āĻžāĨ¤
āĻāĻ°ā§āĻāĻāĻŋ āĻŦāĻŋāĻˇāĻ¯āĻŧ āĻ˛āĻā§āĻˇāĻŖā§āĻ¯āĻŧ āĻ¯ā§ āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻāĻāĻŋ āĻ˛āĻžāĻāĻ¨ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¸āĻŽāĻā§āĻ° āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ° āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ - āĻāĻ° āĻ¸āĻžāĻĨā§ doctl
. āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŋāĻā§ āĻ
āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻĒā§āĻ°āĻā§āĻˇā§āĻāĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
doctl compute ssh <droplet> --ssh-command "вŅĐĩ ĐēĐžĐŧĐ°ĐŊĐ´Ņ ĐąŅĐ´ŅŅ СдĐĩŅŅ && СдĐĩŅŅ"
TLS/SSL āĻāĻŦāĻ āĻ˛ā§āĻĄ āĻŦā§āĻ¯āĻžāĻ˛ā§āĻ¨ā§āĻ¸āĻŋāĻ
āĻāĻŽāĻŋ āĻāĻĒāĻ°ā§ āĻāĻ˛ā§āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ¸āĻŦāĻāĻŋāĻā§ āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§, āĻāĻŽāĻŋ āĻ¯ā§ āĻļā§āĻˇ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ° āĻ¸āĻŽā§āĻŽā§āĻā§āĻ¨ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĻžāĻŽ āĻ¤āĻž āĻšāĻ˛ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ SSL āĻāĻŋāĻ˛ āĻ¨āĻžāĨ¤ āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻŽāĻŋ āĻā§āĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ Node.js āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŋ
āĻāĻŽāĻŋ āĻ¸āĻ¤ā§āĻ¯āĻŋāĻ āĻāĻ āĻ¸āĻŽāĻ¸ā§āĻ¤ SSL āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻŋ āĻāĻ°āĻ¤ā§ āĻāĻžāĻāĻ¨āĻŋ, āĻ¤āĻžāĻ āĻāĻŽāĻŋ āĻļā§āĻ§ā§ āĻāĻāĻāĻŋ āĻ˛ā§āĻĄ āĻŦā§āĻ¯āĻžāĻ˛ā§āĻ¨ā§āĻ¸āĻžāĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻāĻŋ āĻāĻŦāĻ āĻĄāĻŋāĻāĻ¨āĻāĻ¸-āĻ āĻāĻ° āĻŦāĻŋāĻŦāĻ°āĻŖ āĻ°ā§āĻāĻ°ā§āĻĄ āĻāĻ°ā§āĻāĻŋāĨ¤ DigitalOcean-āĻāĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻ˛ā§āĻĄ āĻŦā§āĻ¯āĻžāĻ˛ā§āĻ¨ā§āĻ¸āĻžāĻ°ā§ āĻāĻāĻāĻŋ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧ āĻĒā§āĻ¨āĻ°ā§āĻ¨āĻŦā§āĻāĻ°āĻŖ āĻ¸ā§āĻŦ-āĻ¸ā§āĻŦāĻžāĻā§āĻˇāĻ°āĻŋāĻ¤ āĻļāĻāĻ¸āĻžāĻĒāĻ¤ā§āĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻāĻāĻāĻŋ āĻ¸āĻšāĻ, āĻŦāĻŋāĻ¨āĻžāĻŽā§āĻ˛ā§āĻ¯ā§ āĻāĻŦāĻ āĻĻā§āĻ°ā§āĻ¤ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĨ¤ āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻ
āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯ā§ āĻāĻāĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§ āĻ˛ā§āĻĄ āĻŦā§āĻ¯āĻžāĻ˛ā§āĻ¨ā§āĻ¸āĻžāĻ°ā§āĻ° āĻĒāĻŋāĻāĻ¨ā§ āĻāĻ˛āĻŽāĻžāĻ¨ āĻāĻāĻžāĻ§āĻŋāĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ SSL āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°āĻž āĻā§āĻŦ āĻ¸āĻšāĻ āĻāĻ°ā§ āĻ¤ā§āĻ˛ā§āĨ¤ āĻāĻāĻŋ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻā§āĻ˛āĻŋāĻā§ āĻ¨āĻŋāĻā§āĻ°āĻžāĻ SSL āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ "āĻāĻŋāĻ¨ā§āĻ¤āĻž" āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧ āĻ¨āĻž, āĻ¤āĻŦā§ āĻāĻāĻ āĻ¸āĻŽāĻ¯āĻŧā§ āĻ¸ā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻĒā§āĻ°ā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ 80
. āĻ¤āĻžāĻ āĻ˛ā§āĻĄ āĻŦā§āĻ¯āĻžāĻ˛ā§āĻ¨ā§āĻ¸āĻžāĻ°ā§ SSL āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°āĻž SSL āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°āĻžāĻ° āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻā§āĻ¯āĻŧā§ āĻ
āĻ¨ā§āĻ āĻ¸āĻšāĻ āĻāĻŦāĻ āĻāĻ°āĻ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻāĻ¨āĻāĨ¤
āĻāĻāĻ¨ āĻāĻĒāĻ¨āĻŋ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒā§āĻ°ā§āĻ āĻŦāĻ¨ā§āĻ§ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻ¯āĻž āĻāĻ¨āĻāĻžāĻŽāĻŋāĻ āĻ¸āĻāĻ¯ā§āĻāĻā§āĻ˛āĻŋ āĻā§āĻ°āĻšāĻŖ āĻāĻ°ā§ - āĻĒā§āĻ°ā§āĻ āĻāĻžāĻĄāĻŧāĻž 80
, āĻ˛ā§āĻĄ āĻŦā§āĻ¯āĻžāĻ˛ā§āĻ¨ā§āĻ¸āĻžāĻ° āĻāĻŦāĻ āĻĒā§āĻ°ā§āĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻāĻžāĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ 22
SSH āĻāĻ° āĻāĻ¨ā§āĻ¯āĨ¤ āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻ āĻĻā§āĻāĻŋ āĻŦā§āĻ¯āĻ¤ā§āĻ¤ āĻ
āĻ¨ā§āĻ¯ āĻā§āĻ¨āĻ āĻĒā§āĻ°ā§āĻā§ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻ
ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻā§āĻˇā§āĻāĻž āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻŦā§āĨ¤
āĻĢāĻ˛āĻžāĻĢāĻ˛
āĻāĻŽāĻŋ āĻāĻ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻāĻŋāĻ¤ā§ āĻ¯āĻž āĻ¯āĻž āĻŦāĻ˛ā§āĻāĻŋāĻ˛āĻžāĻŽ āĻ¤āĻž āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§, āĻĄāĻāĻžāĻ° āĻĒā§āĻ˛ā§āĻ¯āĻžāĻāĻĢāĻ°ā§āĻŽ āĻŦāĻž āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧ CI/CD āĻā§āĻāĻ¨ā§āĻ° āĻ§āĻžāĻ°āĻŖāĻžāĻā§āĻ˛āĻŋ āĻāĻŽāĻžāĻā§ āĻāĻ° āĻāĻ¯āĻŧ āĻĻā§āĻāĻžāĻ¯āĻŧāĻ¨āĻŋāĨ¤ āĻāĻŽāĻŋ āĻāĻāĻāĻŋ āĻ
āĻŦāĻŋāĻā§āĻāĻŋāĻ¨ā§āĻ¨ āĻāĻ¨ā§āĻāĻŋāĻā§āĻ°ā§āĻļāĻ¨ āĻā§āĻāĻ¨ āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°āĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽ āĻšāĻ¯āĻŧā§āĻāĻŋ, āĻ¯āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻā§āĻĄāĻāĻŋ āĻāĻ¤ā§āĻĒāĻžāĻĻāĻ¨ā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻžāĻ° āĻāĻā§ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻā§āĻĄāĻāĻŋ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻāĻŋ āĻāĻāĻ¨āĻ āĻāĻŽāĻžāĻ° āĻāĻžāĻā§ āĻ¤ā§āĻ˛āĻ¨āĻžāĻŽā§āĻ˛āĻāĻāĻžāĻŦā§ āĻ¨āĻ¤ā§āĻ¨, āĻāĻŦāĻ āĻāĻŽāĻŋ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻ¯ā§ āĻāĻŽāĻžāĻ° āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°ā§āĻŽāĻĒā§āĻ°āĻŦāĻžāĻš āĻāĻ¨ā§āĻ¨āĻ¤ āĻāĻ°āĻžāĻ° āĻāĻŦāĻ āĻāĻāĻŋāĻā§ āĻāĻ°āĻ āĻĻāĻā§āĻˇ āĻāĻ°āĻžāĻ° āĻāĻĒāĻžāĻ¯āĻŧ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻ¤āĻžāĻ āĻāĻ āĻŦāĻŋāĻˇāĻ¯āĻŧā§ āĻāĻĒāĻ¨āĻžāĻ° āĻā§āĻ¨ āĻ§āĻžāĻ°āĻ¨āĻž āĻĨāĻžāĻāĻ˛ā§ āĻĻāĻ¯āĻŧāĻž āĻāĻ°ā§ āĻāĻŽāĻžāĻā§ āĻāĻžāĻ¨āĻžāĻ¨āĨ¤
āĻĻā§āĻ°āĻˇā§āĻāĻŦā§āĻ¯ āĻāĻŽāĻžāĻĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§
āĻĒā§āĻ°āĻŋāĻ¯āĻŧ āĻĒāĻžāĻ āĻāĻāĻŖ! āĻāĻĒāĻ¨āĻŋ āĻāĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§ CI/CD āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨?
āĻāĻ¤ā§āĻ¸: www.habr.com