CI рдпрд╛ рдкрд░реАрдХреНрд╖рдг рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП Docker-in-Docker рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдзреНрдпрд╛рди рд╕реЗ рд╕реЛрдЪреЗрдВред



Docker-in-Docker рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓рд╛рдЗрдЬреНрдб Docker рдбреЗрдорди рд╣реИ рдЬреЛ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рд╣реА рдХрдВрдЯреЗрдирд░ рдЗрдореЗрдЬреЗрдЬ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд▓ рд░рд╣рд╛ рд╣реИред рдбреЛрдХрд░-рдЗрди-рдбреЙрдХрд░ рдмрдирд╛рдиреЗ рдХрд╛ рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдп рдбреЛрдХрд░ рдХреЛ рдЦреБрдж рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдирд╛ рдерд╛ред рдХрдИ рд▓реЛрдЧ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЬреЗрдирдХрд┐рдВрд╕ CI рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рдРрд╕реА рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ рдЬреЛ рдЬреЗрдирдХрд┐рдВрд╕ рд╕реАрдЖрдИ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдбреЙрдХрд░ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдмрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдЖрд▓реЗрдЦ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИред рдпрджрд┐ рдЖрдк рд╡рд┐рд╡рд░рдг рдХреЗ рдмрд┐рдирд╛ рдЕрдВрддрд┐рдо рд╕рдорд╛рдзрд╛рди рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдмрд╕ рд▓реЗрдЦ рдХреЗ рдЕрдВрддрд┐рдо рднрд╛рдЧ рдХреЛ рдкрдврд╝реЗрдВ "рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рдиред"



рдбреЙрдХрд░-рдЗрди-рдбреЙрдХрд░: рдЕрдЪреНрдЫрд╛ рд╣реИ


рджреЛ рд╕рд╛рд▓ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рдбреЙрдХрд░ рдореЗрдВ -рдкреНрд░рд╛рдкреНрдд рдзреНрд╡рдЬ рдХреЛ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд┐рдпрд╛ рдФрд░ рдбрд┐рдВрдб рдХрд╛ рдкрд╣рд▓рд╛ рд╕рдВрд╕реНрдХрд░рдг рд▓рд┐рдЦрд╛ ред рд▓рдХреНрд╖реНрдп рдпрд╣ рдерд╛ рдХрд┐ рдХреЛрд░ рдЯреАрдо рдХреЛ рдбреЛрдХрд░ рдХреЛ рддреЗрдЬреА рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реЗред рдбреЙрдХрд░-рдЗрди-рдбреЙрдХрд░ рд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рдХрд╛рд╕ рдЪрдХреНрд░ рдЗрд╕ рддрд░рд╣ рдерд╛:

  • рд╣реИрдХрд┐рдВрдЧ рд╣реИрдХ;
  • рд╕рднрд╛
  • рд░рдирд┐рдВрдЧ рдбреЙрдХрдЯрд░ рдбреЗрдореЙрди рдХреЛ рд░реЛрдХрдирд╛;
  • рдПрдХ рдирдпрд╛ рдбреЙрдХрдЯрд░ рдбреЗрдорди рд▓реЙрдиреНрдЪ;
  • рдкрд░рд┐рдХреНрд╖рдг;
  • рд▓реВрдк рд░рд┐рдкреАрдЯред

рдпрджрд┐ рдЖрдк рдПрдХ рд╕реБрдВрджрд░, рдкреНрд░рдЬрдирди рдпреЛрдЧреНрдп рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдЬреЛ рдПрдХ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рд╣реИ), рддреЛ рдпрд╣ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реЛ рдЧрдпрд╛:

  • рд╣реИрдХрд┐рдВрдЧ рд╣реИрдХ;
  • рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдбреЙрдХрд░ рдХрд╛ рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рд╕рдВрд╕реНрдХрд░рдг рдЪрд▓ рд░рд╣рд╛ рд╣реИ;
  • рдПрдХ рдкреБрд░рд╛рдиреЗ рдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рдХрд░реНрддрд╛ рдмрдирд╛рдПрдБ;
  • рдбреЙрдХ рдбреЗрдорди рдХреЛ рд░реЛрдХрдирд╛;
  • рдПрдХ рдирдпрд╛ рдбреЙрдХрдЯрд░ рдбреЗрдорди рд▓реЙрдиреНрдЪ;
  • рдорд╛рдкрдирд╛;
  • рдирдП рдбреЙрдХрд░ рдбреЗрдорди рдХреЛ рд░реЛрдХреЗрдВ;
  • рджреЛрд╣рд░рд╛рдПрдБред

