Docker рд░ Gitlab CI рд╕рдВрдЧ рд╡рд┐рдХрд╛рд╕ рд░ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛

рдо рддрдкрд╛рдИрдВрд▓рд╛рдИ Inventos "Docker + Gitlab CI рд╕рдБрдЧ рд╡рд┐рдХрд╛рд╕ рд░ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛" рдмрд╛рдЯ рдЕрд▓реЗрдХреНрдЬреНрдпрд╛рдгреНрдбрд░ рд╕рд┐рдЧрд╛рдЪреЗрдн рджреНрд╡рд╛рд░рд╛ рд░рд┐рдкреЛрд░реНрдЯрдХреЛ рдЯреНрд░рд╛рдиреНрд╕рдХреНрд░рд┐рдкреНрдЯ рдкрдвреНрди рд╕реБрдЭрд╛рд╡ рджрд┐рдиреНрдЫреБред

рдЬрд╕рд▓реЗ рднрд░реНрдЦрд░реИ рд╡рд┐рдХрд╛рд╕ рд░ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛рд▓рд╛рдИ Docker + Gitlab CI рдорд╛ рдЖрдзрд╛рд░рд┐рдд рд▓рд╛рдЧреВ рдЧрд░реНрди рдерд╛рд▓реЗрдХрд╛ рдЫрдиреН рдкреНрд░рд╛рдп: рдЖрдзрд╛рд░рднреВрдд рдкреНрд░рд╢реНрдирд╣рд░реВ рд╕реЛрдзреНрдЫрдиреНред рдХрд╣рд╛рдБ рд╕реБрд░реБ рдЧрд░реНрдиреЗ? рдХрд╕рд░реА рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЧрд░реНрдиреЗ? рдХрд╕рд░реА рдкрд░реАрдХреНрд╖рдг рдЧрд░реНрдиреЗ?

рдпреЛ рд░рд┐рдкреЛрд░реНрдЯ рд░рд╛рдореНрд░реЛ рдЫ рдХрд┐рдирднрдиреЗ рдпрд╕рд▓реЗ рдбрдХрд░ рд░ Gitlab CI рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╡рд┐рдХрд╛рд╕ рд░ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛рдХреЛ рдмрд╛рд░реЗрдорд╛ рд╕рдВрд░рдЪрд┐рдд рддрд░рд┐рдХрд╛рдорд╛ рдХреБрд░рд╛ рдЧрд░реНрдЫред рд░рд┐рдкреЛрд░реНрдЯ рдЖрдлреИрдВ 2017 рдХреЛ рд╣реЛред рдорд▓рд╛рдИ рд▓рд╛рдЧреНрдЫ рдХрд┐ рдпрд╕ рд░рд┐рдкреЛрд░реНрдЯрдмрд╛рдЯ рддрдкрд╛рдИрдВрд▓реЗ рдЖрдзрд╛рд░рднреВрдд рдХреБрд░рд╛рд╣рд░реВ, рдкрджреНрдзрддрд┐, рд╡рд┐рдЪрд╛рд░, рд░ рдкреНрд░рдпреЛрдЧрдХреЛ рдЕрдиреБрднрд╡ рдмрдЯреБрд▓реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред

рдЬреЛ рдХреЛрд╣реА рдЗрдЪреНрдЫреБрдХ рдХреЛ рд▓рд╛рдЧреА, рдмрд┐рд░рд╛рд▓реЛ рд╣реЗрд░реНрдиреБрд╣реЛрд╕реНред

рдореЗрд░реЛ рдирд╛рдо рдЕрд▓реЗрдХреНрдЬреЗрдВрдбрд░ рд╕рд┐рдЧрд╛рдЪреЗрдн рд╣реЛред Inventos рдорд╛ рдХрд╛рдо рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ рдо рддрдкрд╛рдИрдВрд▓рд╛рдИ рдбрдХрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдореЗрд░реЛ рдЕрдиреБрднрд╡ рд░ рд╣рд╛рдореА рдХрд╕рд░реА рдХрдореНрдкрдиреАрдорд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВрдорд╛ рдпрд╕рд▓рд╛рдИ рдмрд┐рд╕реНрддрд╛рд░реИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрджреИрдЫреМрдВ рднрдиреНрдиреЗ рдмрд╛рд░реЗ рдмрддрд╛рдЙрдиреЗрдЫреБред

рд░рд┐рдкреЛрд░реНрдЯрдХреЛ рд╡рд┐рд╖рдп: рдбрдХрд░ рд░ Gitlab CI рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ред

Docker рд░ Gitlab CI рд╕рдВрдЧ рд╡рд┐рдХрд╛рд╕ рд░ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛

рдпреЛ рдбрдХрд░рдХреЛ рдмрд╛рд░реЗрдорд╛ рдореЗрд░реЛ рджреЛрд╕реНрд░реЛ рдХреБрд░рд╛рдХрд╛рдиреА рд╣реЛред рдкрд╣рд┐рд▓реЛ рд░рд┐рдкреЛрд░реНрдЯрдХреЛ рд╕рдордпрдорд╛, рд╣рд╛рдореАрд▓реЗ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛ рдореЗрд╕рд┐рдирд╣рд░реВрдорд╛ рд╡рд┐рдХрд╛рд╕рдорд╛ рдорд╛рддреНрд░ рдбрдХрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдпреМрдВред рдбрдХрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдХрд░реНрдордЪрд╛рд░реАрд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ рд▓рдЧрднрдЧ 2-3 рд╡реНрдпрдХреНрддрд┐ рдерд┐рдпреЛред рдмрд┐рд╕реНрддрд╛рд░реИ рдЕрдиреБрднрд╡ рдмрдЯреБрд▓реНрджреИ рдЧрдпреЛ рд░ рд╣рд╛рдореА рдЕрд▓рд┐ рдЕрдЧрд╛рдбрд┐ рдмрдвреНрдпреМрдБ ред рд╣рд╛рдореНрд░реЛ рд▓рд┐рдЩреНрдХ рдкрд╣рд┐рд▓реЛ рд░рд┐рдкреЛрд░реНрдЯ.

рдпреЛ рд░рд┐рдкреЛрд░реНрдЯрдорд╛ рдХреЗ рд╣реБрдиреЗрдЫ? рд╣рд╛рдореАрд▓реЗ рдХрд╕реНрддрд╛ рд░реЗрдХрд╣рд░реВ рд╕рдЩреНрдХрд▓рди рдЧрд░реНтАНрдпреМрдВ, рдХрд╕реНрддрд╛ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНтАНрдпреМрдВ рднрдиреНрдиреЗ рдмрд╛рд░реЗ рд╣рд╛рдореНрд░реЛ рдЕрдиреБрднрд╡ рд╕рд╛рдЭрд╛ рдЧрд░реНрдиреЗрдЫреМрдВред рдпреЛ рдЬрддрд╛рддрддреИ рд╕реБрдиреНрджрд░ рдерд┐рдПрди, рддрд░ рдпрд╕рд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ рдЕрдЧрд╛рдбрд┐ рдмрдвреНрди рдЕрдиреБрдорддрд┐ рджрд┐рдпреЛред

рд╣рд╛рдореНрд░реЛ рдЖрджрд░реНрд╢ рд╡рд╛рдХреНрдп: рд╣рд╛рдореАрд▓реЗ рд╣рд╛рддрдорд╛ рд▓рд┐рдПрдХрд╛ рд╕рдмреИ рдЪреАрдЬрд╣рд░реВ рдбрдХрд░рд╛рдЗрдЬ рдЧрд░реНрдиреБрд╣реЛрд╕реНред

Docker рд░ Gitlab CI рд╕рдВрдЧ рд╡рд┐рдХрд╛рд╕ рд░ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛

рд╣рд╛рдореА рдХрд╕реНрддрд╛ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрджреИрдЫреМрдВ?

рдЬрдм рдХрдореНрдкрдиреАрд╕рдБрдЧ рдзреЗрд░реИ рдЯреЛрд▓реАрд╣рд░реВ рд╣реБрдиреНрдЫрдиреН, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╕рд╛рдЭрд╛ рд╕реНрд░реЛрдд рд╣реЛред рддреНрдпрд╣рд╛рдБ рдЪрд░рдгрд╣рд░реВ рдЫрдиреН рдЬрдм рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░рд▓рд╛рдИ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рдмрд╛рдЯ рдмрд╛рд╣рд┐рд░ рдирд┐рдХрд╛рд▓рд┐рдиреНрдЫ рд░ рдХреЗрд╣рд┐ рд╕рдордпрдХреЛ рд▓рд╛рдЧрд┐ рдЕрд░реНрдХреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдорд╛ тАЛтАЛрджрд┐рдЗрдиреНрдЫред

рдкреНрд░реЛрдЧреНрд░рд╛рдорд░рд▓реЗ рдЪрд╛рдБрдбреИ рдмреБрдЭреНрдирдХреЛ рд▓рд╛рдЧрд┐, рдЙрд╕рд▓реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛рдХреЛ рд╕реНрд░реЛрдд рдХреЛрдб рдбрд╛рдЙрдирд▓реЛрдб рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ рд░ рд╕рдХреЗрд╕рдореНрдо рдЪрд╛рдБрдбреЛ рд╡рд╛рддрд╛рд╡рд░рдг рд╕реБрд░реБ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ, рдЬрд╕рд▓реЗ рдЙрд╕рд▓рд╛рдИ рдпрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛рдХреЛ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди рдердк рдЕрдЧрд╛рдбрд┐ рдмрдвреНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреЗрдЫред

рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рдпрджрд┐ рддрдкрд╛рдЗрдБ рд╕реНрдХреНрд░реНрдпрд╛рдЪрдмрд╛рдЯ рд╕реБрд░реБ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рдкрд░рд┐рдпреЛрдЬрдирд╛рдорд╛ тАЛтАЛрдереЛрд░реИ рдХрд╛рдЧрдЬрд╛рддрд╣рд░реВ рдЫрдиреНред рдпрд╕рд▓рд╛рдИ рдХрд╕рд░реА рд╕реЗрдЯрдЕрдк рдЧрд░реНрдиреЗ рднрдиреНрдиреЗ рдмрд╛рд░реЗ рдкреБрд░рд╛рдиреЛ-рдЯрд╛рдЗрдорд░рд╣рд░реВрд╕рдБрдЧ рдорд╛рддреНрд░ рдЬрд╛рдирдХрд╛рд░реА рдЫред рдХрд░реНрдордЪрд╛рд░реАрд╣рд░реВрд▓реЗ рдПрдХ рд╡рд╛ рджреБрдИ рджрд┐рдирдорд╛ рдЖрдлреНрдиреЛ рдХрд╛рд░реНрдпрд╕реНрдерд▓ рдЖрдлреИрдВ рд╕реЗрдЯ рдЧрд░реНрдЫрдиреНред рдпрд╕рд▓рд╛рдИ рдЧрддрд┐ рджрд┐рди, рд╣рд╛рдореАрд▓реЗ рдбрдХрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдпреМрдВред

рдЕрд░реНрдХреЛ рдХрд╛рд░рдг рд╡рд┐рдХрд╛рд╕рдорд╛ рд╕реЗрдЯрд┐рдЩрд╣рд░реВрдХреЛ рдорд╛рдирдХреАрдХрд░рдг рд╣реЛред рдореЗрд░реЛ рдЕрдиреБрднрд╡рдорд╛, рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рд╕рдзреИрдВ рдкрд╣рд▓ рдЧрд░реНрдЫрдиреНред рдкреНрд░рддреНрдпреЗрдХ рдкрд╛рдБрдЪреМрдВ рдХреЗрд╕рдорд╛, рдЕрдиреБрдХреВрд▓рди рдбреЛрдореЗрди рдкреНрд░рд╡рд┐рд╖реНрдЯ рдЧрд░рд┐рдиреНрдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐ vasya.devред рдореЗрд░реЛ рдЫреЗрдЙрдорд╛ рдореЗрд░реЛ рдЫрд┐рдореЗрдХреА рдкреЗрдЯреНрдпрд╛ рдмрд╕реЗрдХреЛ рдЫ, рдЬрд╕рдХреЛ рдбреЛрдореЗрди petya.dev рд╣реЛред рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдпреЛ рдбреЛрдореЗрди рдирд╛рдо рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╡рд╛ рдХреЗрд╣реА рдкреНрд░рдгрд╛рд▓реА рдХрдореНрдкреЛрдиреЗрдиреНрдЯ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрдЫрдиреНред

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

