рджреЗрд░ рд╕реЗ рдХрднреА рдмреЗрд╣рддрд░ред рдпрд╛ рдХреИрд╕реЗ рд╣рдордиреЗ рд▓рдЧрднрдЧ рдПрдХ рдЧрдВрднреАрд░ рдЧрд▓рддреА рдХреА, рдЖрд╡реЗрджрди рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рд╕рд╛рдзрд╛рд░рдг рдбреЙрдХрдлрд╛рдЗрд▓реНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд┐рдпрд╛ред
рд╣рдо
werf , рдПрдХ GitOps рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ рдЬреЛ рдХрд┐ рдХрд┐рд╕реА рднреА CI / CD рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдПрдХреАрдХреГрдд рд╣реЛрддреА рд╣реИ рдФрд░ рдЖрдкрдХреЛ рд╕рдВрдкреВрд░реНрдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЬреАрд╡рди рдЪрдХреНрд░ рдкрд░ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЖрдк рдирд┐рдореНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
- рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдФрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░реЗрдВ
- рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рддреИрдирд╛рдд рдХрд░реЗрдВ
- рд╡рд┐рд╢реЗрд╖ рдиреАрддрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкреНрд░рдпреБрдХреНрдд рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрдВред
рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рджрд░реНрд╢рди рдПрдХ рд╕реНрддрд░реАрдп рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рд╣реИ рдЬреЛ DevOps рдЗрдВрдЬреАрдирд┐рдпрд░реЛрдВ рдХреЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдкрд░ рдирд┐рдпрдВрддреНрд░рдг рджреЗрддрд╛ рд╣реИред рдЬрд╣рд╛рдВ рд╕рдВрднрд╡ рд╣реЛ, рдореМрдЬреВрджрд╛ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ (рдЬреИрд╕реЗ рдХрд┐ рд╣реЗрд▓реНрдо рдФрд░ рдбреЛрдХрд░) рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рдм рдХреБрдЫ рдмрдирд╛ рдФрд░ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВред
рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб: рдпреЛрд░ рдЗрдореЗрдЬ рдХрд▓реЗрдХреНрдЯрд░
рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рд╡рд╕реЗрдл рдореЗрдВ рдЗрдореЗрдЬ рдХрд▓реЗрдХреНрдЯрд░ рдХреЗ рд╕рд╛рде рд╣реБрдЖ рдерд╛: рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рд╛рдорд╛рдиреНрдп рдбреЙрдХрд░реАрдлрд╛рдЗрд▓ рдирд╣реАрдВ рдерд╛ред рдпрджрд┐ рдЖрдк рдЬрд▓реНрджреА рд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдореЗрдВ рдЙрддрд░ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЦреБрдж рдХреЗ рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдкреНрд░рдХрдЯ рд╣реБрдИ (рддрдм рднреА
рдбреИрдк рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ )ред
рдбреЙрдХрд░ рдЫрд╡рд┐рдпреЛрдВ рдореЗрдВ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдХрд░рдг рдмрдирд╛рдирд╛, рд╣рдордиреЗ рдЬрд▓реНрджреА рд╣реА рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдбреЙрдХрдлрд╛рдЗрд▓ рдХреБрдЫ рдмрд╣реБрдд рд╣реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рдерд╛:
- рдирд┐рдореНрди рдорд╛рдирдХ рдпреЛрдЬрдирд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЫреЛрдЯреЗ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛:
- рд╕рд┐рд╕реНрдЯрдо-рд╡рд╛рдЗрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдирд┐рд░реНрднрд░рддрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
- рдЖрд╡реЗрджрди рдирд┐рд░реНрднрд░рддрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдмрдВрдбрд▓ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ,
- рд╕рдВрдкрддреНрддрд┐ рдЗрдХрдЯреНрдард╛ рдХрд░реЗрдВ
- рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд, рдЫрд╡рд┐ рдореЗрдВ рдХреЛрдб рдХреЛ рдЬрд▓реНрджреА рдФрд░ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВред
- рдЬрдм рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рд╡рд░реНрддрди рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдмрд┐рд▓реНрдбрд░ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдкреИрдЪ рд▓рд╛рдЧреВ рдХрд░рдХреЗ рдПрдХ рдирдИ рдкрд░рдд рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ред
- рдпрджрд┐ рдХреБрдЫ рдлрд╛рдЗрд▓реЗрдВ рдмрджрд▓ рдЧрдИ рд╣реИрдВ, рддреЛ рдЙрдЪрд┐рдд рдирд┐рд░реНрднрд░ рдЪрд░рдг рдХрд╛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред
рдЖрдЬ рд╣рдорд╛рд░реЗ рдХрд▓реЗрдХреНрдЯрд░ рдореЗрдВ рдХрдИ рдЕрдиреНрдп рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╢реБрд░реБрдЖрддреА рдЗрдЪреНрдЫрд╛рдПрдВ рдФрд░ рдЖрдЧреНрд░рд╣ рдереЗред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рджреЛ рдмрд╛рд░ рд╕реЛрдЪрдиреЗ рдХреЗ рдмрд┐рдирд╛, рд╣рдордиреЗ рдЦреБрдж рдХреЛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХреА рдЧрдИ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреЗ рд╕рд╛рде рд╕рд╢рд╕реНрддреНрд░ рдХрд┐рдпрд╛
(рдиреАрдЪреЗ рджреЗрдЦреЗрдВ) рдФрд░ рд╕рдбрд╝рдХ рдкрд░ рдорд╛рд░рд╛ -
рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдбреАрдПрд╕рдПрд▓ рдХреЛ рд▓рд╛рдЧреВ
рдХрд░реЗрдВ ! рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЕрдиреБрд░реВрдк, рдЗрд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдЪрд░рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рдФрд░ рдлрд╛рдЗрд▓реЛрдВ рдкрд░ рдЗрди рдЪрд░рдгреЛрдВ рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рдирд╛ рдерд╛ред рдФрд░ рдЕрдкрдиреЗ
рд╕реНрд╡рдпрдВ рдХреЗ рдХрд▓реЗрдХреНрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдкреВрд░рдХ рд╣реИ, рдЬрд┐рд╕рдиреЗ рдбреАрдПрд╕рдПрд▓ рдХреЛ рдЕрдВрддрд┐рдо рд▓рдХреНрд╖реНрдп рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ - рдПрдХ рдЗрдХрдЯреНрдареА рдЫрд╡рд┐ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдбреАрдПрд╕рдПрд▓ рд░реВрдмреА рдореЗрдВ рдерд╛, рдФрд░ рдЬреИрд╕реЗ рд╣реА рд╣рдордиреЗ
рдЧреЛрд▓рдВрдЧ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ , рд╣рдорд╛рд░реЗ рдХрд▓реЗрдХреНрдЯрд░ рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди
рдХреЛ YAML рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд▓рдЧрд╛ред
рд░реВрдмреА рдкрд░ рдбреИрдк рдХреЗ рд▓рд┐рдП рдкреБрд░рд╛рдирд╛ рд╡рд┐рдиреНрдпрд╛рд╕
YAML рдкрд░ werf рдХреЗ рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди рд╡рд┐рдиреНрдпрд╛рд╕рдХрд▓реЗрдХреНрдЯрд░ рдХрд╛ рддрдВрддреНрд░ рднреА рд╕рдордп рдХреЗ рд╕рд╛рде рдмрджрд▓ рдЧрдпрд╛ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдордиреЗ рдЙрдбрд╝рд╛рди рднрд░рдиреЗ рдкрд░ рд╣рдорд╛рд░реЗ рд╡рд┐рдиреНрдпрд╛рд╕ рд╕реЗ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдЕрд╕реНрдерд╛рдпреА рдбреЙрдХрд░реАрдлрд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛, рдФрд░ рдлрд┐рд░ рдЕрд╕реНрдерд╛рдпреА рдХрдВрдЯреЗрдирд░реЛрдВ рдореЗрдВ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдирд┐рд░реНрджреЗрд╢ рдЪрд▓рд╛рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдФрд░ рдХрдорд┐рдЯ рдХрд┐рдпрд╛ред
рдирд╛рдпрдм : рдлрд┐рд▓рд╣рд╛рд▓, рд╣рдорд╛рд░рд╛ рдХрд▓реЗрдХреНрдЯрд░, рдЬреЛ рдЕрдкрдиреЗ рд╡рд┐рдиреНрдпрд╛рд╕ (YAML рдореЗрдВ) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЬрд┐рд╕реЗ рд╕реНрдЯреЗрдкрд▓-рдХрд▓реЗрдХреНрдЯрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдХрд╛рдлреА рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЙрдкрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рдЪреБрдХрд╛ рд╣реИред рдЗрд╕рдХрд╛ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг рдЕрд▓рдЧ рд▓реЗрдЦреЛрдВ рдХрд╛ рд╣рдХрджрд╛рд░ рд╣реИ, рдФрд░ рдореБрдЦреНрдп рд╡рд┐рд╡рд░рдг рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИредрд╕рдорд╕реНрдпрд╛ рдЬрд╛рдЧрд░реВрдХрддрд╛
рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ, рдФрд░ рддреБрд░рдВрдд рдирд╣реАрдВ, рдХрд┐ рд╣рдордиреЗ рдПрдХ рдЧрд▓рддреА рдХреА: рд╣рдордиреЗ
рдорд╛рдирдХ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХреАрдХреГрдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдирд╣реАрдВ
рдЬреЛрдбрд╝реА (рдпрд╛рдиреА, рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдЗрдХрдЯреНрдард╛, рддреИрдирд╛рдд рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕рд╛рдл рдХрд░реЗрдВ)ред рдЖрдк рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рдПрдХ рддреИрдирд╛рддреА рдЙрдкрдХрд░рдг рдХреИрд╕реЗ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдбреЙрдХрдлреЗрд░рд╛рдЗрд▓ рд╕рдорд░реНрдерди рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреНред рдЕрдзрд┐рдХрд╛рдВрд╢ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдорд╛рдирдХ рддрд░реАрдХрд╛? ..
рдРрд╕реЗ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджреЗрдиреЗ рдХреЗ рдмрдЬрд╛рдп, рд╣рдо рдПрдХ рд╕рдорд╛рдзрд╛рди рдкреНрд░рд╕реНрддреБрдд рдХрд░рддреЗ рд╣реИрдВред рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдбреЙрдХрд░реАрдлрд╛рдЗрд▓ (рдпрд╛ рдбреЙрдХрдлрд╛рдЗрд▓реНрд╕ рдХрд╛ рдПрдХ рд╕реЗрдЯ) рд╣реИ рдФрд░ рдХреНрдпрд╛ рдЖрдк рд╡реЗрдпрд░рдл рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?
NB : рд╡реИрд╕реЗ, рддреБрдо рднреА рдХреНрдпреЛрдВ werf рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ:- рдЫрд╡рд┐ рд╕рдлрд╛рдИ рд╕рд╣рд┐рдд рдкреВрд░реНрдг рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкреНрд░рдмрдВрдзрди рдЪрдХреНрд░;
- рдПрдХ рд╣реА рд╡рд┐рдиреНрдпрд╛рд╕ рд╕реЗ рдХрдИ рдЫрд╡рд┐рдпреЛрдВ рдХреА рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛;
- рдмреЗрд╣рддрд░ рд╣реЗрд▓реНрдо рд╕рдВрдЧрдд рдЪрд╛рд░реНрдЯ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ред
рдЙрдирдХреА рдПрдХ рдкреВрд░реА рд╕реВрдЪреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреГрд╖реНрда рдкрд░ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИредрдЗрд╕рд▓рд┐рдП, рдЕрдЧрд░ рдкрд╣рд▓реЗ рд╣рдо рдЕрдкрдиреЗ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдбреЙрдХрд░реАрдлрд╛рдЗрд▓ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрдВрдЧреЗ, рддреЛ рдЕрдм рд╣рдо рдпрд╣ рдХрд╣рддреЗ рд╣реБрдП рдЦреБрд╢ рд╣реЛрдВрдЧреЗ: "рд▓реЗрдЯ рд╡реЗрдпрд░рдл рдиреЗ рдЖрдкрдХреЗ рдбреЙрдХрд░рдлрд╛рдЗрд▓реНрд╕ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛!"
рдХреИрд╕реЗ рдХрд░реЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓?
рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдкреВрд░реНрдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди
рд╡реЗрдпрд░рдл v1.0.3-beta.1 рд░рд┐рд▓реАрдЬ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ред рд╕рд╛рдорд╛рдиреНрдп рд╕рд┐рджреНрдзрд╛рдВрдд рд╕рд░рд▓ рд╣реИ: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ werf config рдореЗрдВ рдореМрдЬреВрджрд╛ Dockerfile рдХреЗ рд▓рд┐рдП рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░
werf build
... рдХрдорд╛рдВрдб рдЪрд▓рд╛рддрд╛ рд╣реИ рдФрд░ рдпрд╣реА рд╣реИ - werf рдЫрд╡рд┐ рдПрдХрддреНрд░ рдХрд░реЗрдЧрд╛ред рдПрдХ рд╕рд╛рд░ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдЬрдбрд╝ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд
Dockerfile
:
FROM ubuntu:18.04 RUN echo Building ...
рдФрд░ рдЗрд╕
Dockerfile
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ
werf.yaml
рдШреЛрд╖рдгрд╛ рдХрд░реЗрдВ:
configVersion: 1 project: dockerfile-example --- image: ~ dockerfile: ./Dockerfile
рд╡рд╣ рд╕рдм рд╣реИ! рдпрд╣
рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ
рд╣реИ werf build
:

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдбреЙрдХрдлрд╛рдЗрд▓реНрд╕ рд╕реЗ рдХрдИ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди
werf.yaml
рдШреЛрд╖рдгрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
configVersion: 1 project: dockerfile-example --- image: backend dockerfile: ./dockerfiles/Dockerfile-backend --- image: frontend dockerfile: ./dockerfiles/Dockerfile-frontend
рдЕрдВрдд рдореЗрдВ, рдпрд╣ рдЕрддрд┐рд░рд┐рдХреНрдд рдмрд┐рд▓реНрдб рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХрд╛ рднреА рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ - рдЬреИрд╕реЗ рдХрд┐
--build-arg
рдФрд░
--add-host
- werf config рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗред
рдкреНрд░рд▓реЗрдЦрди рдкреГрд╖реНрда рдкрд░ рдбреЙрдХрдлрд╛рдЗрд▓ рдЫрд╡рд┐ рд╡рд┐рдиреНрдпрд╛рд╕ рдХрд╛ рдкреВрд░рд╛ рд╡рд┐рд╡рд░рдг рдЙрдкрд▓рдмреНрдз рд╣реИред
рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?
рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди, рдбреЙрдХрд░ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдорд╛рдирдХ рд╕реНрдерд╛рдиреАрдп рдкрд░рдд рдХреИрд╢ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ, рд╡реЗрдпрд░рдл рднреА
рдЕрдкрдиреЗ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдореЗрдВ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рддрд╛ рд╣реИ ред рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ?
- Dockerfile рд╕реЗ рдПрдХрддреНрд░ рдХреА рдЧрдИ рдкреНрд░рддреНрдпреЗрдХ рдЫрд╡рд┐ рдореЗрдВ dockerfile рдирд╛рдордХ рдПрдХ рдЪрд░рдг рд╢рд╛рдорд┐рд▓
dockerfile
( dockerfile
рдореЗрдВ рдХреМрди рд╕реЗ рдЪрд░рдг рд╣реИрдВ, рдЖрдк рдпрд╣рд╛рдБ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ)ред - рд╕реНрдЯреЗрдЬ рдХреЗ рд▓рд┐рдП,
dockerfile
рд╡рд╕реЗрдл рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рд╕рд╛рдордЧреНрд░реА рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдЬрдм Dockerfile рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ dockerfile
рд╕реНрдЯреЗрдЬ рд╕рд┐рдЧреНрдиреЗрдЪрд░ dockerfile
рдФрд░ werf рдирдП Dockerfile рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдЗрд╕ рд╕реНрдЯреЗрдЬ рдХреЗ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХреА рдкрд╣рд▓ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИ, рддреЛ рд╡реЗрдпрд░рдл рдЫрд╡рд┐ рдХреЛ рдХреИрд╢ рд╕реЗ рд▓реЗрддрд╛ рд╣реИ ( рдЗрд╕ рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рд╡реЗрдпрд░рдл рдореЗрдВ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рд╡рд░реНрдгрд┐рдд рдереЗ) ред - рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХрддреНрд░рд┐рдд рдЫрд╡рд┐рдпреЛрдВ
werf publish
рдХрдорд╛рдВрдб (рдпрд╛ werf build-and-publish
) werf publish
рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдбреЙрдХрд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдЫрд╡рд┐рдпрд╛рдВ рдорд╛рдирдХ рд╡реЗрдпрд░рдл рдХреНрд▓реАрдирд░ рдХреЗ рд╕рд╛рде рд╕рд╛рдл рд╣реЛ рдЬрд╛рдПрдВрдЧреА, рдЕрд░реНрдерд╛рддред рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреБрд░рд╛рдиреА рдЫрд╡рд┐рдпреЛрдВ (N рджрд┐рдиреЛрдВ рд╕реЗ рдЕрдзрд┐рдХ рдкреБрд░рд╛рдиреА), рдЧреИрд░-рдореМрдЬреВрдж Git рд╢рд╛рдЦрд╛рдУрдВ рдФрд░ рдЕрдиреНрдп рдиреАрддрд┐рдпреЛрдВ рд╕реЗ рдЬреБрдбрд╝реА рдЫрд╡рд┐рдпрд╛рдВ рд╕рд╛рдлрд╝ рдХрд░ рджреЗрдЧрд╛ред
рдЖрдк рдкреНрд░рд▓реЗрдЦрди рд╕реЗ рдпрд╣рд╛рдБ рд╡рд░реНрдгрд┐рдд рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рди рд╕рдХрддреЗ рд╣реИрдВ:
рдиреЛрдЯреНрд╕ рдФрд░ рд╕рд╛рд╡рдзрд╛рдирд┐рдпрд╛рдВ
1. ADD рдореЗрдВ рдмрд╛рд╣рд░реА URL рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ
рд╡рд░реНрддрдорд╛рди рдореЗрдВ
ADD
рдирд┐рд░реНрджреЗрд╢ рдореЗрдВ рдмрд╛рд╣рд░реА URL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИред рдЬрдм рдХреЛрдИ рд╕рдВрд╕рд╛рдзрди рдирд┐рд░реНрджрд┐рд╖реНрдЯ URL рдореЗрдВ рдмрджрд▓рддрд╛ рд╣реИ, рддреЛ Werf рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХреА рд╢реБрд░реБрдЖрдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдЬрд▓реНрдж рд╣реА рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рд╣реИред
рдЖрдк рдПрдХ рдЫрд╡рд┐ рдХреЗ рд▓рд┐рдП .git рдЬреЛрдбрд╝ рдирд╣реАрдВ рд╕рдХрддреЗ
рдЖрдо рддреМрд░ рдкрд░ рдмреЛрд▓рдирд╛, рдПрдХ рдЫрд╡рд┐ рдХреЗ рд▓рд┐рдП
.git
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдПрдХ
рд╢рд╛рддрд┐рд░ рдмреБрд░рд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИ, рдФрд░ рдпрд╣рд╛рдБ рдХреНрдпреЛрдВ рд╣реИ:
- рдпрджрд┐
.git
рдЕрдВрддрд┐рдо рдЫрд╡рд┐ рдореЗрдВ рд░рд╣рддрд╛ рд╣реИ, рддреЛ рдпрд╣ 12 рдлрд╝реИрдХреНрдЯрд░ рдРрдк рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд░рддрд╛ рд╣реИ: рдЪреВрдВрдХрд┐ рдЕрдВрддрд┐рдо рдЫрд╡рд┐ рдХреЛ рдПрдХ рдХрдорд┐рдЯ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рд▓рд┐рдП рдПрдХ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдХрдорд┐рдЯ git checkout
рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред .git
рдЫрд╡рд┐ рдХрд╛ рдЖрдХрд╛рд░ рдмрдврд╝рд╛рддрд╛ рд╣реИ (рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдмрдбрд╝реА рд╣реЛ рд╕рдХрддреА рд╣реИ рдХрд┐ рдмрдбрд╝реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдПрдХ рдмрд╛рд░ рдЗрд╕рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдлрд┐рд░ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛)ред рдХрд╛рд░реНрдп-рд╡реГрдХреНрд╖ рдХрд╛ рдЖрдХрд╛рд░, рдХреЗрд╡рд▓ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рддрд┐рдмрджреНрдз рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ, рдЬреЛ рдЧрд┐рдЯ рдореЗрдВ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ, рдЕрдВрддрд┐рдо рдЫрд╡рд┐ рд╕реЗ .git
рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдФрд░ рдлрд┐рд░ рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдЪрд▓реЗрдЧрд╛: рдЫрд╡рд┐ рдХреЛ рдЕрднреА рднреА рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдкрд░рдд рдорд┐рд▓реЗрдЧреА - рдпрд╣ рд╣реИ рдХрд┐ рдбреЙрдХрд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред- рдбреЙрдХрд░ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХреА рд╢реБрд░реБрдЖрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдПрдХ рд╣реА рдкреНрд░рддрд┐рдмрджреНрдз рдмрдирд╛рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реЛ, рд▓реЗрдХрд┐рди рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдп-рд╡реГрдХреНрд╖реЛрдВ рд╕реЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рдорд╛рдирд╛рдВрддрд░ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдкрд░
/home/gitlab-runner/builds/HASH/[0-N]/yourproject
рдореЗрдВ рдЕрд▓рдЧ рдХреНрд▓реЛрди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ /home/gitlab-runner/builds/HASH/[0-N]/yourproject
рд╣реИред рдЕрддрд┐рд░рд┐рдХреНрдд рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реЛрдЧрд╛ рдХрд┐ .git
рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕рдорд╛рди рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреНрд▓реЛрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рднрд┐рдиреНрди рд╣реЛрддреА рд╣реИ, рднрд▓реЗ рд╣реА рд╡рд╣реА рдкреНрд░рддрд┐рдмрджреНрдз рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛред
рдЕрдВрддрд┐рдо рдмрд┐рдВрджреБ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИ рдЬрдм рд╡реЗрдпрд░рдл рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред Werf рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдПрдХрддреНрд░рд┐рдд рдХреИрд╢ рддрдм рдореМрдЬреВрдж рд╣реЛ рдЬрдм рдХреБрдЫ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдП рдЬрд╛рддреЗ рд╣реЛрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
werf deploy
)ред рдРрд╕реЗ рдЖрджреЗрд╢реЛрдВ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рджреМрд░рд╛рди, werf, werf.yaml рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЪрд┐рддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЪрд░рдг рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЕрд╕реЗрдВрдмрд▓реА рдХреИрд╢ рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП - рдЕрдиреНрдпрдерд╛ рдЯреАрдо рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдЧреАред рдпрджрд┐ рдЪрд░рдгреЛрдВ рдХрд╛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░
.git
рдХреА рд╕рд╛рдордЧреНрд░реА рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдПрдХ рдХреИрд╢ рдорд┐рд▓рддрд╛ рд╣реИ рдЬреЛ рдЕрдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХреЗ рд▓рд┐рдП рдЕрд╕реНрдерд┐рд░ рд╣реИ, рдФрд░ werf рдРрд╕реА рдЧрд▓рддреА рдХреЛ рдорд╛рдл рдирд╣реАрдВ рдХрд░ рдкрд╛рдПрдВрдЧреЗ (рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП
рдкреНрд░рд▓реЗрдЦрди рджреЗрдЦреЗрдВ)ред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ
ADD
рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ
рдХреЗрд╡рд▓ рдХреБрдЫ рдЖрд╡рд╢реНрдпрдХ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рд▓рд┐рдЦрд┐рдд
Dockerfile
рдХреА рджрдХреНрд╖рддрд╛ рдФрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдмрдврд╝ рдЬрд╛рддреА рд╣реИ, рдФрд░ рдЧрд┐рдЯ рдореЗрдВ рдЕрдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдЦрд┐рд▓рд╛рдл рдЗрд╕
Dockerfile
рджреНрд╡рд╛рд░рд╛ рд╕рдВрдХрд▓рд┐рдд рдХреИрд╢ рдХреА рд╕реНрдерд┐рд░рддрд╛ рдореЗрдВ рднреА рд╕реБрдзрд╛рд░ рд╣реЛрддрд╛ рд╣реИред
рдкрд░рд┐рдгрд╛рдо
рдХреБрдЫ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕рдВрдХрд▓рдХ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХрд╛ рд╣рдорд╛рд░рд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рддрд░реАрдХрд╛ рдХрдард┐рди, рдИрдорд╛рдирджрд╛рд░ рдФрд░ рд╕реАрдзрд╛ рдерд╛: рдорд╛рдирдХ рдбреЙрдХрдлрд╛рдЗрд▓ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдмреИрд╕рд╛рдЦреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рд╣рдордиреЗ рдХрд╕реНрдЯрдо рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд╕рд╛рде рдЕрдкрдирд╛ рд╕рдорд╛рдзрд╛рди рд▓рд┐рдЦрд╛ред рдФрд░ рдЗрд╕рдиреЗ рдЗрд╕рдХреЗ рдлрд╛рдпрджреЗ рджрд┐рдП: рд╕реНрдЯреЗрдкрд▓-рдмрд┐рд▓реНрдбрд░ рдЕрдкрдиреЗ рдХрд╛рдо рдХреЗ рд╕рд╛рде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдореБрдХрд╛рдмрд▓рд╛ рдХрд░рддрд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХрд▓реЗрдХреНрдЯрд░ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рд╣рдордиреЗ рдореМрдЬреВрджрд╛ рдбреЙрдХрдлрд╛рдЗрд▓реНрд╕ рдХреЗ рд╕рдорд░реНрдерди рдХреА рдЕрдирджреЗрдЦреА рдХреАред рдЕрдм рдпрд╣ рджреЛрд╖ рддрдп рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╣рдо рд╡рд┐рддрд░рд┐рдд рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рд▓рд┐рдП рдФрд░ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рд▓рд┐рдП (рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рдЕрдВрджрд░ рдзрд╛рд╡рдХреЛрдВ рдкрд░ рдЕрд╕реЗрдВрдмрд▓реА, рдЬреИрд╕рд╛ рдХрд┐ рдХрд╛рдирд┐рдХреЛ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ) рдХреЗ рд▓рд┐рдП рдбреЙрдХрд░рдлрд╛рдЗрд▓ рд╕рдорд░реНрдерди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рд╣реИред
рддреЛ рдЕрдЧрд░ рддреБрдо рдЕрдЪрд╛рдирдХ Dockerfiles рдХреА рдПрдХ рдЬреЛрдбрд╝реА рдХреЗ рдЖрд╕рдкрд╛рд╕ рдкрдбрд╝рд╛ рдерд╛ ...
Tryf !
рдкреБрдирд╢реНрдЪ рд╕рдВрдмрдВрдзрд┐рдд рджрд╕реНрддрд╛рд╡реЗрдЬ рдХреА рд╕реВрдЪреА
рд╣рдорд╛рд░реЗ рдмреНрд▓реЙрдЧ рдкрд░ рдпрд╣ рднреА рдкрдврд╝реЗрдВ: "
Kubernetes рдореЗрдВ рд╣рдорд╛рд░реЗ CI / CD рдЯреВрд▓ рд╣реИрдВ (рд╕рдореАрдХреНрд╖рд╛ рдФрд░ рд╡реАрдбрд┐рдпреЛ рд░рд┐рдкреЛрд░реНрдЯ) ред"