рдбреЙрдХрд░-рдЗрди-рдбреЙрдХрд░ рдХреЗ рдЖрдЧрдорди рдХреЗ рд╕рд╛рде, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рд░рд▓ рдмрдирд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

  • рд╣реИрдХрд┐рдВрдЧ рд╣реИрдХ;
  • рдПрдХ рдЪрд░рдг рдореЗрдВ рд╡рд┐рдзрд╛рдирд╕рднрд╛ + рд▓реЙрдиреНрдЪ;
  • рд▓реВрдк рд░рд┐рдкреАрдЯред

рдХреНрдпрд╛ рдпрд╣ рдмреЗрд╣рддрд░ рдирд╣реАрдВ рд╣реИ?



рдбреЙрдХрдЯрд░-рдЗрди-рдбреЙрдХрд░: рдЦрд░рд╛рдм


рд╣рд╛рд▓рд╛рдВрдХрд┐, рд▓реЛрдХрдкреНрд░рд┐рдп рдзрд╛рд░рдгрд╛ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдбреЙрдХ-рдЗрди-рдбреЛрдХрд░ рд╕рд┐рддрд╛рд░реЛрдВ, рдЯрдЯреНрдЯреВ рдФрд░ рдпреВрдирд┐рдХреЙрд░реНрди рд╕реЗ рдмрдирд╛ 100% рдирд╣реАрдВ рд╣реИред рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ, рдРрд╕реЗ рдХрдИ рдореБрджреНрджреЗ рд╣реИрдВ рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдПрд▓рдПрд╕рдПрдо (рд▓рд┐рдирдХреНрд╕ рд╕реБрд░рдХреНрд╖рд╛ рдореЙрдбреНрдпреВрд▓) рдЬреИрд╕реЗ рдХрд┐ AppArmor рдФрд░ SELinux рдХреА рдЪрд┐рдВрддрд╛ рдХрд░рддрд╛ рд╣реИ: рдЬрдм рдХрдВрдЯреЗрдирд░ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ "рдЖрдВрддрд░рд┐рдХ рдбреЙрдХрд░" рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░реЛрдлрд╛рдЗрд▓ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ "рдмрд╛рд╣рд░реА рдбреЙрдХрд░" рдХреЛ рд╕рдВрдШрд░реНрд╖ рдпрд╛ рднреНрд░рдорд┐рдд рдХрд░реЗрдЧрд╛ред рдпрд╣ рд╕рдмрд╕реЗ рдХрдард┐рди рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП, рдЬреЛ рдХрд┐ рдореВрд▓-рдзреНрд╡рдЬ рдХреЗ рдореВрд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реА рд╣реИред рдореЗрд░реЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛, рдФрд░ рд╕рднреА рдкрд░реАрдХреНрд╖рдг рдореЗрд░реА рдбреЗрдмрд┐рдпрди рдорд╢реАрди рдФрд░ рдЙрдмрдВрдЯреВ рдкрд░реАрдХреНрд╖рдг рдЖрднрд╛рд╕реА рдорд╢реАрдиреЛрдВ рдкрд░ рднреА рдЧреБрдЬрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рд╡реЗ рдорд╛рдЗрдХрд▓ рдХреНрд░реЙрд╕реНрдмреА рдорд╢реАрди рдкрд░ рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЬрд╛рдПрдВрдЧреЗ рдФрд░ рдЬрд▓ рдЬрд╛рдПрдВрдЧреЗ (рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдореБрдЭреЗ рдпрд╛рдж рд╣реИ, рдЙрд╕рдХреЗ рдкрд╛рд╕ рдлреЗрдбреЛрд░рд╛ рдерд╛)ред рдореИрдВ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдЯреАрдХ рдХрд╛рд░рдг рдХреЛ рдпрд╛рдж рдирд╣реАрдВ рд░рдЦ рд╕рдХрддрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рд╢рд╛рдпрдж рдЗрд╕рд▓рд┐рдП рд╣реБрдЖ рдХреНрдпреЛрдВрдХрд┐ рдорд╛рдЗрдХ рдПрдХ рдмреБрджреНрдзрд┐рдорд╛рди рд╡реНрдпрдХреНрддрд┐ рд╣реИ рдЬреЛ SELINUX = enforce (рдореИрдВрдиреЗ AppArmor рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдореЗрд░реЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдиреЗ SELinux рдкреНрд░реЛрдлрд╛рдЗрд▓ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд░рдЦрд╛ред

рдбреЙрдХрдЯрд░-рдЗрди-рдбреЙрдХрд░: рдПрдВрдЧреНрд░реА


рджреВрд╕рд░реА рд╕рдорд╕реНрдпрд╛ рдбреЙрдХрд░ рд╕реНрдЯреЛрд░реЗрдЬ рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рдЬрдм рдЖрдк Docker-in-Docker рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдмрд╛рд╣рд░реА Docker рдирд┐рдпрдорд┐рдд рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо (EXT4, BTRFS рдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЬреЛ рдХреБрдЫ рднреА рд╣реЛрддрд╛ рд╣реИ) рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдЪрд▓рддрд╛ рд╣реИ, рдФрд░ рдЖрдВрддрд░рд┐рдХ Docker рд░рд╛рдЗрдЯ-рдЯреВ-рдХреЙрдкреА рд╕рд┐рд╕реНрдЯрдо (AUFS, BTRFS, рдбрд┐рд╡рд╛рдЗрд╕ рдореИрдкрд░, рдЖрджрд┐) рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдЪрд▓рддрд╛ рд╣реИред , рдХреНрдпрд╛ рдмрд╛рд╣рд░реА рдбреЙрдХрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ) рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХрдИ рд╕рдВрдпреЛрдЬрди рд╣реИрдВ рдЬреЛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк AUFS рдХреЛ AUFS рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдирд╣реАрдВ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдпрджрд┐ рдЖрдк BTRFS рдХреЛ BTRFS рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдкрд╣рд▓реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЬреИрд╕реЗ рд╣реА рдЙрдкрдХреБрдВрдЬрд┐рдпрд╛рдВ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИрдВ, рдореВрд▓ рд╕рдмрд╡реВрд▓реЗрдо рдХреЛ рд╣рдЯрд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ред рдбрд┐рд╡рд╛рдЗрд╕ рдореИрдкрд░ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдПрдХ рдиреЗрдорд╕реНрдкреЗрд╕ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдХрдИ рдбреЙрдХрд░ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдПрдХ рд╣реА рдорд╢реАрди рдкрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╡реЗ рд╕рднреА рдПрдХ рджреВрд╕рд░реЗ рдкрд░ рдФрд░ рдХрдВрдЯреЗрдирд░ рдмреИрдХрдЕрдк рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ (рдФрд░ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред рдпреЗ рдЧрд▓рдд рд╣реИред

рдЗрдирдореЗрдВ рд╕реЗ рдХрдИ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдЖрдВрддрд░рд┐рдХ рдбреЙрдХ рдореЗрдВ AUFS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдмрд╕ / var / lib / docker рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рдПрдХ рдореЗрдВ рдмрджрд▓ рджреЗрдВ рдФрд░ рд╕рдмрдХреБрдЫ рдареАрдХ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдбреЙрдХрд░ рдиреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдореИрдкрд░ рдХреЗ рд▓рдХреНрд╖рд┐рдд рдирд╛рдореЛрдВ рдореЗрдВ рдХреБрдЫ рдмреБрдирд┐рдпрд╛рджреА рдирд╛рдорд╕реНрдерд╛рди рдЬреЛрдбрд╝реЗ, рддрд╛рдХрд┐ рдпрджрд┐ рдПрдХ рд╣реА рдорд╢реАрди рдкрд░ рдХрдИ рдбреЙрдХрд░ рдХреЙрд▓ рдХрд┐рдП рдЬрд╛рдПрдВ, рддреЛ рд╡реЗ рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рдЦрд┐рд▓рд╛рдл "рдХрджрдо" рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рд╕реЗрдЯрдЕрдк рд╕рд░рд▓ рд╕реЗ рдмрд╣реБрдд рджреВрд░ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдЗрди рд▓реЗрдЦреЛрдВ рд╕реЗ рдЧрд┐рдЯрд╣рдм рдкрд░ рдбрдВрдб рднрдВрдбрд╛рд░ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ ред

рдбреЙрдХрд░-рдЗрди-рдбреЙрдХрд░: рдЦрд░рд╛рдм рд╣реЛ рд░рд╣рд╛ рд╣реИ


рдмрд┐рд▓реНрдб рдХреИрд╢ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рдпрд╣ рднреА рдХрд╛рдлреА рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд▓реЛрдЧ рдЕрдХреНрд╕рд░ рдореБрдЭрд╕реЗ рдкреВрдЫрддреЗ рд╣реИрдВ рдХрд┐ "рдЕрдЧрд░ рдореИрдВ рдбреЙрдХ-рдЗрди-рдбреЙрдХрд░ рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реВрдВ, рддреЛ рдореИрдВ рдЕрдкрдиреЗ рдЖрдВрддрд░рд┐рдХ рдбреЙрдХрдЯрд░ рдореЗрдВ рд╕рдм рдХреБрдЫ рд╡рд╛рдкрд╕ рдЦреАрдВрдЪрдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЕрдкрдиреЗ рдореЗрдЬрдмрд╛рди рдкрд░ рд╕реНрдерд┐рдд рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ"?

рдХреБрдЫ рдЙрджреНрдпрдореА рд▓реЛрдЧреЛрдВ рдиреЗ рдореЗрдЬрдмрд╛рди рд╕реЗ рдбреЛрдХрд░-рдЗрди-рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░ рдХреЛ рдмрд╛рдВрдзрдиреЗ / var / lib / docker рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдХрднреА-рдХрднреА рд╡реЗ рдХрдИ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд╕рд╛рде / var / lib / docker рд╕рд╛рдЭрд╛ рдХрд░рддреЗ рд╣реИрдВред


рднреНрд░рд╖реНрдЯ рдбрд╛рдЯрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рдЖрдкрдХреЗ рдбреЗрдЯрд╛ рдХреЛ рдиреБрдХрд╕рд╛рди рдкрд╣реБрдВрдЪрд╛рдПрдЧрд╛!

рдбреЙрдХ рдбреЗрдореЙрди рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ / var / lib / docker рддрдХ рд╡рд┐рд╢реЗрд╖ рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕ рдлреЛрд▓реНрдбрд░ рдореЗрдВ рдХрд┐рд╕реА рднреА рдбреЙрдХрд░ рдлрд╛рдЗрд▓ рдХреЛ "рдЯрдЪ, рдкреЛрдХ рдпрд╛ рдЯрдЪ" рдФрд░ рдХреБрдЫ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реИ? рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдбреЙрдЯрдХреНрд▓рд╛рдЙрдб рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рд╕реЗ рд╕реАрдЦреЗ рдЧрдП рд╕рдмрд╕реЗ рдХрдард┐рди рдкрд╛рдареЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдбреЙрдЯрдХреНрд▓рд╛рдЙрдб рдХрдВрдЯреЗрдирд░ рдЗрдВрдЬрди рдиреЗ рдПрдХ рд╣реА рд╕рдордп рдкрд░ / var / lib / dotcloud рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреА рдХрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛ред рдЯреНрд░рд┐рдХреА рдЯреНрд░рд┐рдХреНрд╕, рдЬреИрд╕реЗ рдкрд░рдорд╛рдгреБ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди (рдЬрдЧрд╣ рдореЗрдВ рд╕рдВрдкрд╛рджрди рдХреЗ рдмрдЬрд╛рдп), рд╕рд▓рд╛рд╣рдХрд╛рд░ рдФрд░ рдЕрдирд┐рд╡рд╛рд░реНрдп рддрд╛рд▓реЗ рдХреЗ рд╕рд╛рде рдХреЛрдб рдХреЛ "рдкрд░реНрдЪрд┐рдВрдЧ" рдХрд░рдирд╛, рдФрд░ SQLite рдФрд░ BDB рдЬреИрд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдЕрдиреНрдп рдкреНрд░рдпреЛрдЧ, рд╣рдореЗрд╢рд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рдереЗред рдЬрдм рд╣рдордиреЗ рдЕрдкрдиреЗ рдХрдВрдЯреЗрдирд░ рдЗрдВрдЬрди рдХреЛ рдлрд┐рд░ рд╕реЗ рдбрд┐рдЬрд╛рдЗрди рдХрд┐рдпрд╛, рдЬреЛ рдЕрдВрддрддрдГ рдбреЙрдХрд░ рдореЗрдВ рдмрджрд▓ рдЧрдпрд╛, рддреЛ рдореБрдЦреНрдп рдбрд┐рдЬрд╛рдЗрди рдирд┐рд░реНрдгрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдПрдХ рд╣реА рдбреЗрдореЙрди рдХреЗ рддрд╣рдд рд╕рднреА рдХрдВрдЯреЗрдирд░ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рдерд╛ рддрд╛рдХрд┐ рдПрдХ рд╕рд╛рде рдкрд╣реБрдВрдЪ рдХреЗ рд╕рднреА рдмрдХрд╡рд╛рд╕ рдХреЛ рджреВрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред

рдореБрдЭреЗ рдЧрд▓рдд рдордд рд╕рдордЭреЛ: рдХреБрдЫ рдЕрдЪреНрдЫрд╛, рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдФрд░ рддреЗрдЬ рдХрд░рдирд╛ рдХрд╛рдлреА рд╕рдВрднрд╡ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдХрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдФрд░ рдЖрдзреБрдирд┐рдХ рд╕рдорд╛рдирд╛рдВрддрд░ рдирд┐рдпрдВрддреНрд░рдг рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреЗред рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЗрд╡рд▓ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рд░реВрдк рдореЗрдВ рдбреЙрдХрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЛрдб рдХреЛ рд▓рд┐рдЦрдирд╛ рдФрд░ рдмрдирд╛рдП рд░рдЦрдирд╛ рд╕рд░рд▓ рдФрд░ рдЖрд╕рд╛рди рд╣реИред

рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рдХрдИ рдбреЙрдХрд░ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рдмреАрдЪ / var / lib / docker рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕рд╛рдЭрд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рд╕рдорд╕реНрдпрд╛рдПрдБ рд╣реЛрдВрдЧреАред рдмреЗрд╢рдХ, рдпрд╣ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд╢реБрд░реБрдЖрддреА рдЪрд░рдгреЛрдВ рдореЗрдВред "рд╕реБрдиреЛ, рдорд╛, рдореИрдВ рдЙрдмрдВрдЯреВ рдХреЛ рдПрдХ рдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд▓рд╛ рд╕рдХрддрд╛ рд╣реВрдВ!" рд▓реЗрдХрд┐рди рдХреБрдЫ рдФрд░ рдЬрдЯрд┐рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЙрджрд╛рд╣рд░рдгреЛрдВ рд╕реЗ рдПрдХ рд╣реА рдЫрд╡рд┐ рдХреЛ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓реЗрдВ, рдФрд░ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рджреБрдирд┐рдпрд╛ рдХреИрд╕реЗ рдЬрд▓рддреА рд╣реИред

рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдкрдХрд╛ CI рд╕рд┐рд╕реНрдЯрдо рдЕрд╕реЗрдВрдмрд▓реА рдФрд░ рд░реАрд╕реЗрдореНрдмрд▓реА рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╣рд░ рдмрд╛рд░ рдЬрдм рдЖрдк рдбреЙрдХ-рдЗрди-рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдкрд░рдорд╛рдгреБ рдмрдо рдХреЛ рдЙрд╕рдХреЗ рдХреИрд╢ рдореЗрдВ рдЧрд┐рд░рд╛рдиреЗ рдХрд╛ рдЬреЛрдЦрд┐рдо рдЙрдард╛рддреЗ рд╣реИрдВред рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ!

рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди


рдЪрд▓реЛ рдПрдХ рдХрджрдо рдкреАрдЫреЗ рд╣рдЯреЛред рдХреНрдпрд╛ рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ Docker-in-Docker рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдпрд╛ рдХреЗрд╡рд▓ Docker рдХреЛ рдЪрд▓рд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрд░реНрдерд╛рддреН рдЕрдкрдиреЗ CI рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рдХрдВрдЯреЗрдирд░реЛрдВ рдФрд░ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдмрдирд╛рдирд╛ рдФрд░ рдЪрд▓рд╛рдирд╛, рдЬрдмрдХрд┐ рдпрд╣ CI рд╕рд┐рд╕реНрдЯрдо рдХрдВрдЯреЗрдирд░ рдореЗрдВ рд╣реА рд╣реИ?

рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рд▓реЛрдЧреЛрдВ рдХреЛ рдмрд╛рдж рд╡рд╛рд▓реЗ рд╡рд┐рдХрд▓реНрдк рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдпрд╛рдиреА рд╡реЗ рдХрдВрдЯреЗрдирд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЗрдирдХреАрдВрд╕ рдЬреИрд╕реА рд╕реАрдЖрдИ рдкреНрд░рдгрд╛рд▓реА рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдФрд░ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ CI рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдбреЙрдХ рд╕реЙрдХреЗрдЯ рдбрд╛рд▓реЗрдВ, рдЗрд╕реЗ -v рдлреНрд▓реИрдЧ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝ рджреЗрдВред

рд╕реАрдзреЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдХрд╣реЗрдВ, рдЬрдм рдЖрдк рдЕрдкрдиреЗ рдбреЙрдХ-рдЗрди-рдбреЙрдХрд░ рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╣реИрдХ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЕрдкрдиреЗ рд╕реАрдЖрдИ рдХрдВрдЯреЗрдирд░ (рдЬреЗрдирдХрд┐рдВрд╕ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп) рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рд▓рд╛рдЗрди рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ:

docker run -v /var/run/docker.sock:/var/run/docker.sock ...

рдЕрдм рдЗрд╕ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдбреЙрдХрдЯрд░ рд╕реЙрдХреЗрдЯ рддрдХ рдкрд╣реБрдВрдЪ рд╣реЛрдЧреА рдФрд░ рдЗрд╕рд▓рд┐рдП, рдХрдВрдЯреЗрдирд░ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛ред рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ "рдмрдЪреНрдЪреЗ" рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдпрд╣ "рд╕рдВрдмрдВрдзрд┐рдд" рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рдЪрд▓рд╛рдПрдЧрд╛ред

рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдбреЙрдХрдЯрд░ рдЫрд╡рд┐ (рдЬрд┐рд╕рдореЗрдВ рдбреЙрдХрд░ рдмрд╛рдЗрдирд░реА рд╢рд╛рдорд┐рд▓ рд╣реИ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдПрдВ:

docker run -v /var/run/docker.sock:/var/run/docker.sock \
           -ti docker

рдпрд╣ рдбреЙрдХрд░-рдЗрди-рдбреЙрдХрд░ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ рдФрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдбреЙрдХрд░-рдЗрди-рдбреЙрдХрд░ рдирд╣реАрдВ рд╣реИ: рдЬрдм рдпрд╣ рдХрдВрдЯреЗрдирд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрдВрдЯреЗрдирд░ рдмрдирд╛рддрд╛ рд╣реИ, рддреЛ рд╡реЗ рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рдбреЙрдХрд░ рдореЗрдВ рдмрдирд╛рдП рдЬрд╛рдПрдВрдЧреЗред рдЖрдкрдХреЛ рдШреЛрдВрд╕рд▓реЗ рдХреЗ рд╢рд┐рдХрд╛рд░ рдХреЗ рджреБрд╖реНрдкреНрд░рднрд╛рд╡ рдХрд╛ рдЕрдиреБрднрд╡ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдФрд░ рдмрд┐рд▓реНрдб рдХреИрд╢ рдХреЛ рдХрдИ рдХреЙрд▓ рдкрд░ рд╕рд╛рдЭрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдиреЛрдЯ: рдЗрд╕ рд▓реЗрдЦ рдХреЗ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдиреЗ рдореЗрдЬрдмрд╛рди рд╕реЗ рдХрдВрдЯреЗрдирд░ рдХреЛ рдбреЙрдХрд░реА рдмрд╛рдЗрдирд░реА рдХреЛ рдмрд╛рдВрдзрдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреАред рдпрд╣ рдЕрдм рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдбреЙрдХрд░ рддрдВрддреНрд░ рдЕрдм рд╕реНрдерд┐рд░ рдпрд╛ рд▓рдЧрднрдЧ рд╕реНрдерд┐рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рддрдХ рдирд╣реАрдВ рдлреИрд▓рд╛ рд╣реИред

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдпрджрд┐ рдЖрдк рдЬреЗрдирдХрд┐рдиреНрд╕ рд╕реАрдЖрдИ рд╕реЗ рдбреЙрдХрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ 2 рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ:
рдбреЙрдХрд┐рдпрд░ рд╕реАрдПрд▓рдЖрдИ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдореВрд▓ рдЫрд╡рд┐ рдкреИрдХреЗрдЬрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ (рдпрд╛рдиреА рдпрджрд┐ рдЖрдкрдХреА рдЫрд╡рд┐ рдбреЗрдмрд┐рдпрди рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рддреЛ .deb рд╕рдВрдХреБрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ), рдбреЙрдХрд░ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗред

рд╡рд┐рдЬреНрдЮрд╛рдкрди рдХрд╛ рдПрдХ рд╕рд╛ :)


рд╣рдорд╛рд░реЗ рд╕рд╛рде рд░рд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдХреНрдпрд╛ рдЖрдк рд╣рдорд╛рд░реЗ рд▓реЗрдЦ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ? рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рд╕рд╛рдордЧреНрд░реА рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдПрдХ рдСрд░реНрдбрд░ рджреЗрдХрд░ рдпрд╛ $ 4.99 рд╕реЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рджреЛрд╕реНрддреЛрдВ рдХреЗ рдХреНрд▓рд╛рдЙрдб-рдЖрдзрд╛рд░рд┐рдд VPS рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рдХреЗ рд╣рдореЗрдВ рд╕рдорд░реНрдерди рджреЗрдВ, рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдПрдВрдЯреНрд░реА-рд▓реЗрд╡рд▓ рд╕рд░реНрд╡рд░ рдХрд╛ рдПрдХ рдЕрдиреВрдард╛ рдПрдирд╛рд▓реЙрдЧ: VPS (KVM) E5-2697 3 (6 рдХрд░реЛрдбрд╝) 10GB DDR4 480GB SSD 1Gbps рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреВрд░реА рд╕рдЪреНрдЪрд╛рдИ $ 19 рдпрд╛ рд╕рд░реНрд╡рд░ рдХреЛ рдХреИрд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░реЗрдВ? (рд╡рд┐рдХрд▓реНрдк RAID1 рдФрд░ RAID10 рдХреЗ рд╕рд╛рде рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, 24 рдХреЛрд░ рддрдХ рдФрд░ 40GB DDR4 рддрдХ)ред

рдбреЗрд▓ R730xd рдПрдореНрд╕реНрдЯрд░реНрдбрдо рдореЗрдВ рдЗрдХреНрд╡рд┐рдирд┐рдХреНрд╕ рдЯреАрдпрд░ IV рдбреЗрдЯрд╛ рд╕реЗрдВрдЯрд░ рдореЗрдВ 2 рдЧреБрдирд╛ рд╕рд╕реНрддрд╛? рдХреЗрд╡рд▓ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV рдиреАрджрд░рд▓реИрдВрдб рдХреЗ 199 рдбреЙрд▓рд░ рдореЗрдВ рд╕реЗ рд╣реИ!рдбреЗрд▓ R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - $ 99 рд╕реЗ! рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ Bldg рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХреИрд╕реЗ рдХрд░реЗрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝реЗрдВ ред рдПрдХ рдкреИрд╕рд╛ рдХреЗ рд▓рд┐рдП 9,000 рдпреВрд░реЛ рдХреА рд▓рд╛рдЧрдд рдбреЗрд▓ R730xd E5-2650 v4 рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╡рд░реНрдЧ рд╕реА?

All Articles