рдПрдЙрдЯреИ рдХреБрд░рд╛ рдбрд╛рдЯрд╛рдмреЗрд╕ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╕рдВрдЧ рд╣реБрдиреНрдЫред рдХреЗрд╣реА рд╡реНрдпрдХреНрддрд┐рд╣рд░реВ рд╕реБрд░рдХреНрд╖рд╛рд╕рдБрдЧ рдЪрд┐рдиреНрддрд╛ рдЧрд░реНрджреИрдирдиреН рд░ рдЦрд╛рд▓реА рд░реВрдЯ рдкрд╛рд╕рд╡рд░реНрдбрдХреЛ рд╕рд╛рде рдХрд╛рдо рдЧрд░реНрдЫрдиреНред рд╕реНрдерд╛рдкрдирд╛ рдЪрд░рдгрдорд╛, MySQL рд▓реЗ рдХрд╕реИрд▓рд╛рдИ рдкрд╛рд╕рд╡рд░реНрдб рдорд╛рдЧреЗрдХреЛ рдерд┐рдпреЛ рд░ рдкрд╛рд╕рд╡рд░реНрдб 123 рднрдпреЛред рдпреЛ рдЕрдХреНрд╕рд░ рд╣реБрдиреНрдЫ рдХрд┐ рдбрд╛рдЯрд╛рдмреЗрд╕ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рдХреЛ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛рдХреЛ рдЖрдзрд╛рд░рдорд╛ рдирд┐рд░рдиреНрддрд░ рдкрд░рд┐рд╡рд░реНрддрди рднрдЗрд░рд╣реЗрдХреЛ рдерд┐рдпреЛред рдХрд╕реИрд▓реЗ рд╕рдЪреНрдпрд╛рдпреЛ, рдХрд╕реИрд▓реЗ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рд╕рдЪреНрдпрд╛рдПрдиред рд╣рд╛рдореАрд▓реЗ рдХреЗрд╣реА рдкрд░реАрдХреНрд╖рдг рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирдорд╛ рд░рд╛рдЦреНрджрд╛ рддреНрдпрд╣рд╛рдБ рдЪрд╛рд▓рд╣рд░реВ рдерд┐рдП .gitignore рд░ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд▓реЗ рдбрд╛рдЯрд╛рдмреЗрд╕ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреБрдкрд░реНтАНрдпреЛред рдпрд╕рд▓реЗ рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд▓рд╛рдИ рдердк рдХрдард┐рди рдмрдирд╛рдпреЛред рдЕрдиреНрдп рдЪреАрдЬрд╣рд░реВ рдмреАрдЪ, рддрдкрд╛рдИрдВрд▓реЗ рдбрд╛рдЯрд╛рдмреЗрд╕рдХреЛ рдмрд╛рд░реЗрдорд╛ рдпрд╛рдж рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рдбрд╛рдЯрд╛рдмреЗрд╕ рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рд╣реБрдиреБрдкрд░реНрдЫ, рдкрд╛рд╕рд╡рд░реНрдб рджрд░реНрддрд╛ рд╣реБрдиреБрдкрд░реНрдЫ, рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рджрд░реНрддрд╛ рд╣реБрдиреБрдкрд░реНрдЫ, рдЪрд┐рдиреНрд╣ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрдкрд░реНрдЫ, рд░ рдпрд╕реНрддреИред

рдЕрд░реНрдХреЛ рд╕рдорд╕реНрдпрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВрдХреЛ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдг рд╣реЛред рдпреЛ рдЕрдХреНрд╕рд░ рд╣реБрдиреНрдЫ рдХрд┐ рдПрдХ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛ рд╡рд┐рднрд┐рдиреНрди рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реБ рдорд╛ рдХрд╛рдо рдЧрд░реНрджрдЫред рддреНрдпрд╣рд╛рдБ рдПрдХ рд╡рд┐рд░рд╛рд╕рдд рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЫ, рдЬреБрди рдкрд╛рдБрдЪ рд╡рд░реНрд╖ рдкрд╣рд┐рд▓реЗ рд╕реБрд░реБ рднрдпреЛ (2017 рдмрд╛рдЯ - рд╕рдореНрдкрд╛рджрдХрдХреЛ рдиреЛрдЯ)ред рд╕реБрд░реБрдорд╛ рд╣рд╛рдореАрд▓реЗ MySQL 5.5 рд╕рдБрдЧ рд╕реБрд░реБ рдЧрд░реНрдпреМрдВред рддреНрдпрд╣рд╛рдБ рдЖрдзреБрдирд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВ рдкрдирд┐ рдЫрдиреН рдЬрд╣рд╛рдБ рд╣рд╛рдореА MySQL рдХреЛ рдердк рдЖрдзреБрдирд┐рдХ рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВ рд▓рд╛рдЧреВ рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░рд┐рд░рд╣реЗрдХрд╛ рдЫреМрдВ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐ 5.7 рд╡рд╛ рдкреБрд░рд╛рдиреЛ (2017 рдорд╛ - рд╕рдореНрдкрд╛рджрдХрдХреЛ рдиреЛрдЯ)

MySQL рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдиреЗ рдЬреЛ рдХреЛрд╣реАрд▓рд╛рдИ рдерд╛рд╣рд╛ рдЫ рдХрд┐ рдпреА рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВрдорд╛ рдирд┐рд░реНрднрд░рддрд╛рд╣рд░реВ рдЫрдиреНред 2 рдбрд╛рдЯрд╛рдмреЗрд╕ рд╕рдБрдЧреИ рдЪрд▓рд╛рдЙрди рдзреЗрд░реИ рд╕рдорд╕реНрдпрд╛ рдЫред рдХрдореНрддрд┐рдорд╛, рдкреБрд░рд╛рдиреЛ рдЧреНрд░рд╛рд╣рдХрд╣рд░реВрд▓рд╛рдИ рдирдпрд╛рдБ рдбрд╛рдЯрд╛рдмреЗрд╕рдорд╛ рдЬрдбрд╛рди рдЧрд░реНрди рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рдЫред рдпрд╕рд▓реЗ рдмрд╛рд░реАрдорд╛ рдзреЗрд░реИ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рдЬрдиреНрдорд╛рдЙрдБрдЫред

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

рдорд╛рдЗрдХреНрд░реЛ рд╕рд░реНрднрд┐рд╕рдХреЛ рджрд┐рд╢рд╛ рдЕрд╣рд┐рд▓реЗ рд╡рд┐рдХрд╛рд╕ рднрдЗрд░рд╣реЗрдХреЛ рдЫред рдЬрдм рд╣рд╛рдореА рд╣рд╛рдореНрд░рд╛ рдареВрд▓рд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрд▓рд╛рдИ рдПрдХрдЕрд░реНрдХрд╛рд╕рдБрдЧ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛ рдЧрд░реНрдиреЗ рдХреЗрд╣реА рд╕рд╛рдирд╛ рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВрдорд╛ рд╡рд┐рднрд╛рдЬрди рдЧрд░реНрдЫреМрдВред рдпрд╕рд▓реЗ рддрдкрд╛рдЗрдБрд▓рд╛рдИ рд╡рд┐рд╢реЗрд╖ рдХрд╛рд░реНрдп рд╕реНрдЯреНрдпрд╛рдХрдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рд╡рд┐рдзрд┐рд╣рд░реВ рдЪрдпрди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рдпрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВ рдмреАрдЪрдХреЛ рдХрд╛рдо рд░ рдЬрд┐рдореНрдореЗрд╡рд╛рд░реАрдХреЛ рдХреНрд╖реЗрддреНрд░ рд╡рд┐рднрд╛рдЬрди рдЧрд░реНрди рдкрдирд┐ рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред

рдПрдХ рдлреНрд░рдиреНрдЯрдПрдиреНрдб рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛, JS рдорд╛ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрджреИ, рдмреНрдпрд╛рдХрдПрдиреНрдбрдорд╛ рд╡рд╕реНрддреБрддрдГ рдХреБрдиреИ рдкреНрд░рднрд╛рд╡ рдЫреИрдиред рдмреНрдпрд╛рдХрдПрдиреНрдб рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛, рдмрд╛рд░реАрдорд╛, рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрджрдЫ, рд╣рд╛рдореНрд░реЛ рдЕрд╡рд╕реНрдерд╛рдорд╛, рд░реБрдмреА рдЕрди рд░реЗрд▓рд╣рд░реВ рд░ рдлреНрд░рдиреНрдбреЗрдиреНрдбрдорд╛ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдЧрд░реНрджреИрдиред рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛ API рдкреНрд░рдпреЛрдЧ рдЧрд░реА рдЧрд░рд┐рдиреНрдЫред

рдмреЛрдирд╕рдХреЛ рд░реВрдкрдорд╛, рдбрдХрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╣рд╛рдореА рд╕реНрдЯреЗрдЬрд┐рдЩрдорд╛ рд╕реНрд░реЛрддрд╣рд░реВ рдкреБрди: рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрд╖рдо рдерд┐рдпреМрдВред рдкреНрд░рддреНрдпреЗрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛, рдпрд╕рдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛рдХреЛ рдХрд╛рд░рдг, рдирд┐рд╢реНрдЪрд┐рдд рд╕реЗрдЯрд┐рдЩрд╣рд░реВ рдЖрд╡рд╢реНрдпрдХ рдЫред рднреМрддрд┐рдХ рд░реВрдкрдорд╛, рдпреЛ рдпрд╛ рдд рднрд░реНрдЪреБрдЕрд▓ рд╕рд░реНрднрд░ рдЖрд╡рдВрдЯрд┐рдд рдЧрд░реНрди рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдЕрд▓рдЧ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдерд┐рдпреЛ, рд╡рд╛ рдХреЗрд╣реА рдкреНрд░рдХрд╛рд░рдХреЛ рдЪрд░ рд╡рд╛рддрд╛рд╡рд░рдг рд╡рд┐рднрд╛рдЬрди рдЧрд░реНрди рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВрдХреЛ рд╕рдВрд╕реНрдХрд░рдгрдорд╛ рдирд┐рд░реНрднрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВрд▓реЗ рдПрдХрдЕрд░реНрдХрд╛рд▓рд╛рдИ рдкреНрд░рднрд╛рд╡ рдкрд╛рд░реНрди рд╕рдХреНрдЫред

Docker рд░ Gitlab CI рд╕рдВрдЧ рд╡рд┐рдХрд╛рд╕ рд░ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛

рдЙрдкрдХрд░рдгрд╣рд░реВред рд╣рд╛рдореА рдХреЗ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреМрдВ?

  • рдбрдХрд░ рдЖрдлреИрдВред рдПрдХ рдбрдХрд░рдлрд╛рдЗрд▓рд▓реЗ рдПрдХрд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧрдХреЛ рдирд┐рд░реНрднрд░рддрд╛ рд╡рд░реНрдгрди рдЧрд░реНрджрдЫред
  • рдбрдХрд░-рдХрдореНрдкреЛрдЬ рдПрдЙрдЯрд╛ рдмрдиреНрдбрд▓ рд╣реЛ рдЬрд╕рд▓реЗ рд╣рд╛рдореНрд░рд╛ рдзреЗрд░реИ рдбрдХрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВ рд╕рдБрдЧреИ рд▓реНрдпрд╛рдЙрдБрдЫред
  • рд╣рд╛рдореА рд╕реНрд░реЛрдд рдХреЛрдб рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрди GitLab рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреМрдВред
  • рд╣рд╛рдореА рдкреНрд░рдгрд╛рд▓реА рдПрдХреАрдХрд░рдгрдХреЛ рд▓рд╛рдЧрд┐ GitLab-CI рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреМрдВред

Docker рд░ Gitlab CI рд╕рдВрдЧ рд╡рд┐рдХрд╛рд╕ рд░ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛

рдкреНрд░рддрд┐рд╡реЗрджрди рджреБрдИ рднрд╛рдЧрдорд╛ рд╕рдорд╛рд╡реЗрд╢ рдЫред

рдкрд╣рд┐рд▓реЛ рднрд╛рдЧрд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рдореЗрд╕рд┐рдирдорд╛ рдбрдХрд░ рдХрд╕рд░реА рдЪрд▓рд╛рдЙрдиреЗ рднрдиреЗрд░ рдмрддрд╛рдЙрдиреЗрдЫред

рджреЛрд╕реНрд░реЛ рднрд╛рдЧрд▓реЗ GitLab рд╕рдБрдЧ рдХрд╕рд░реА рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛ рдЧрд░реНрдиреЗ, рд╣рд╛рдореА рдХрд╕рд░реА рдкрд░реАрдХреНрд╖рдгрд╣рд░реВ рдЪрд▓рд╛рдЙрдБрдЫреМрдВ рд░ рдХрд╕рд░реА рд╕реНрдЯреЗрдЬрд┐рдЩрдорд╛ рд░реЛрд▓ рдЖрдЙрдЯ рдЧрд░реНрдЫреМрдВ рднрдиреНрдиреЗ рдмрд╛рд░реЗрдорд╛ рдХреБрд░рд╛ рдЧрд░реНрдиреЗрдЫред

Docker рд░ Gitlab CI рд╕рдВрдЧ рд╡рд┐рдХрд╛рд╕ рд░ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛

рдбрдХрд░ рдПрдХ рдЯреЗрдХреНрдиреЛрд▓реЛрдЬреА рд╣реЛ рдЬрд╕рд▓реЗ рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ (рдПрдХ рдШреЛрд╖рдгрд╛рддреНрдордХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░) рдЖрд╡рд╢реНрдпрдХ рдШрдЯрдХрд╣рд░реВ рд╡рд░реНрдгрди рдЧрд░реНрдиред рдпреЛ рдПрдХ рдЙрджрд╛рд╣рд░рдг Dockerfile рд╣реЛред рдпрд╣рд╛рдБ рд╣рд╛рдореА рдШреЛрд╖рдгрд╛ рдЧрд░реНрдЫреМрдВ рдХрд┐ рд╣рд╛рдореА рд░реБрдмреАрдХреЛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдбрдХрд░ рдЫрд╡рд┐рдмрд╛рдЯ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрджреИрдЫреМрдВ: 2.3.0ред рдпрд╕рдорд╛ рд░реБрдмреА рд╕рдВрд╕реНрдХрд░рдг реи.рей рд╕реНрдерд╛рдкрд┐рдд рдЫред рд╣рд╛рдореА рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВ рд░ NodeJS рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдЫреМрдВред рд╣рд╛рдореА рд╡рд░реНрдгрди рдЧрд░реНрдЫреМрдВ рдХрд┐ рд╣рд╛рдореА рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реА рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджреИрдЫреМрдВ /appред рд╣рд╛рдореАрд▓реЗ рдПрдк рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрд▓рд╛рдИ рдХрд╛рдо рдЧрд░реНрдиреЗ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдХреЛ рд░реВрдкрдорд╛ рдирд┐рдпреБрдХреНрдд рдЧрд░реНрдЫреМрдВред рдпрд╕ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдорд╛ рд╣рд╛рдореА рдЖрд╡рд╢реНрдпрдХ рдиреНрдпреВрдирддрдо Gemfile рд░ Gemfile.lock рд░рд╛рдЦреНрдЫреМрдВред рддреНрдпрд╕рдкрдЫрд┐ рд╣рд╛рдореА рдпреЛ рдирд┐рд░реНрднрд░рддрд╛ рдЫрд╡рд┐ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреЗ рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрдЫреМрдВред рд╣рд╛рдореА рд╕рдВрдХреЗрдд рдЧрд░реНрдЫреМрдВ рдХрд┐ рдХрдиреНрдЯреЗрдирд░ рдмрд╛рд╣реНрдп рдкреЛрд░реНрдЯ 3000 рдорд╛ рд╕реБрдиреНрдирдХреЛ рд▓рд╛рдЧрд┐ рддрдпрд╛рд░ рд╣реБрдиреЗрдЫред рдЕрдиреНрддрд┐рдо рдЖрджреЗрд╢ рднрдиреЗрдХреЛ рд╕реАрдзреИ рд╣рд╛рдореНрд░реЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реБрд░реБ рдЧрд░реНрдиреЗ рдЖрджреЗрд╢ рд╣реЛред рдпрджрд┐ рд╣рд╛рдореАрд▓реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд░рди рдЖрджреЗрд╢ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрдЫреМрдВ рднрдиреЗ, рдЕрдиреБрдкреНрд░рдпреЛрдЧрд▓реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЖрджреЗрд╢ рдЪрд▓рд╛рдЙрди рд░ рдЪрд▓рд╛рдЙрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреЗрдЫред

Docker рд░ Gitlab CI рд╕рдВрдЧ рд╡рд┐рдХрд╛рд╕ рд░ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛

рдпреЛ рдбрдХрд░-рдХрдореНрдкреЛрдЬ рдлрд╛рдЗрд▓рдХреЛ рдиреНрдпреВрдирддрдо рдЙрджрд╛рд╣рд░рдг рд╣реЛред рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛, рд╣рд╛рдореА рджреЗрдЦрд╛рдЙрдБрдЫреМрдВ рдХрд┐ рджреБрдИ рдХрдиреНрдЯреЗрдирд░рд╣рд░реВ рдмреАрдЪрдХреЛ рд╕рдореНрдмрдиреНрдз рдЫред рдпреЛ рд╕реАрдзрд╛ рдбрд╛рдЯрд╛рдмреЗрд╕ рд╕реЗрд╡рд╛ рд░ рд╡реЗрдм рд╕реЗрд╡рд╛ рдорд╛ рдЫред рд╣рд╛рдореНрд░рд╛ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрд▓рд╛рдИ рдзреЗрд░реИ рдЬрд╕реЛ рдХреЗрд╕рд╣рд░реВрдорд╛ рдбрд╛рдЯрд╛ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрди рдмреНрдпрд╛рдХрдЗрдиреНрдбрдХреЛ рд░реВрдкрдорд╛ рдХреБрдиреИ рдкреНрд░рдХрд╛рд░рдХреЛ рдбрд╛рдЯрд╛рдмреЗрд╕ рдЪрд╛рд╣рд┐рдиреНрдЫред рд╣рд╛рдореАрд▓реЗ MySQL рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрдХреЛ рд╣реБрдирд╛рд▓реЗ, рдЙрджрд╛рд╣рд░рдг MySQL рд╕рдБрдЧ рд╣реЛ - рддрд░ рдХреБрдиреИ рдкрдирд┐ рдХреБрд░рд╛рд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ рдЕрдиреНрдп рдбрд╛рдЯрд╛рдмреЗрд╕ (PostgreSQL, Redis) рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдирдмрд╛рдЯ рд░реЛрдХреНрджреИрдиред

рд╣рд╛рдореА рдбрдХрд░ рд╣рдмрдмрд╛рдЯ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕реНрд░реЛрддрдмрд╛рдЯ рдкрд░рд┐рд╡рд░реНрддрди рдмрд┐рдирд╛ MySQL 5.7.14 рдЫрд╡рд┐ рд▓рд┐рдиреНрдЫреМрдВред рд╣рд╛рдореА рд╣рд╛рд▓рдХреЛ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдмрд╛рдЯ рд╣рд╛рдореНрд░реЛ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧрдХреЛ рд▓рд╛рдЧрд┐ рдЬрд┐рдореНрдореЗрд╡рд╛рд░ рдЫрд╡рд┐ рд╕рдЩреНрдХрд▓рди рдЧрд░реНрдЫреМрдВред рдкрд╣рд┐рд▓реЛ рдкреНрд░рдХреНрд╖реЗрдкрдгрдХреЛ рд╕рдордпрдорд╛, рдЙрд╣рд╛рдБрд▓реЗ рд╣рд╛рдореНрд░реЛ рд▓рд╛рдЧрд┐ рдПрдЙрдЯрд╛ рдЫрд╡рд┐ рд╕рдЩреНрдХрд▓рди рдЧрд░реНрдиреБрд╣реБрдиреНрдЫред рддреНрдпрд╕рдкрдЫрд┐ рдпрд╕рд▓реЗ рдЖрджреЗрд╢ рдЪрд▓рд╛рдЙрдБрдЫ рдЬреБрди рд╣рд╛рдореАрд▓реЗ рдпрд╣рд╛рдБ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрджреИрдЫреМрдВред рдпрджрд┐ рд╣рд╛рдореА рдлрд┐рд░реНрддрд╛ рдЧрдпреМрдВ рднрдиреЗ, рд╣рд╛рдореА рджреЗрдЦреНрдиреЗрдЫреМрдВ рдХрд┐ рдкреНрд░рдХреНрд╖реЗрдкрдг рдЖрджреЗрд╢ рдкреБрдорд╛ рдорд╛рд░реНрдлрдд рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред Puma рд░реБрдмреА рдорд╛ рд▓реЗрдЦрд┐рдПрдХреЛ рд╕реЗрд╡рд╛ рд╣реЛред рджреЛрд╕реНрд░реЛ рдЕрд╡рд╕реНрдерд╛рдорд╛ рд╣рд╛рдореА рдУрднрд░рд░рд╛рдЗрдб рдЧрд░реНрдЫреМрдВред рдпреЛ рдЖрджреЗрд╢ рд╣рд╛рдореНрд░реЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╡рд╛ рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рдЖрдзрд╛рд░рдорд╛ рдордирдорд╛рдиреА рд╣реБрди рд╕рдХреНрдЫред

рд╣рд╛рдореАрд▓реЗ рдпреЛ рдкрдирд┐ рд╡рд░реНрдгрди рдЧрд░реНрдЫреМрдВ рдХрд┐ рд╣рд╛рдореАрд▓реЗ рд╣рд╛рдореНрд░реЛ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛ рд╣реЛрд╕реНрдЯ рдореЗрд╕рд┐рдирдорд╛ рдкреЛрд░реНрдЯрд▓рд╛рдИ 3000 рджреЗрдЦрд┐ 3000 рдХрдиреНрдЯреЗрдирд░ рдкреЛрд░реНрдЯрдорд╛ рдлрд░реНрд╡рд╛рд░реНрдб рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рдпреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ iptables рд░ рдпрд╕рдХреЛ рдЖрдлреНрдиреИ рд╕рдВрдпрдиреНрддреНрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдЧрд░рд┐рдиреНрдЫ, рдЬреБрди рдкреНрд░рддреНрдпрдХреНрд╖ рд░реВрдкрдорд╛ рдбрдХрд░рдорд╛ рдЗрдореНрдмреЗрдб рдЧрд░рд┐рдПрдХреЛ рдЫред

рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд▓реЗ, рдкрд╣рд┐рд▓реЗ рдЬрд╕реНрддреИ, рдХреБрдиреИ рдкрдирд┐ рдЙрдкрд▓рдмреНрдз IP рдареЗрдЧрд╛рдирд╛ рдкрд╣реБрдБрдЪ рдЧрд░реНрди рд╕рдХреНрдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, 127.0.0.1 рдореЗрд╕рд┐рдирдХреЛ рд╕реНрдерд╛рдиреАрдп рд╡рд╛ рдмрд╛рд╣реНрдп IP рдареЗрдЧрд╛рдирд╛ред

рдЕрдиреНрддрд┐рдо рд░реЗрдЦрд╛рд▓реЗ рд╡реЗрдм рдХрдиреНрдЯреЗрдирд░ db рдХрдиреНрдЯреЗрдирд░рдорд╛ рдирд┐рд░реНрднрд░ рдЧрд░реНрджрдЫ рднрдиреА рднрдиреНрдЫред рдЬрдм рд╣рд╛рдореА рд╡реЗрдм рдХрдиреНрдЯреЗрдирд░ рд╕реБрд░реБ рдЧрд░реНрди рдХрд▓ рдЧрд░реНрдЫреМрдВ, рдбрдХрд░-рдХрдореНрдкреЛрдЬрд▓реЗ рд╣рд╛рдореНрд░реЛ рд▓рд╛рдЧрд┐ рдбрд╛рдЯрд╛рдмреЗрд╕ рд╕реБрд░реБ рдЧрд░реНрдиреЗрдЫред рдбрд╛рдЯрд╛рдмреЗрд╕рдХреЛ рд╕реБрд░реБрд╡рд╛рддрдорд╛ рдкрд╣рд┐рд▓реЗ рдиреИ (рд╡рд╛рд╕реНрддрд╡рдорд╛, рдХрдиреНрдЯреЗрдирд░рдХреЛ рд╕реБрд░реБрд╡рд╛рдд рдкрдЫрд┐! рдпрд╕рд▓реЗ рдбрд╛рдЯрд╛рдмреЗрд╕рдХреЛ рддрдпрд╛рд░реАрдХреЛ рдЧреНрдпрд╛рд░реЗрдиреНрдЯреА рдЧрд░реНрджреИрди) рдпрд╕рд▓реЗ рд╣рд╛рдореНрд░реЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ, рд╣рд╛рдореНрд░реЛ рдмреНрдпрд╛рдХрдПрдиреНрдб рд╕реБрд░реБ рдЧрд░реНрдиреЗрдЫред

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

Docker рд░ Gitlab CI рд╕рдВрдЧ рд╡рд┐рдХрд╛рд╕ рд░ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛

рдкрд░рд┐рдпреЛрдЬрдирд╛рдорд╛ тАЛтАЛрдбрд╛рдЯрд╛рдмреЗрд╕ рдбрдХрд░рд╛рдЗрдЬреЗрд╕рди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛ рд╣рд╛рдореАрд▓рд╛рдИ рдХреЗ рджрд┐рдиреНрдЫ? рд╣рд╛рдореА рд╕рдмреИ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ MySQL рд╕рдВрд╕реНрдХрд░рдг рд░реЗрдХрд░реНрдб рдЧрд░реНрдЫреМрдВред рдпрд╕рд▓реЗ рддрдкрд╛рдЗрдБрд▓рд╛рдИ рдХреЗрд╣рд┐ рддреНрд░реБрдЯрд┐рд╣рд░реВрдмрд╛рдЯ рдмрдЪреНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ рдЬреБрди рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВ рднрд┐рдиреНрди рд╣реБрдБрджрд╛, рд╕рд┐рдиреНрдЯреНрдпрд╛рдХреНрд╕, рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди, рд░ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╕реЗрдЯрд┐рдЩрд╣рд░реВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдБрджрд╛ рд╣реБрди рд╕рдХреНрдЫред рдпрд╕рд▓реЗ рддрдкрд╛рдЗрдБрд▓рд╛рдИ рдбрд╛рдЯрд╛рдмреЗрд╕, рд▓рдЧрдЗрди, рдкрд╛рд╕рд╡рд░реНрдбрдХреЛ рд▓рд╛рдЧрд┐ рд╕рд╛рдЭрд╛ рд╣реЛрд╕реНрдЯрдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рд╣рд╛рдореА рдкрд╣рд┐рд▓реЗ рдЕрд╡рд╕реНрдерд┐рдд рдХрдиреНрдлрд┐рдЧ рдлрд╛рдЗрд▓рд╣рд░реВрдорд╛ рдирд╛рдо рд░ рд╡рд┐рд╡рд╛рджрд╣рд░реВрдХреЛ рдЪрд┐рдбрд┐рдпрд╛рдЦрд╛рдирд╛рдмрд╛рдЯ рдЯрд╛рдврд╛ рдЬрд╛рдБрджреИрдЫреМрдВред

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

Docker рд░ Gitlab CI рд╕рдВрдЧ рд╡рд┐рдХрд╛рд╕ рд░ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛

рдбрдХрд░рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдкрд╛рдЗрдерди, рд░реБрдмреА, рдиреЛрдбрдЬреЗрдПрд╕, рдЗрдЪреНрдЫрд┐рдд рд╕рдВрд╕реНрдХрд░рдгрдХреЛ PHP рдЕрдиреБрд╡рд╛рджрдХ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рд╣рд╛рдореА рдХреЗрд╣рд┐ рдкреНрд░рдХрд╛рд░рдХреЛ рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рдмрдиреНрдзрдХ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдЖрд╡рд╢реНрдпрдХрддрд╛рдмрд╛рдЯ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдЙрдБрдЫреМрдВред рдкрд╣рд┐рд▓реЗ, рд░реБрдмреАрдХреЛ рд▓рд╛рдЧрд┐ rpm рдкреНрдпрд╛рдХреЗрдЬ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ, рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдХреЛ рдЖрдзрд╛рд░рдорд╛ рд╕рдВрд╕реНрдХрд░рдг рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдпреЛред рдбрдХрд░ рдХрдиреНрдЯреЗрдирд░рдХреЛ рд▓рд╛рдЧрд┐ рдзрдиреНрдпрдмрд╛рдж, рдпрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рд╕рдЬрд┐рд▓реИрд╕рдБрдЧ рдХреЛрдб рдорд╛рдЗрдЧреНрд░реЗрдЯ рдЧрд░реНрди рд░ рдирд┐рд░реНрднрд░рддрд╛рд╣рд░реВрдХреЛ рд╕рд╛рде рд╕рдВрд╕реНрдХрд░рдг рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рд╣рд╛рдореАрд▓рд╛рдИ рдЕрдиреБрд╡рд╛рджрдХ рд░ рдХреЛрдб рджреБрд╡реИрдХреЛ рд╕рдВрд╕реНрдХрд░рдг рдмреБрдЭреНрди рдХреБрдиреИ рд╕рдорд╕реНрдпрд╛ рдЫреИрдиред рд╕рдВрд╕реНрдХрд░рдг рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░реНрди, рддрдкрд╛рдИрдВрд▓реЗ рдкреБрд░рд╛рдиреЛ рдХрдиреНрдЯреЗрдирд░ рдХрдо рд░ рдирдпрд╛рдБ рдХрдиреНрдЯреЗрдирд░ рдЙрдард╛рдЙрди рдЖрд╡рд╢реНрдпрдХ рдЫред рдпрджрд┐ рдХреЗрд╣рд┐ рдЧрд▓рдд рднрдпреЛ рднрдиреЗ, рд╣рд╛рдореА рдирдпрд╛рдБ рдХрдиреНрдЯреЗрдирд░ рдХрдо рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ, рдкреБрд░рд╛рдиреЛ рдХрдиреНрдЯреЗрдирд░ рдмрдврд╛рдЙрди рд╕рдХреНрдЫреМрдВред

рдЫрд╡рд┐ рдирд┐рд░реНрдорд╛рдг рдЧрд░реЗрдкрдЫрд┐, рд╡рд┐рдХрд╛рд╕ рд░ рдЙрддреНрдкрд╛рджрди рджреБрд╡реИрдорд╛ рдХрдиреНрдЯреЗрдирд░рд╣рд░реВ рд╕рдорд╛рди рд╣реБрдиреЗрдЫрдиреНред рдпреЛ рдареВрд▓рд╛ рд╕реНрдерд╛рдкрдирд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╡рд┐рд╢реЗрд╖ рдЧрд░реА рд╕рддреНрдп рд╣реЛред

Docker рд░ Gitlab CI рд╕рдВрдЧ рд╡рд┐рдХрд╛рд╕ рд░ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ Frontend рдорд╛ рд╣рд╛рдореА JavaScipt рд░ NodeJS рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреМрдВред

рдЕрдм рд╣рд╛рдореАрд╕рдБрдЧ ReacJS рдорд╛ рд╣рд╛рдореНрд░реЛ рдЕрдиреНрддрд┐рдо рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЫред рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд▓реЗ рдХрдиреНрдЯреЗрдирд░рдорд╛ рд╕рдмреИ рдХреБрд░рд╛ рд╕реБрд░реБ рдЧрд░реНрдпреЛ рд░ рд╣рдЯ-рд░рд┐рд▓реЛрдб рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрдпреЛред

рдЕрд░реНрдХреЛ, JavaScipt рдПрд╕реЗрдореНрдмрд▓ рдЧрд░реНрдиреЗ рдХрд╛рд░реНрдп рд╕реБрд░реБ рдЧрд░рд┐рдПрдХреЛ рдЫ рд░ рд╕реНрдерд┐рд░ рд░реВрдкрдорд╛ рднреЗрд▓рд╛ рдЧрд░рд┐рдПрдХреЛ рдХреЛрдб nginx рдорд╛рд░реНрдлрдд рдкрдард╛рдЗрдиреНрдЫ, рд╕реНрд░реЛрддрд╣рд░реВ рдмрдЪрдд рдЧрд░реНрджреИред

Docker рд░ Gitlab CI рд╕рдВрдЧ рд╡рд┐рдХрд╛рд╕ рд░ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛

рдпрд╣рд╛рдБ рдореИрд▓реЗ рд╣рд╛рдореНрд░реЛ рдкрдЫрд┐рд▓реНрд▓реЛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдХреЛ рд░реЗрдЦрд╛рдЪрд┐рддреНрд░ рдкреНрд░рджрд╛рди рдЧрд░реЗрдХреЛ рдЫреБред

рдХрд╕реНрддрд╛ рд╕рдорд╕реНрдпрд╛ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрдиреБрднрдпреЛ ? рд╣рд╛рдореАрд▓реЗ рдореЛрдмрд╛рдЗрд▓ рдЙрдкрдХрд░рдгрд╣рд░реВ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛ рдЧрд░реНрдиреЗ рдкреНрд░рдгрд╛рд▓реА рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдерд┐рдпреЛред рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдбрд╛рдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдЫрдиреНред рд╕рдореНрднрд╛рд╡рдирд╛рд╣рд░реВ рдордзреНрдпреЗ рдПрдХ рдпреЛ рдЙрдкрдХрд░рдгрдорд╛ рдкреБрд╢ рд╕реВрдЪрдирд╛рд╣рд░реВ рдкрдард╛рдЙрди рд╣реЛред

рдпрд╕рдХрд╛ рд▓рд╛рдЧрд┐ рд╣рд╛рдореАрд▓реЗ рдХреЗ рдЧрд░реЗрдХрд╛ рдЫреМрдВ?

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

рд╣рд╛рдореАрд▓рд╛рдИ рдкреБрд╢ рд╕реВрдЪрдирд╛рд╣рд░реВ рдкрдард╛рдЙрди рдкрдирд┐ рдЖрд╡рд╢реНрдпрдХ рдерд┐рдпреЛред рдпрд╕ рдЕрдШрд┐, рд╣рд╛рдореАрд╕рдБрдЧ рдПрдЙрдЯрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдерд┐рдпреЛ рдЬрд╕рдорд╛ рдПрдЙрдЯрд╛ рд╕рдВрдпрдиреНрддреНрд░ рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ рдЬреБрди рдореЛрдмрд╛рдЗрд▓ рдкреНрд▓реЗрдЯрдлрд░реНрдорд╣рд░реВрдорд╛ рд╕реВрдЪрдирд╛рд╣рд░реВ рдбреЗрд▓рд┐рднрд░ рдЧрд░реНрди рдЬрд┐рдореНрдореЗрд╡рд╛рд░ рдерд┐рдпреЛред

рд╣рд╛рдореАрд▓реЗ рдирд┐рдореНрди рдпреЛрдЬрдирд╛ рд╡рд┐рдХрд╛рд╕ рдЧрд░реЗрдХрд╛ рдЫреМрдВ: рдмреНрд░рд╛рдЙрдЬрд░рдмрд╛рдЯ рдЕрдкрд░реЗрдЯрд░рд▓реЗ рдкреНрд░рд╢рд╛рд╕рдХ рдкреНрдпрд╛рдирд▓рд╕рдБрдЧ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛ рдЧрд░реНрджрдЫ, рдкреНрд░рд╢рд╛рд╕рдХ рдкреНрдпрд╛рдирд▓ рдмреНрдпрд╛рдХрдЗрдиреНрдбрд╕рдБрдЧ рдЕрдиреНрддрд░реНрдХреНрд░рд┐рдпрд╛ рдЧрд░реНрджрдЫ, рдХрд╛рд░реНрдп рдкреБрд╢ рд╕реВрдЪрдирд╛рд╣рд░реВ рдкрдард╛рдЙрдиреЗ рд╣реЛред

рдкреБрд╢ рд╕реВрдЪрдирд╛рд╣рд░реВрд▓реЗ NodeJS рдорд╛ рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ рдЕрд░реНрдХреЛ рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╕рдБрдЧ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛ рдЧрд░реНрджрдЫред

рд▓рд╛рдорд╣рд░реВ рдмрдирд╛рдЗрдиреНрдЫ рд░ рд╕реВрдЪрдирд╛рд╣рд░реВ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдЖрдлреНрдиреИ рд╕рдВрдпрдиреНрддреНрд░ рдЕрдиреБрд╕рд╛рд░ рдкрдард╛рдЗрдиреНрдЫред

рдпрд╣рд╛рдБ рджреБрдИ рдбрд╛рдЯрд╛рдмреЗрд╕ рдХреЛрд░рд┐рдПрдХрд╛ рдЫрдиреНред рд╣рд╛рд▓, рдбрдХрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░, рд╣рд╛рдореА 2 рд╕реНрд╡рддрдиреНрддреНрд░ рдбрд╛рдЯрд╛рдмреЗрд╕рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреМрдВ рдЬреБрди рдХреБрдиреИ рдкрдирд┐ рд╣рд┐рд╕рд╛рдмрд▓реЗ рдПрдХрдЕрд░реНрдХрд╛рд╕рдБрдЧ рдЬреЛрдбрд┐рдПрдХреЛ рдЫреИрдиред рддрд┐рдиреАрд╣рд░реВрд╕рдБрдЧ рд╕рд╛рдЭрд╛ рднрд░реНрдЪреБрдЕрд▓ рдиреЗрдЯрд╡рд░реНрдХ рдЫ рднрдиреНрдиреЗ рддрдереНрдпрдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд, рд░ рднреМрддрд┐рдХ рдбреЗрдЯрд╛ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рдХреЛ рдореЗрд╕рд┐рдирдорд╛ рд╡рд┐рднрд┐рдиреНрди рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрд╣рд░реВрдорд╛ рднрдгреНрдбрд╛рд░рдг рдЧрд░рд┐рдПрдХреЛ рдЫред

Docker рд░ Gitlab CI рд╕рдВрдЧ рд╡рд┐рдХрд╛рд╕ рд░ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛

рдПрдЙрдЯреИ рдХреБрд░рд╛ рддрд░ рд╕рдВрдЦреНрдпрд╛рдорд╛ред рдХреЛрдб рдкреБрди: рдкреНрд░рдпреЛрдЧ рдпрд╣рд╛рдБ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЫред

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

рддреНрдпрд╕ рд╕рдордпрдорд╛ рд╣рд╛рдореАрд▓реЗ NodeJS рдХреЛ рд╕рдВрд╕реНрдХрд░рдг 4 рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рд░рд╣реЗрдХрд╛ рдерд┐рдпреМрдВред рдЕрдм (2017 рдорд╛ - рд╕рдореНрдкрд╛рджрдХрдХреЛ рдиреЛрдЯ) рд╣рд╛рдореНрд░реЛ рдкрдЫрд┐рд▓реНрд▓реЛ рдШрдЯрдирд╛рдХреНрд░рдорд╣рд░реВрдорд╛ рд╣рд╛рдореА NodeJS рдХреЛ рд╕рдВрд╕реНрдХрд░рдг 7 рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреМрдВред рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВрдХреЛ рдирдпрд╛рдБ рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрди рдирдпрд╛рдБ рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВрдорд╛ рдХреБрдиреИ рд╕рдорд╕реНрдпрд╛ рдЫреИрдиред

рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рдЫ рднрдиреЗ, рддрдкрд╛рдИрдВрд▓реЗ рдкреБрд╢ рд╕реВрдЪрдирд╛ рд╕реЗрд╡рд╛рдХреЛ NodeJS рд╕рдВрд╕реНрдХрд░рдгрд▓рд╛рдИ рд░рд┐рдлреНрдпрд╛рдХреНрдЯрд░ рд░ рдмрдврд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред

рд░ рдпрджрд┐ рд╣рд╛рдореАрд▓реЗ рдПрдкреАрдЖрдИ рдЕрдиреБрдХреВрд▓рддрд╛ рдХрд╛рдпрдо рд░рд╛рдЦреНрди рд╕рдХреНрдЫреМрдВ рднрдиреЗ, рдпрд╕рд▓рд╛рдИ рдкрд╣рд┐рд▓реЗ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХрд╛ рдЕрдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВрд╕рдБрдЧ рдмрджрд▓реНрди рд╕рдореНрднрд╡ рд╣реБрдиреЗрдЫред

Docker рд░ Gitlab CI рд╕рдВрдЧ рд╡рд┐рдХрд╛рд╕ рд░ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛

рддрдкрд╛рдИрд▓рд╛рдИ рдбрдХрд░ рдердкреНрди рдХреЗ рдЪрд╛рд╣рд┐рдиреНрдЫ? рд╣рд╛рдореА рд╣рд╛рдореНрд░реЛ рднрдгреНрдбрд╛рд░рдорд╛ рдбрдХрд░рдлрд╛рдЗрд▓ рдердкреНрдЫреМрдВ, рдЬрд╕рд▓реЗ рдЖрд╡рд╢реНрдпрдХ рдирд┐рд░реНрднрд░рддрд╛рд╣рд░реВ рд╡рд░реНрдгрди рдЧрд░реНрджрдЫред рдпрд╕ рдЙрджрд╛рд╣рд░рдгрдорд╛, рдШрдЯрдХрд╣рд░реВ рддрд╛рд░реНрдХрд┐рдХ рд░реВрдкрдорд╛ рд╡рд┐рднрд╛рдЬрд┐рдд рдЫрдиреНред рдпреЛ рдмреНрдпрд╛рдХрдПрдиреНрдб рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рдХреЛ рд▓рд╛рдЧрд┐ рдиреНрдпреВрдирддрдо рдХрд┐рдЯ рд╣реЛред

рдирдпрд╛рдБ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрд╛, рд╣рд╛рдореА рдПрдХ Dockerfile рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдЫреМрдВ рд░ рдЗрдЪреНрдЫрд┐рдд рдЗрдХреЛрд╕рд┐рд╕реНрдЯрдо (Python, Ruby, NodeJS) рдХреЛ рд╡рд░реНрдгрди рдЧрд░реНрдЫреМрдВред рдбрдХрд░-рдХрдореНрдкреЛрдЬрдорд╛, рдпрд╕рд▓реЗ рдЖрд╡рд╢реНрдпрдХ рдирд┐рд░реНрднрд░рддрд╛ рд╡рд░реНрдгрди рдЧрд░реНрджрдЫ - рдбрд╛рдЯрд╛рдмреЗрд╕ред рд╣рд╛рдореА рд╡рд░реНрдгрди рдЧрд░реНрдЫреМрдВ рдХрд┐ рд╣рд╛рдореАрд▓рд╛рдИ рддреНрдпрд╣рд╛рдБ рд░ рддреНрдпрд╣рд╛рдБ рдбрд╛рдЯрд╛ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрди, рддреНрдпрд╕реНрддрд╛ рд░ рддреНрдпрд╕реНрддрд╛ рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВрдХреЛ рдбрд╛рдЯрд╛рдмреЗрд╕ рдЪрд╛рд╣рд┐рдиреНрдЫред

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

nginx рд░ mysql рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрди, рд╣рд╛рдореАрд▓реЗ рдбрдХрд░ рдлреЛрд▓реНрдбрд░ рдердкреНрдпреМрдВ рдЬрд╕рдорд╛ рд╣рд╛рдореА рдЖрд╡рд╢реНрдпрдХ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирд╣рд░реВ рднрдгреНрдбрд╛рд░ рдЧрд░реНрдЫреМрдВред рдЬрдм рдПрдХ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд▓реЗ рдЖрдлреНрдиреЛ рдореЗрд╕рд┐рдирдорд╛ рднрдгреНрдбрд╛рд░рдХреЛ рдЧрд┐рдЯ рдХреНрд▓реЛрди рдмрдирд╛рдЙрдБрдЫ, рдКрд╕рдБрдЧ рдкрд╣рд┐рд▓реЗ рдиреИ рд╕реНрдерд╛рдиреАрдп рд╡рд┐рдХрд╛рд╕рдХреЛ рд▓рд╛рдЧрд┐ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рддрдпрд╛рд░ рдЫред рдХреБрди рдкреЛрд░реНрдЯ рд╡рд╛ рдХреБрди рд╕реЗрдЯрд┐рдЩрд╣рд░реВ рд▓рд╛рдЧреВ рдЧрд░реНрдиреЗ рдмрд╛рд░реЗ рдХреБрдиреИ рдкреНрд░рд╢реНрди рдЫреИрдиред

Docker рд░ Gitlab CI рд╕рдВрдЧ рд╡рд┐рдХрд╛рд╕ рд░ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛

рдЕрд░реНрдХреЛ рд╣рд╛рдореАрд╕рдБрдЧ рдзреЗрд░реИ рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВ рдЫрдиреН: рдкреНрд░рд╢рд╛рд╕рдХ, рдЬрд╛рдирдХрд╛рд░реА-рдПрдкреАрдЖрдИ, рдкреБрд╢ рд╕реВрдЪрдирд╛рд╣рд░реВред

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

Docker рд░ Gitlab CI рд╕рдВрдЧ рд╡рд┐рдХрд╛рд╕ рд░ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛

рдпреЛ dockerized-app рдХреЛ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реЛред рд╣рд╛рдореА рдпрд╣рд╛рдБ рдбрдХрд░ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реА рдкрдирд┐ рд░рд╛рдЦреНрдЫреМрдВ, рдЬрд╕рдорд╛ рд╣рд╛рдореА рд╕рдмреИ рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВрдХреЛ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рдХрд╛ рд▓рд╛рдЧрд┐ рдЖрд╡рд╢реНрдпрдХ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирд╣рд░реВ рднрд░реНрдЫреМрдВред рддреНрдпрд╣рд╛рдБ рдПрдЙрдЯрд╛ README.md рдЫ рдЬрд╕рд▓реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╕рд░реА рд╕реБрд░реБ рдЧрд░реНрдиреЗ рднрдиреЗрд░ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд░реВрдкрдорд╛ рд╡рд░реНрдгрди рдЧрд░реНрджрдЫред

рдпрд╣рд╛рдБ рд╣рд╛рдореАрд▓реЗ рджреБрдИрд╡рдЯрд╛ рдбрдХрд░-рдХрдореНрдкреЛрдЬ рдлрд╛рдЗрд▓рд╣рд░реВ рд▓рд╛рдЧреВ рдЧрд░реЗрдХрд╛ рдЫреМрдВред рдпреЛ рдЪрд░рдгрд╣рд░реВрдорд╛ рд╕реБрд░реВ рдЧрд░реНрди рд╕рдХреНрд╖рдо рд╣реБрдирдХреЛ рд▓рд╛рдЧрд┐ рдЧрд░рд┐рдиреНрдЫред рдЬрдм рдПрдХ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд▓реЗ рдХрд░реНрдиреЗрд▓рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджрдЫ, рдЙрд╕рд▓рд╛рдИ рдкреБрд╢ рд╕реВрдЪрдирд╛рд╣рд░реВ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджреИрди, рдЙрд╕рд▓реЗ рдХреЗрд╡рд▓ рдбрдХрд░-рдХрдореНрдкреЛрдЬ рдлрд╛рдЗрд▓ рд╕реБрд░реВ рдЧрд░реНрджрдЫ рд░ рддрджрдиреБрд╕рд╛рд░, рд╕реНрд░реЛрддрд╣рд░реВ рдмрдЪрдд рд╣реБрдиреНрдЫрдиреНред

рдпрджрд┐ рдкреБрд╢ рд╕реВрдЪрдирд╛рд╣рд░реВрд╕рдБрдЧ рдПрдХреАрдХрд░рдгрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЫ рднрдиреЗ, рддреНрдпрд╕рдкрдЫрд┐ docker-compose.yaml рд░ docker-compose-push.yaml рд╕реБрд░реВ рдЧрд░рд┐рдиреНрдЫред

рдбрдХрд░-compose.yaml рд░ docker-compose-push.yaml рдлреЛрд▓реНрдбрд░рдорд╛ рднрдПрдХрд╛рд▓реЗ, рдПрдХрд▓ рднрд░реНрдЪреБрдЕрд▓ рдиреЗрдЯрд╡рд░реНрдХ рд╕реНрд╡рддрдГ рд╕рд┐рд░реНрдЬрдирд╛ рд╣реБрдиреНрдЫред

Docker рд░ Gitlab CI рд╕рдВрдЧ рд╡рд┐рдХрд╛рд╕ рд░ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛

рдЕрд╡рдпрд╡рд╣рд░реВрдХреЛ рд╡рд┐рд╡рд░рдгред рдпреЛ рдПрдХ рдердк рдЙрдиреНрдирдд рдлрд╛рдЗрд▓ рд╣реЛ рдЬреБрди рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВ рд╕рдЩреНрдХрд▓рди рдЧрд░реНрди рдЬрд┐рдореНрдореЗрд╡рд╛рд░ рдЫред рдпрд╣рд╛рдБ рдХреЗ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рдЫ? рдпрд╣рд╛рдБ рд╣рд╛рдореА рдмреНрдпрд╛рд▓реЗрдиреНрд╕рд░ рдХрдореНрдкреЛрдиреЗрдиреНрдЯ рдкрд░рд┐рдЪрдп рдЧрд░реНрдЫреМрдВред

рдпреЛ рдПрдХ рддрдпрд╛рд░-рдирд┐рд░реНрдорд┐рдд рдбрдХрд░ рдЫрд╡рд┐ рд╣реЛ рдЬрд╕рд▓реЗ nginx рдЪрд▓рд╛рдЙрдБрдЫ рд░ рдПрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЬрд╕рд▓реЗ рдбрдХрд░ рд╕рдХреЗрдЯ рд╕реБрдиреНрджрдЫред рдбрд╛рдпрдирд╛рдорд┐рдХ, рдХрдиреНрдЯреЗрдирд░рд╣рд░реВ рд╕рдХреНрд░рд┐рдп рд░ рдмрдиреНрдж рд╣реБрдБрджрд╛, nginx рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдкреБрди: рдЙрддреНрдкрдиреНрди рд╣реБрдиреНрдЫред рд╣рд╛рдореА рддреЗрд╕реНрд░реЛ-рд╕реНрддрд░ рдбреЛрдореЗрди рдирд╛рдорд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВрдХреЛ рд╣реНрдпрд╛рдиреНрдбрд▓рд┐рдЩ рд╡рд┐рддрд░рдг рдЧрд░реНрдЫреМрдВред

рд╡рд┐рдХрд╛рд╕ рд╡рд╛рддрд╛рд╡рд░рдгрдХреЛ рд▓рд╛рдЧрд┐ рд╣рд╛рдореА .dev рдбреЛрдореЗрди - api.informer.dev рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреМрдВред .dev рдбреЛрдореЗрди рднрдПрдХрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рдХреЛ рд╕реНрдерд╛рдиреАрдп рдореЗрд╕рд┐рдирдорд╛ рдЙрдкрд▓рдмреНрдз рдЫрдиреНред

рддреНрдпрд╕рдкрдЫрд┐ рдХрдиреНрдлрд┐рдЧрд╣рд░реВ рдкреНрд░рддреНрдпреЗрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рдорд╛ тАЛтАЛрд╣рд╕реНрддрд╛рдиреНрддрд░рдг рдЧрд░рд┐рдиреНрдЫ рд░ рд╕рдмреИ рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВ рдПрдХреИ рд╕рдордпрдорд╛ рд╕рдБрдЧреИ рд╕реБрд░реВ рд╣реБрдиреНрдЫрдиреНред

Docker рд░ Gitlab CI рд╕рдВрдЧ рд╡рд┐рдХрд╛рд╕ рд░ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛

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

рдмреНрдпрд╛рд▓реЗрдиреНрд╕рд░рд▓реЗ рдбреЛрдореЗрди рдирд╛рдордХреЛ рдЖрдзрд╛рд░рдорд╛ рдХреБрди рдХрдиреНрдЯреЗрдирд░ рдкрд╣реБрдБрдЪ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ рднрдиреЗрд░ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░реНрджрдЫред

рдпреЛ nginx рд╣реБрди рд╕рдХреНрдЫ, рдЬрд╕рд▓реЗ рдкреНрд░рд╢рд╛рд╕рди рдкреНрдпрд╛рдирд▓рд▓рд╛рдИ JS рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред рдпреЛ nginx рджреНрд╡рд╛рд░рд╛ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, рдЬрд╕рд▓реЗ API рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ, рд╡рд╛ рд╕реНрдерд┐рд░ рдлрд╛рдЗрд▓рд╣рд░реВ, рдЬреБрди рдЫрд╡рд┐рд╣рд░реВ рд▓реЛрдб рдЧрд░реНрдиреЗ рд░реВрдкрдорд╛ nginx рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдЧрд░рд┐рдиреНрдЫред

рд░реЗрдЦрд╛рдЪрд┐рддреНрд░рд▓реЗ рджреЗрдЦрд╛рдЙрдБрдЫ рдХрд┐ рдХрдиреНрдЯреЗрдирд░рд╣рд░реВ рднрд░реНрдЪреБрдЕрд▓ рдиреЗрдЯрд╡рд░реНрдХрдорд╛ рдЬреЛрдбрд┐рдПрдХрд╛ рдЫрдиреН рд░ рдкреНрд░реЛрдХреНрд╕реА рдкрдЫрд╛рдбрд┐ рд▓реБрдХреЗрдХрд╛ рдЫрдиреНред

рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рдХреЛ рдореЗрд╕рд┐рдирдорд╛, рддрдкрд╛рдИрдВрд▓реЗ рдХрдиреНрдЯреЗрдирд░рд▓рд╛рдИ IP рдерд╛рд╣рд╛ рдкрд╛рдПрд░ рдкрд╣реБрдБрдЪ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рддрд░ рд╕рд┐рджреНрдзрд╛рдиреНрддрдорд╛ рд╣рд╛рдореА рдпрд╕рд▓рд╛рдИ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИрдиреМрдВред рдкреНрд░рддреНрдпрдХреНрд╖ рд╕рдореНрдкрд░реНрдХрдХреЛ рд▓рд╛рдЧрд┐ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдкрдорд╛ рдХреБрдиреИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЫреИрдиред

Docker рд░ Gitlab CI рд╕рдВрдЧ рд╡рд┐рдХрд╛рд╕ рд░ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛

рдореЗрд░реЛ рдЖрд╡реЗрджрди рдбрдХрд░рд╛рдЗрдЬ рдЧрд░реНрди рдореИрд▓реЗ рдХреБрди рдЙрджрд╛рд╣рд░рдг рд╣реЗрд░реНрдиреБрдкрд░реНрдЫ? рдореЗрд░реЛ рд╡рд┐рдЪрд╛рд░рдорд╛, рдПрдХ рд░рд╛рдореНрд░реЛ рдЙрджрд╛рд╣рд░рдг MySQL рдХреЛ рд▓рд╛рдЧрд┐ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдбрдХрд░ рдЫрд╡рд┐ рд╣реЛред

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

Hub.docker.com рд▓реЗ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ github.com рдХреЛ рд▓рд┐рдЩреНрдХрд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫ, рдЬрд╣рд╛рдБ рдХрдЪреНрдЪрд╛ рдбрд╛рдЯрд╛ рд╕реАрдзреИ рдкреНрд░рджрд╛рди рдЧрд░рд┐рдиреНрдЫ рдЬрд╕рдмрд╛рдЯ рддрдкрд╛рдИрдВ рдЖрдлреИрдВрд▓реЗ рдЫрд╡рд┐ рдмрдирд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред

рдпрд╕ рд░рд┐рдкреЛрдЬрд┐рдЯрд░реАрдорд╛ рдердк рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ docker-endpoint.sh рдЫ, рдЬреБрди рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рд╕реБрд░реБрд╡рд╛рдд рд░ рдПрдкреНрд▓рд┐рдХреЗрд╕рди рд▓рдиреНрдЪрдХреЛ рдердк рдкреНрд░рд╢реЛрдзрдирдХреЛ рд▓рд╛рдЧрд┐ рдЬрд┐рдореНрдореЗрд╡рд╛рд░ рдЫред

рд╕рд╛рдереИ рдпрд╕ рдЙрджрд╛рд╣рд░рдгрдорд╛ рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирдХреЛ рд╕рдореНрднрд╛рд╡рдирд╛ рдЫред рдПрдХрд▓ рдХрдиреНрдЯреЗрдирд░ рдЪрд▓рд╛рдЙрдБрджрд╛ рд╡рд╛ рдбрдХрд░-рдХрдореНрдкреЛрдЬ рдорд╛рд░реНрдлрдд рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реЗрд░, рд╣рд╛рдореА рднрдиреНрди рд╕рдХреНрдЫреМрдВ рдХрд┐ рд╣рд╛рдореАрд▓реЗ MySQL рдорд╛ рд░реВрдЯрдХреЛ рд▓рд╛рдЧрд┐ рдбрдХрд░рдХреЛ рд▓рд╛рдЧрд┐ рдЦрд╛рд▓реА рдкрд╛рд╕рд╡рд░реНрдб рд╕реЗрдЯ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ рд╡рд╛ рд╣рд╛рдореА рдЬреЗ рдЪрд╛рд╣рдиреНрдЫреМрдВред

рддреНрдпрд╣рд╛рдБ рдЕрдирд┐рдпрдорд┐рдд рдкрд╛рд╕рд╡рд░реНрдб рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗ рд╡рд┐рдХрд▓реНрдк рдЫред рд╣рд╛рдореА рднрдиреНрдЫреМрдВ рдХрд┐ рд╣рд╛рдореАрд▓рд╛рдИ рдПрдХ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдЪрд╛рд╣рд┐рдиреНрдЫ, рд╣рд╛рдореАрд▓реЗ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рдХреЛ рд▓рд╛рдЧрд┐ рдкрд╛рд╕рд╡рд░реНрдб рд╕реЗрдЯ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ, рд░ рд╣рд╛рдореАрд▓реЗ рдбрд╛рдЯрд╛рдмреЗрд╕ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред

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

Docker рд░ Gitlab CI рд╕рдВрдЧ рд╡рд┐рдХрд╛рд╕ рд░ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛

рдпреЛ MySQL рдХреЛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрд╕реНрдХрд░рдг github.com рдорд╛ рдХрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ рднрдиреНрдиреЗ рдЙрджрд╛рд╣рд░рдг рд╣реЛред рддрдкрд╛рдИрдВ Dockerfile рдЦреЛрд▓реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рд░ рддреНрдпрд╣рд╛рдБ рд╕реНрдерд╛рдкрдирд╛ рдХрд╕рд░реА рд╣реБрдиреНрдЫ рд╣реЗрд░реНрдиреБрд╣реЛрд╕реНред

docker-endpoint.sh рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдмрд┐рдиреНрджреБрдХреЛ рд▓рд╛рдЧрд┐ рдЬрд┐рдореНрдореЗрд╡рд╛рд░ред рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рдкреНрд░рд╛рд░рдореНрднрд┐рдХрддрд╛рдХреЛ рд╕рдордпрдорд╛, рдХреЗрд╣реА рддрдпрд╛рд░реА рдХрд╛рд░реНрдпрд╣рд░реВ рдЖрд╡рд╢реНрдпрдХ рд╣реБрдиреНрдЫрдиреН рд░ рдпреА рд╕рдмреИ рдХрд╛рд░реНрдпрд╣рд░реВ рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рд▓рд┐рдкрд┐рдорд╛ рд╕рдорд╛рд╡реЗрд╢ рд╣реБрдиреНрдЫрдиреНред

Docker рд░ Gitlab CI рд╕рдВрдЧ рд╡рд┐рдХрд╛рд╕ рд░ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛

рджреЛрд╕реНрд░реЛ рднрд╛рдЧрдорд╛ рдЬрд╛рдФрдВред

рд╣рд╛рдореАрд▓реЗ рд╕реНрд░реЛрдд рдХреЛрдбрд╣рд░реВ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрди gitlab рдорд╛ рд╕реНрд╡рд┐рдЪ рдЧрд░реНрдпреМрдВред рдпреЛ рдПрдХрджрдо рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдкреНрд░рдгрд╛рд▓реА рд╣реЛ рдЬрд╕рдорд╛ рднрд┐рдЬреБрдЕрд▓ рдЗрдиреНрдЯрд░рдлреЗрд╕ рдЫред

Gitlab рдХрдореНрдкреЛрдиреЗрдиреНрдЯ рдордзреНрдпреЗ рдПрдХ Gitlab CI рд╣реЛред рдпрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдЖрджреЗрд╢рд╣рд░реВрдХреЛ рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╡рд░реНрдгрди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ рдЬреБрди рдкрдЫрд┐ рдХреЛрдб рд╡рд┐рддрд░рдг рдкреНрд░рдгрд╛рд▓реА рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЧрд░реНрди рд╡рд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдЙрди рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреЗрдЫред

Gitlab CI 2 рдорд╛ рд░рд┐рдкреЛрд░реНрдЯ https://goo.gl/uohKjI - рд░реБрдмреА рд░реВрд╕ рдХреНрд▓рдмрдХреЛ рд░рд┐рдкреЛрд░реНрдЯ рдзреЗрд░реИ рд╡рд┐рд╕реНрддреГрдд рдЫ рд░ рддрдкрд╛рдЗрдБрдХреЛ рд▓рд╛рдЧрд┐ рдЪрд╛рд╕реЛрдХреЛ рд╣реБрди рд╕рдХреНрдЫред

Docker рд░ Gitlab CI рд╕рдВрдЧ рд╡рд┐рдХрд╛рд╕ рд░ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛

рдЕрдм рд╣рд╛рдореА Gitlab CI рд╕рдХреНрд░рд┐рдп рдЧрд░реНрди рдХреЗ рдЖрд╡рд╢реНрдпрдХ рдЫ рд╣реЗрд░реНрдиреЗрдЫреМрдВред Gitlab CI рд╕реБрд░реБ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рд╣рд╛рдореАрд▓реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛рдХреЛ рд░реВрдЯрдорд╛ .gitlab-ci.yml рдлрд╛рдЗрд▓ рд░рд╛рдЦреНрдиреБ рдкрд░реНрдЫред

рдпрд╣рд╛рдБ рд╣рд╛рдореА рд╡рд░реНрдгрди рдЧрд░реНрдЫреМрдВ рдХрд┐ рд╣рд╛рдореА рдкрд░реАрдХреНрд╖рдг, рддреИрдирд╛рддреА рдЬрд╕реНрддрд╛ рд░рд╛рдЬреНрдпрд╣рд░реВрдХреЛ рдЕрдиреБрдХреНрд░рдо рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдЫреМрдВред

рд╣рд╛рдореА рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрдЫреМрдВ рдЬрд╕рд▓реЗ рдкреНрд░рддреНрдпрдХреНрд╖ рд░реВрдкрдорд╛ рд╣рд╛рдореНрд░реЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрдХреЛ рдбрдХрд░-рдХрдореНрдкреЛрдЬ рдирд┐рд░реНрдорд╛рдгрд▓рд╛рдИ рдХрд▓ рдЧрд░реНрдЫред рдпреЛ рдмреНрдпрд╛рдХрдЗрдиреНрдбрдХреЛ рдЙрджрд╛рд╣рд░рдг рдорд╛рддреНрд░ рд╣реЛред

рдЕрд░реНрдХреЛ рд╣рд╛рдореА рднрдиреНрдЫреМрдВ рдХрд┐ рдбрд╛рдЯрд╛рдмреЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рд░ рдкрд░реАрдХреНрд╖рдгрд╣рд░реВ рдЪрд▓рд╛рдЙрди рдорд╛рдЗрдЧреНрд░реЗрд╕рдирд╣рд░реВ рдЪрд▓рд╛рдЙрди рдЖрд╡рд╢реНрдпрдХ рдЫред

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

рдбрд┐рдкреНрд▓реЛрдЗрдореЗрдиреНрдЯ рд╕реНрдЯреЗрдЬ рд╣рд╛рд▓ рд╕реНрдЯреЗрдЬрд┐рдЩрдХреЛ рд▓рд╛рдЧрд┐ рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ рдЫред рд╣рд╛рдореАрд▓реЗ рдиреЛ-рдбрд╛рдЙрдирдЯрд╛рдЗрдо рд░рд┐рд╕реНрдЯрд╛рд░реНрдЯрд▓рд╛рдИ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЧрд░реЗрдХрд╛ рдЫреИрдиреМрдВред

рд╣рд╛рдореА рдЬрдмрд░рдЬрд╕реНрддреА рд╕рдмреИ рдХрдиреНрдЯреЗрдирд░рд╣рд░реВ рдирд┐рднрд╛рдЙрдБрдЫреМрдВ, рд░ рддреНрдпрд╕рдкрдЫрд┐ рд╣рд╛рдореА рдкрд░реАрдХреНрд╖рдгрдХреЛ рдХреНрд░рдордорд╛ рдкрд╣рд┐рд▓реЛ рдЪрд░рдгрдорд╛ рд╕рдЩреНрдХрд▓рди рдЧрд░рд┐рдПрдХрд╛ рд╕рдмреИ рдХрдиреНрдЯреЗрдирд░рд╣рд░реВ рдлреЗрд░рд┐ рдЙрдард╛рдЙрдБрдЫреМрдВред

рд╣рд╛рд▓рдХреЛ рдЪрд░ рд╡рд╛рддрд╛рд╡рд░рдгрдХреЛ рд▓рд╛рдЧрд┐ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рд▓реЗрдЦреЗрдХрд╛ рдбрд╛рдЯрд╛рдмреЗрд╕ рдорд╛рдЗрдЧреНрд░реЗрд╕рдирд╣рд░реВ рдЪрд▓рд╛рдЙрдиреБрд╣реЛрд╕реНред

рддреНрдпрд╣рд╛рдБ рдПрдХ рдиреЛрдЯ рдЫ рдХрд┐ рдпреЛ рдХреЗрд╡рд▓ рдорд╛рд╕реНрдЯрд░ рд╢рд╛рдЦрд╛ рдорд╛ рд▓рд╛рдЧреВ рдЧрд░рд┐рдиреБ рдкрд░реНрдЫред

рдЕрдиреНрдп рд╢рд╛рдЦрд╛рд╣рд░реВ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрджрд╛ рдХрд╛рдо рдЧрд░реНрджреИрдиред

рд╢рд╛рдЦрд╛рд╣рд░реВрдорд╛ рд░реЛрд▓рдЖрдЙрдЯрд╣рд░реВ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЧрд░реНрди рд╕рдореНрднрд╡ рдЫред

Docker рд░ Gitlab CI рд╕рдВрдЧ рд╡рд┐рдХрд╛рд╕ рд░ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛

рдпрд╕рд▓рд╛рдИ рдердк рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЧрд░реНрди, рд╣рд╛рдореАрд▓реЗ Gitlab рдзрд╛рд╡рдХ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред

рдпреЛ рдЙрдкрдпреЛрдЧрд┐рддрд╛ Golang рдорд╛ рд▓реЗрдЦрд┐рдПрдХреЛ рдЫред рдпреЛ рдПрдХрд▓ рдлрд╛рдЗрд▓ рд╣реЛ рдЬреБрди рдЧреЛрд▓рд╛рдЩреНрдЧ рд╕рдВрд╕рд╛рд░рдорд╛ рд╕рд╛рдорд╛рдиреНрдп рдЫ, рдЬрд╕рд▓рд╛рдИ рдХреБрдиреИ рдирд┐рд░реНрднрд░рддрд╛ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджреИрдиред

рд╕реНрдЯрд╛рд░реНрдЯрдЕрдкрдорд╛ рд╣рд╛рдореА Gitlab рдзрд╛рд╡рдХ рджрд░реНрддрд╛ рдЧрд░реНрдЫреМрдВред

рд╣рд╛рдореАрд▓реЗ Gitlab рд╡реЗрдм рдЗрдиреНрдЯрд░рдлреЗрд╕рдорд╛ рдХреБрдЮреНрдЬреА рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдЫреМрдВред

рддреНрдпрд╕рдкрдЫрд┐ рд╣рд╛рдореА рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрдирдорд╛ рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рдЖрджреЗрд╢рд▓рд╛рдИ рдХрд▓ рдЧрд░реНрдЫреМрдВред

рд╕рдВрд╡рд╛рдж рдореЛрдбрдорд╛ Gitlab рдзрд╛рд╡рдХ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрджреИ (Shell, Docker, VirtualBox, SSH)

Gitlab рд░рдирд░рдХреЛ рдХреЛрдб .gitlab-ci.yml рд╕реЗрдЯрд┐рдЩрдХреЛ рдЖрдзрд╛рд░рдорд╛ рдкреНрд░рддреНрдпреЗрдХ рдХрдорд┐рдЯрдорд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реБрдиреЗрдЫред

Docker рд░ Gitlab CI рд╕рдВрдЧ рд╡рд┐рдХрд╛рд╕ рд░ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛

рдпреЛ рд╡реЗрдм рдЗрдиреНрдЯрд░рдлреЗрд╕рдорд╛ Gitlab рдорд╛ рдХрд╕рд░реА рджреЗрдЦрд┐рдиреНрдЫред GItlab CI рдЬрдбрд╛рди рдЧрд░реЗрдкрдЫрд┐, рд╣рд╛рдореАрд╕рдБрдЧ рдЭрдгреНрдбрд╛ рдЫ рдЬрд╕рд▓реЗ рджреЗрдЦрд╛рдЙрдБрдЫ рдХрд┐ рдирд┐рд░реНрдорд╛рдг рдХреБрди рдЕрд╡рд╕реНрдерд╛рдорд╛ рдЫред

рд╣рд╛рдореА рджреЗрдЦреНрдЫреМрдВ рдХрд┐ 4 рдорд┐рдиреЗрдЯ рдкрд╣рд┐рд▓реЗ рдПрдХ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдмрдирд╛рдЗрдПрдХреЛ рдерд┐рдпреЛ рдЬрд╕рд▓реЗ рд╕рдмреИ рдкрд░реАрдХреНрд╖рдгрд╣рд░реВ рдкрд╛рд╕ рдЧрд░реНрдпреЛ рд░ рдХреБрдиреИ рд╕рдорд╕реНрдпрд╛ рдЙрддреНрдкрдиреНрди рдЧрд░реНрджреИрдиред

Docker рд░ Gitlab CI рд╕рдВрдЧ рд╡рд┐рдХрд╛рд╕ рд░ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛

рд╣рд╛рдореА рдердк рд╡рд┐рд╡рд░рдгрдорд╛ рдирд┐рд░реНрдорд╛рдгрд╣рд░реВ рд╣реЗрд░реНрди рд╕рдХреНрдЫреМрдВред рдпрд╣рд╛рдБ рд╣рд╛рдореА рджреЗрдЦреНрдЫреМрдВ рдХрд┐ рджреБрдИ рд░рд╛рдЬреНрдп рдкрд╣рд┐рд▓реЗ рдиреИ рдкрд╛рд░рд┐рдд рднрдЗрд╕рдХреЗрдХреЛ рдЫред рд╕реНрдЯреЗрдЬрд┐рдЩрдорд╛ рдкрд░реАрдХреНрд╖рдг рд╕реНрдерд┐рддрд┐ рд░ рддреИрдирд╛рддреА рд╕реНрдерд┐рддрд┐ред

рдпрджрд┐ рд╣рд╛рдореАрд▓реЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд┐рд░реНрдорд╛рдгрдорд╛ рдХреНрд▓рд┐рдХ рдЧрд░реНрдпреМрдВ рднрдиреЗ, .gitlab-ci.yml рдЕрдиреБрд╕рд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдорд╛ рд╕реБрд░реБ рдЧрд░рд┐рдПрдХрд╛ рдЖрджреЗрд╢рд╣рд░реВрдХреЛ рдХрдиреНрд╕реЛрд▓ рдЖрдЙрдЯрдкреБрдЯ рд╣реБрдиреЗрдЫред

Docker рд░ Gitlab CI рд╕рдВрдЧ рд╡рд┐рдХрд╛рд╕ рд░ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛

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

Docker рд░ Gitlab CI рд╕рдВрдЧ рд╡рд┐рдХрд╛рд╕ рд░ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛

рд╣рд╛рдореАрд▓реЗ рдбрдХрд░ рд▓рд╛рдЧреВ рдЧрд░реНрджрд╛ рд╣рд╛рдореАрд▓реЗ рд╕реНрдЯреЗрдЬрд┐рдЩрдорд╛ рдХреЗ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрдпреМрдВ? рд╣рд╛рдореНрд░реЛ рдкреНрд░рдгрд╛рд▓реАрдорд╛ рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВ рд╣реБрдиреНрдЫрдиреН рд░ рд╣рд╛рдореАрд▓реЗ рд░рд┐рдкреЛрдЬрд┐рдЯрд░реАрдорд╛ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░рд┐рдПрдХрд╛ рдХреЗрд╣реА рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВ рдорд╛рддреНрд░ рдкреБрди: рд╕реБрд░реБ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ, рд░ рд╕рдореНрдкреВрд░реНрдг рдкреНрд░рдгрд╛рд▓реАрд▓рд╛рдИ рд╣реЛрдЗрдиред

рдпреЛ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рд╣рд╛рдореАрд▓реЗ рд╕рдмреИ рдХреБрд░рд╛рд▓рд╛рдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдлреЛрд▓реНрдбрд░рд╣рд░реВрдорд╛ рдЫреБрдЯреНрдпрд╛рдЙрдиреБрдкрд░реНрдЫред

рд╣рд╛рдореАрд▓реЗ рдпреЛ рдЧрд░реЗрдкрдЫрд┐, рд╣рд╛рдореАрд╕рдБрдЧ рд╕рдорд╕реНрдпрд╛ рдерд┐рдпреЛ рдХрд┐ рдбрдХрд░-рдХрдореНрдкреЛрдЬрд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рдлреЛрд▓реНрдбрд░рдХреЛ рд▓рд╛рдЧрд┐ рдЖрдлреНрдиреИ рдиреЗрдЯрд╡рд░реНрдХ рд╕реНрдкреЗрд╕ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрдЫ рд░ рдпрд╕рдХреЛ рдЫрд┐рдореЗрдХреАрдХрд╛ рдШрдЯрдХрд╣рд░реВ рджреЗрдЦреНрджреИрдиред

рд╡рд░рдкрд░ рдЬрд╛рдирдХреЛ рд▓рд╛рдЧрд┐, рд╣рд╛рдореАрд▓реЗ рдбрдХрд░рдорд╛ рдореНрдпрд╛рдиреБрдЕрд▓ рд░реВрдкрдорд╛ рдиреЗрдЯрд╡рд░реНрдХ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдпреМрдВред рдбрдХрд░-рдХрдореНрдкреЛрдЬрдорд╛ рддрдкрд╛рдИрд▓реЗ рдпреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдХреЛ рд▓рд╛рдЧрд┐ рдпрд╕реНрддреЛ рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрдкрд░реНрдЫ рднрдиреЗрд░ рд▓реЗрдЦрд┐рдПрдХреЛ рдерд┐рдпреЛред

рдпрд╕рд░реА, рдпреЛ рдЬрд╛рд▓рдмрд╛рдЯ рд╕реБрд░реБ рд╣реБрдиреЗ рдкреНрд░рддреНрдпреЗрдХ рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд▓реЗ рдкреНрд░рдгрд╛рд▓реАрдХреЛ рдЕрдиреНрдп рднрд╛рдЧрд╣рд░реВрдорд╛ рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВ рджреЗрдЦреНрдЫред

рдЕрд░реНрдХреЛ рд╕рдорд╕реНрдпрд╛ рдзреЗрд░реИ рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВ рдмреАрдЪ рд╕реНрдЯреЗрдЬрд┐рдЩ рд╡рд┐рднрд╛рдЬрди рд╣реЛред

рдпреЛ рд╕рдмреИ рд╕реБрдиреНрджрд░ рджреЗрдЦрд┐рди рд░ рдЙрддреНрдкрд╛рджрдирдХреЛ рд▓рд╛рдЧрд┐ рд╕рдХреЗрд╕рдореНрдо рдирдЬрд┐рдХ рд╣реБрдирдХреЛ рд▓рд╛рдЧрд┐, рдпреЛ рдкреЛрд░реНрдЯ 80 рд╡рд╛ 443 рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд░рд╛рдореНрд░реЛ рдЫ, рдЬреБрди WEB рдорд╛ рд╕рдмреИ рдард╛рдЙрдБрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред

Docker рд░ Gitlab CI рд╕рдВрдЧ рд╡рд┐рдХрд╛рд╕ рд░ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛

рд╣рд╛рдореАрд▓реЗ рдпрд╕рд▓рд╛рдИ рдХрд╕рд░реА рд╕рдорд╛рдзрд╛рди рдЧрд░реНрдпреМрдВ? рд╣рд╛рдореАрд▓реЗ рд╕рдмреИ рдареВрд▓рд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВрдорд╛ рдПрдХ Gitlab рдзрд╛рд╡рдХ рддреЛрдХреНрдпреМрдВред

Gitlab рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдзреЗрд░реИ рд╡рд┐рддрд░рд┐рдд Gitlab рдзрд╛рд╡рдХрд╣рд░реВ рд╕реБрд░реВ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ, рдЬрд╕рд▓реЗ рд╕рдмреИ рдХрд╛рд░реНрдпрд╣рд░реВ рдПрдХ рдПрдХ рдЧрд░реА рдЕрд░рд╛рдЬрдХ рдХреНрд░рдордорд╛ рд▓рд┐рдиреЗрдЫ рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдЪрд▓рд╛рдЙрдиреЗрдЫред

рдШрд░рдХреЛ рд╕рдорд╕реНрдпрд╛рдмрд╛рдЯ рдмрдЪреНрдирдХреЛ рд▓рд╛рдЧрд┐, рд╣рд╛рдореАрд▓реЗ рд╣рд╛рдореНрд░рд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВрдХреЛ рд╕рдореВрд╣рд▓рд╛рдИ рдПрдХ рдЧрд┐рдЯрд▓реНрдпрд╛рдм рд░рдирд░рдорд╛ рд╕реАрдорд┐рдд рдЧрд░реНрдпреМрдВ, рдЬрд╕рд▓реЗ рд╣рд╛рдореНрд░реЛ рднреЛрд▓реНрдпреБрдорд╣рд░реВ рдмрд┐рдирд╛ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рд╛рдордирд╛ рдЧрд░реНрджрдЫред

рд╣рд╛рдореАрд▓реЗ nginx-proxy рд▓рд╛рдИ рдЫреБрдЯреНрдЯреИ рд▓рдиреНрдЪ рд╕реНрдХреНрд░рд┐рдкреНрдЯрдорд╛ рд╕рд╛рд░реНрдпреМрдВ рд░ рдпрд╕рдорд╛ рд╕рдмреИ рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВрдХреЛ рдЧреНрд░рд┐рдбрд╣рд░реВ рд▓реЗрдЦреНрдпреМрдВред

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

рд╣рд╛рдореНрд░рд╛ рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдкреЛрд░реНрдЯ 80 рдорд╛ рдбреЛрдореЗрди рдорд╛рд░реНрдлрдд рдЖрдЙрдБрдЫрдиреН рд░ рдпреЛ рдбреЛрдореЗрди рд╕реЗрд╡рд╛ рдЧрд░реНрдиреЗ рдХрдиреНрдЯреЗрдирд░рд╣рд░реВрдХреЛ рд╕рдореВрд╣рдорд╛ рд╕рдорд╛рдзрд╛рди рдЧрд░рд┐рдиреНрдЫред

Docker рд░ Gitlab CI рд╕рдВрдЧ рд╡рд┐рдХрд╛рд╕ рд░ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛

рдЕрдиреНрдп рд╕рдорд╕реНрдпрд╛ рдХреЗ рдХреЗ рдерд┐рдП ? рдпреЛ рд╕рдмреИ рдХрдиреНрдЯреЗрдирд░рд╣рд░реВ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛ рд░реВрдЯрдХреЛ рд░реВрдкрдорд╛ рдЪрд▓реНрдиреЗ рдХреБрд░рд╛ рд╣реЛред рдпреЛ рдкреНрд░рдгрд╛рд▓реАрдХреЛ рдореВрд▓ рдЕрд╕рдорд╛рди рд░реВрдЯ рд╣реЛрд╕реНрдЯ рд╣реЛред

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

рдпрджрд┐ рдПрдХ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд▓реЗ рдХрдиреНрдЯреЗрдирд░рдорд╛ рдкреНрд░рд╡реЗрд╢ рдЧрд░реНрдпреЛ рд░ рддреНрдпрд╣рд╛рдБ рдХреЗрд╣реА рдЖрджреЗрд╢рд╣рд░реВ рдмрдирд╛рдпреЛ рдЬрд╕рд▓реЗ рдлрд╛рдЗрд▓рд╣рд░реВ рдЙрддреНрдкрдиреНрди рдЧрд░реНрдпреЛ, рддреНрдпрд╕рдкрдЫрд┐ рдХрдиреНрдЯреЗрдирд░ рдЫреЛрдбреНрдпреЛ, рддреНрдпрд╕рдкрдЫрд┐ рдЙрд╕рдХреЛ рдХрд╛рд░реНрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдорд╛ рдЙрд╕рд╕рдБрдЧ рдПрдЙрдЯрд╛ рдлрд╛рдЗрд▓ рдЫ рдЬрд╕рдорд╛ рдЙрд╕рдХреЛ рдкрд╣реБрдБрдЪ рдЫреИрдиред

рдпрд╕рд▓рд╛рдИ рдХрд╕рд░реА рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ? рддрдкрд╛рдИрдВ рдХрдиреНрдЯреЗрдирд░рдорд╛ рд╣реБрдиреЗ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВ рдердкреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред

рд╣рд╛рдореАрд▓реЗ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдердкреНрджрд╛ рдХреЗ рд╕рдорд╕реНрдпрд╛ рдЙрддреНрдкрдиреНрди рднрдпреЛ?

рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрд╛, рд╕рдореВрд╣ ID (UID) рд░ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ ID (GID) рдкреНрд░рд╛рдп: рдореЗрд▓ рдЦрд╛рдБрджреИрдиред

рдХрдиреНрдЯреЗрдирд░рдорд╛ рдпреЛ рд╕рдорд╕реНрдпрд╛ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди рд╣рд╛рдореА ID 1000 рднрдПрдХрд╛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреМрдВред

рд╣рд╛рдореНрд░реЛ рдЕрд╡рд╕реНрдерд╛рдорд╛, рдпреЛ рддрдереНрдпрд╕рдБрдЧ рдореЗрд▓ рдЦрд╛рдиреНрдЫ рдХрд┐ рд▓рдЧрднрдЧ рд╕рдмреИ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ Ubuntu OS рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫрдиреНред рд░ Ubuntu OS рдорд╛ рдкрд╣рд┐рд▓реЛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╕рдБрдЧ ID 1000 рдЫред

Docker рд░ Gitlab CI рд╕рдВрдЧ рд╡рд┐рдХрд╛рд╕ рд░ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛

рдХреЗ рд╣рд╛рдореАрд╕рдБрдЧ рдпреЛрдЬрдирд╛ рдЫ?

рдбрдХрд░ рдХрд╛рдЧрдЬрд╛рдд рдкреБрди: рдкрдвреНрдиреБрд╣реЛрд╕реНред рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдХреНрд░рд┐рдп рд░реВрдкрдорд╛ рд╡рд┐рдХрд╛рд╕ рднрдЗрд░рд╣реЗрдХреЛ рдЫ, рдХрд╛рдЧрдЬрд╛рдд рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдБрджреИрдЫред рджреБрдИтАУрддреАрди рдорд╣рд┐рдирд╛рдЕрдШрд┐ рдкреНрд░рд╛рдкреНрдд рддрдереНрдпрд╛рдЩреНрдХ рд╡рд┐рд╕реНрддрд╛рд░реИ рдкреБрд░рд╛рдиреЛ рд╣реБрдБрджреИ рдЧрдЗрд░рд╣реЗрдХреЛ рдЫ ред

рд╣рд╛рдореАрд▓реЗ рд╕рдорд╛рдзрд╛рди рдЧрд░реЗрдХрд╛ рдХреЗрд╣реА рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рдорд╛рдирдХ рдорд╛рдзреНрдпрдордмрд╛рдЯ рдкрд╣рд┐рд▓реЗ рдиреИ рд╕рдорд╛рдзрд╛рди рднрдЗрд╕рдХреЗрдХрд╛ рд╣реБрди рд╕рдХреНрдЫрдиреНред

рдо рд╡рд╛рд╕реНрддрд╡рдореИ рдЕрдЧрд╛рдбрд┐ рдмрдвреНрди рдЪрд╛рд╣рдиреНрдЫреБ рд░ рд╕рд┐рдзреИ рдЕрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрд╢рдирдорд╛ рдЬрд╛рди рдЪрд╛рд╣рдиреНрдЫреБред

рдПрдЙрдЯрд╛ рдЙрджрд╛рд╣рд░рдг рдбрдХрд░рдХреЛ рдмрд┐рд▓реНрдЯ-рдЗрди рдореЗрдХрд╛рдирд┐рдЬрдо рд╣реЛ рдЬрд╕рд▓рд╛рдИ рдбрдХрд░ рд╕реНрд╡рд╛рд░реНрдо рднрдирд┐рдиреНрдЫ, рдЬреБрди рдмрдХреНрд╕рдмрд╛рдЯ рдмрд╛рд╣рд┐рд░ рдЖрдЙрдБрдЫред рдо рдбрдХрд░ рд╕реНрд╡рд╛рд░реНрдо рдЯреЗрдХреНрдиреЛрд▓реЛрдЬреАрдорд╛ рдЖрдзрд╛рд░рд┐рдд рдЙрддреНрдкрд╛рджрдирдорд╛ рдХреЗрд╣рд┐ рд╕реБрд░реВ рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдЫреБред

рд╕реНрдкреНрдпрд╛рдирд┐рдЩ рдХрдиреНрдЯреЗрдирд░рд╣рд░реВрд▓реЗ рд▓рдЧрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрди рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рдЙрдБрдЫред рдЕрдм рд▓рдЧрд╣рд░реВ рдЕрд▓рдЧ рдЫрдиреНред рддрд┐рдиреАрд╣рд░реВ рдХрдиреНрдЯреЗрдирд░рд╣рд░реВрдорд╛ рдЫрд░рд┐рдПрдХрд╛ рдЫрдиреНред рдХрд╛рд░реНрдпрд╣рд░реВ рдордзреНрдпреЗ рдПрдЙрдЯрд╛ рд╡реЗрдм рдЗрдиреНрдЯрд░рдлреЗрд╕ рдорд╛рд░реНрдлрдд рд▓рдЧрд╣рд░реВрдорд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдкрд╣реБрдБрдЪ рдмрдирд╛рдЙрдиреБ рд╣реЛред

Docker рд░ Gitlab CI рд╕рдВрдЧ рд╡рд┐рдХрд╛рд╕ рд░ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди