Moby: рдХреЗрд╡рд▓ рдирд┐рд░реНрдорд╛рдг рд╕рдордп -v рд╡рд┐рдХрд▓реНрдк

рдХреЛ рдирд┐рд░реНрдорд┐рдд 21 рдЬреВрди 2015  ┬╖  258рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: moby/moby

рдЬреИрд╕рд╛ рдХрд┐ https://github.com/docker/docker/issues/3156 . рдореЗрдВ @ cpuguy83 рджреНрд╡рд╛рд░рд╛ рд╕реБрдЭрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ
рдпрд╣рд╛рдБ рдирд┐рд░реНрдорд╛рдг рд╕рдордп рдореЗрдВ рдПрдХ рд▓рдЪреАрд▓реЗ -v рд╡рд┐рдХрд▓реНрдк рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИред

рдбреЙрдХрд░ рдЫрд╡рд┐ рдмрдирд╛рддреЗ рд╕рдордп рдореБрдЭреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдФрд░ рдРрдк рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдпрд╣ рд╕рдм рджреЛ рдЯреИрд░рдмреЙрд▓ рдореЗрдВ рд▓рдкреЗрдЯрд╛ рдЧрдпрд╛ рд╣реИ: рдбреАрдмреА рдХреЗ рд▓рд┐рдП 1 рдФрд░ рдРрдк рдХреЗ рд▓рд┐рдП 1 рдЬрд┐рд╕реЗ рдЗрд╕рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рд╕реНрдХреАрдорд╛, рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕, рд╕реНрдерд┐рд░ рдбреЗрдЯрд╛, рдкреНрд░рдорд╛рдг-рдкрддреНрд░ рдЗрддреНрдпрд╛рджрд┐)ред рдкреВрд░рд╛ рд╕рдорд╛рдзрд╛рди рддрдм рдПрдХ рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдХрдИ рд╢реЗрд▓ рдЪрд░ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ рдФрд░ рдУрдПрд╕ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдФрд░ рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдХреЛ рддрджрдиреБрд╕рд╛рд░ рдЯреНрдпреВрди рдХрд░рддрд╛ рд╣реИред
рдЬрдм рдореИрдВ рдЙрдкрд░реЛрдХреНрдд рдЯреИрд░рдмреЙрд▓ рдХреЛ рд╡рд┐рд╕реНрдлреЛрдЯ рдХрд░рддрд╛ рд╣реВрдВ (рдпрд╛ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдПрдбреАрдбреА рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ) рддреЛ рдкреВрд░реА рдЪреАрдЬ рд▓рдЧрднрдЧ 1.5GB (!) рддрдХ рдлреВрд▓ рдЬрд╛рддреА рд╣реИред рдЖрджрд░реНрд╢ рдирд╣реАрдВ рдЬреИрд╕рд╛ рдЖрдк рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВред

рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ '-v/distrib/ready2installApp:/distrib' рдирд┐рд░реНрджреЗрд╢ рдЕрднреА рднреА рд╕рдВрднрд╡ рд╣реЛ (рдЬреИрд╕рд╛ рдХрд┐ рдЖрдЬ Dockerfile рдореЗрдВ рд╣реИ)
рд▓реЗрдХрд┐рди

рдореИрдВ рдХрдВрдЯреЗрдирд░ рд░рди-рдЯрд╛рдЗрдо рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдпреЛрдЧреНрдп рдЖрд░реНрдЯрд┐рдлреИрдХреНрдЯ рд╕реЗ рдШреЛрд╖рдгрд╛рддреНрдордХ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ (рдХреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдзрд╛рд░рднреВрдд рд╕рдВрд░рдЪрдирд╛) рдХреЛ рдЕрд▓рдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдореИрдВ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рдХрд┐ рдореБрдЭреЗ 1.5GB рдХреЗ рдбреЗрдб рд╡реЗрдЯ рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдкрдбрд╝реЗ рдЬрд┐рд╕рдХреА рдореБрдЭреЗ рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИред

рдХреНрдпрд╛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ --unmount-volume рд╡рд┐рдХрд▓реНрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ Dockerfile рдХреЗ рдЕрдВрдд рдореЗрдВ рдЪрд▓рд╛ рд╕рдХрддрд╛ рд╣реВрдБ?
рдпрд╛
рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рд╡реЙрд▓реНрдпреВрдо рдЕрднреА рдбреЙрдХрд░рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд╢рд╛рдпрдж рд╣рдореЗрдВ рдЕрд╕реНрдерд╛рдпреА рд╡реЙрд▓реНрдпреВрдо рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдбреЙрдХрд░рдлрд╝рд╛рдЗрд▓ рдирд┐рд░реНрджреЗрд╢ рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕реЗ рд▓реЛрдЧ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рддреЗ рд╕рдордп рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрдардкреБрддрд▓реА рдХрд╛ рдЙрджрд╛рд╣рд░рдг @ рдлрд╛рджрд░рд▓рд┐рдирдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдПрдХ рд╕рдорд╛рди рд▓рд╛рдЗрди рдкрд░ рдерд╛ ...
рдпрд╛
рдЖрдк рд▓реЛрдЧ рдЬреЛ рднреА рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВред
рдЙрджреНрджреЗрд╢реНрдп рдЙрд╕ рд╕рднреА рдореГрдд рднрд╛рд░ рдХреЛ рд▓реЗ рдЬрд╛рдиреЗ рд╕реЗ рдмрдЪрдирд╛ рд╣реИ рдЬреЛ рдПрдХ рддреИрдирд╛рдд рдРрдк рдпрд╛ рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдмреЗрдХрд╛рд░ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐ рд╡рд╣ рдореГрдд рд╡рдЬрди @ рдЗрдВрд╕реНрдЯрд╛рд▓-рдЯрд╛рдЗрдо рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рд╕рднреА рдХреЗ рдкрд╛рд╕ рдПрдХ рд╕рд╛рдзрд╛рд░рдг "рдпрдо рдЗрдВрд╕реНрдЯреЙрд▓" рдирд╣реАрдВ рд╣реИред :)

рдЬреА рдмрд╣реБрдд рдмрд╣реБрдд рд╢реБрдХреНрд░рд┐рдпрд╛

arebuilder kinfeature

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

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

рдЕрд░реНрдерд╛рдд:

docker build -v /home/dokku/cache/dnx/packages:/opt/dnx/packages -t "dokku/aspnettest" .

рд╕рднреА 258 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореИрдВ рдЗрд╕реА рддрд░рд╣ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╣реВрдВред

рд╕рдВрдХрдЯ

рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЬрд┐рд╕ рдЙрджреНрдпрдо рдореЗрдВ рдореИрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВ рд╡рд╣ рдПрд╕рдПрд╕рдПрд▓ рдирд┐рд░реАрдХреНрд╖рдг рдХреЗ рд╕рд╛рде Zscaler рдкреНрд░реЙрдХреНрд╕реА рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрдирд╛ рдФрд░ рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди рдХреБрдЫ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рдирд╛ред

рдПрдХ рдЕрд╕реНрдерд╛рдпреА рд╕рдорд╛рдзрд╛рди рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдФрд░ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдмрдирд╛рдирд╛ рдерд╛ред рд▓реЗрдХрд┐рди рджреАрд░реНрдШрдХрд╛рд▓рд┐рдХ рджреГрд╖реНрдЯрд┐ рд╕реЗ рдпрд╣ рдЙрдЪрд┐рдд рдирд╣реАрдВ рд▓рдЧрддрд╛ред

рддреЛ, рдореЗрд░рд╛ рдкрд╣рд▓рд╛ рд╡рд┐рдЪрд╛рд░ HTTP рдФрд░ HTTPS рдХреЗ рд╕рд╛рде рдПрдХ рдкрд╛рд░рджрд░реНрд╢реА рдкреНрд░реЙрдХреНрд╕реА рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдлрд┐рд░ рд╕реЗ рдореБрдЭреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди рдПрдХ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЖрджрд░реНрд╢ рдкрд░рд┐рджреГрд╢реНрдп рдЙрд╕реА Dockerfile рдХреЗ рд╕рд╛рде рд╣реИ, рдореИрдВ рдЕрдкрдиреЗ рд▓реИрдкрдЯреЙрдк, рдШрд░ рдФрд░ рдЙрджреНрдпрдо рдкрд░ рдЕрдкрдиреА рдЫрд╡рд┐ рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдКрдВрдЧрд╛ред

рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди

# Enterprise
$ docker build -v /etc/ssl:/etc/ssl -t myimage .

# Home
$ docker build -t myimage .

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

рдЕрд░реНрдерд╛рдд:

docker build -v /home/dokku/cache/dnx/packages:/opt/dnx/packages -t "dokku/aspnettest" .

@yngndrw рдЬреЛ рдЖрдк рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рд╡рд╣ рдореЗрд░реЗ рд▓рд┐рдП рднреА рдареАрдХ рд╣реЛрдЧрд╛, рдпрд╛рдиреА, рд╣рдореЗрдВ рдирд┐рд░реНрдорд╛рдг рд╕рдордп рдкрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдорд╛рдЙрдВрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдХрд┐ рд░рди рдЯрд╛рдЗрдо рдкрд░ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реЛрдВрдЧреЗ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВред

рдПрдлрдбрдмреНрд▓реНрдпреВрдЖрдИрдбрдмреНрд▓реНрдпреВ рдореИрдВрдиреЗ рдЗрди рдкреГрд╖реНрдареЛрдВ рдореЗрдВ рдХрд╣реАрдВ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдХреБрдЫ рдХрд╣ рд░рд╣рд╛ рд╣реИ (рдФрд░ рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд╕рдордЭрд╛ рд░рд╣рд╛ рд╣реВрдВ) "рдПрдХ рд╕рдорд╛рди рдореЗрдЬрдмрд╛рди рдорд╢реАрди рдкрд░ рдЕрдкрдиреЗ рд╕рдВрдХрд▓рди рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░реЗрдВ, рдлрд┐рд░ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рддреИрдирд╛рддреА рдпреЛрдЧреНрдп рдЖрд░реНрдЯрд┐рдлреИрдХреНрдЯ рдпрд╛ рдПрдХреНрд╕рдИ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ"ред
рдореБрдЭреЗ рдбрд░ рд╣реИ рдХрд┐ рдпрд╣ рдЗрддрдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИ рджреЛрд╕реНрддреЛрдВред рдХрднреА-рдХрднреА, рдореБрдЭреЗ /usr/bin рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдХреБрдЫ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдореИрдВ рдЙрд╕ рдУрдПрд╕ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реВрдВ рдЬрд┐рд╕ рдкрд░ рдореИрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реВрдВ, рдХрд░реНрдиреЗрд▓ рдкреИрд░рд╛рдореНрд╕ рдЬрд┐рдиреНрд╣реЗрдВ рдореБрдЭреЗ рдЯреНрдпреВрди рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ, рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдпрд╛ рдШреЛрд╖рдгрд╛рдкрддреНрд░ рдмрд┐рд▓реНрдб рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдореБрдЭреЗ рдЬреЛ рдлрд╛рдЗрд▓реЗрдВ рдмрдирд╛рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИред рдРрд╕реА рдХрдИ рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рд╣реИрдВ рдЬреЛ рд╕рдВрдХрд▓рд┐рдд рдЙрддреНрдкрд╛рдж рдХреА рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкреНрд░рддрд┐ рд╕реЗ рд╕рдВрддреБрд╖реНрдЯ рдирд╣реАрдВ рд╣реИрдВред

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

рдлрд┐рд░ рд╕реЗ рдзрдиреНрдпрд╡рд╛рдж

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

рдПрдХ рдЕрдиреНрдп рдЙрджрд╛рд╣рд░рдг, рд╕реИрдЯреЗрд▓рд╛рдЗрдЯ/рд╕реНрдкреЗрд╕рд╡реЙрдХ рд╣реЛрдЧрд╛ рдЬреЛ рд╕реНрдХреАрдорд╛ рдХреЛ рдЕрдХреНрд╕рд░ рдмрджрд▓рддрд╛ рд╣реИ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕рдВрд╕реНрдХрд░рдг 5.6 (IIRC) рдкрд░ Oracle рд╕реЗ Postgresql рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рднреА рдмрджрд▓ рджреЗрддрд╛ рд╣реИред

рдХрдИ, рдХрдИ рдкрд░рд┐рджреГрд╢реНрдп рд╣реИрдВ рдЬрдм рдореБрдЭреЗ рдХрдВрдЯреЗрдирд░реАрдХреГрдд рдмрд┐рд▓реНрдб рдореЗрдВ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХрд╛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рддреЗ рд╕рдордп рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╡рд┐рддрд░рд┐рдд/рд╕реВрдХреНрд╖реНрдо рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╛рде ....

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

рд╕реЗрдХреЗрдВрдбрд┐рдВрдЧ @yngndrw рдХреИрд╢рд┐рдВрдЧ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддреЗ рд╣реБрдП: рдареАрдХ рдпрд╣реА рддрд░реНрдХ рдХрдИ рд▓реЛрдХрдкреНрд░рд┐рдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдЬреИрд╕реЗ рдХрд┐ рдорд╛рд╡реЗрди, npm, apt, rpm рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ - рдПрдХ рд╕рд╛рдЭрд╛ рдХреИрд╢ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рд╕реЗ рдмрд┐рд▓реНрдб рдореЗрдВ рдирд╛рдЯрдХреАрдп рд░реВрдк рд╕реЗ рддреЗрдЬреА рдЖ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдЕрдВрддрд┐рдо рдЫрд╡рд┐ рдореЗрдВ рдирд╣реАрдВ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

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

рдореБрдЭреЗ docker build рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд╕рдХрдиреЗ рд╡рд╛рд▓реЗ рд╡реЙрд▓реНрдпреВрдо рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП $# docker run docker build рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧрд╛рддрд╛рд░ рдкреНрд░рддрд┐рд░реЛрдз рд╕реЗ рднреА рдХрд╛рдЯ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдореБрдЭреЗ 'рд╣реЛрд╕реНрдЯ-рдЗрдВрдбрд┐рдкреЗрдВрдбреЗрдВрдЯ рдмрд┐рд▓реНрдбреНрд╕' рдордВрддреНрд░ рдмрд╣реБрдд рдЖрд╢реНрд╡рд╕реНрдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдбреЙрдХрд░ рдЫрд╡рд┐рдпреЛрдВ рдкрд░ рд╡рд┐рдХрд╛рд╕ рдФрд░ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдХрдард┐рди рдФрд░ рд╕рдордп рд▓реЗрдиреЗ рд╡рд╛рд▓рд╛ рд▓рдЧрддрд╛ рд╣реИ, рдЬрдм рдЖрдкрдХреЛ рд╣рд░ рдмрд╛рд░ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдкреВрд░реЗ рдкреИрдХреЗрдЬ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдлрд┐рд░ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдПрдХ рдЫрд╡рд┐ред

рдореЗрд░рд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рд╡рд┐рдХрд╛рд╕ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЛ рддреЗрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдУрдПрд╕ рдкреИрдХреЗрдЬ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдХреИрд╢ рдХрд░рдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рдереАред рдХреБрдЫ рд╕рдлрд▓рддрд╛ рдХреЗ рд╕рд╛рде рдореИрдВ рдЬрд┐рд╕ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд╡рд╣ @fatherlinux рджреНрд╡рд╛рд░рд╛ рд╕реБрдЭрд╛рдП рдЧрдП рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рдорд╛рди рд╣реИ, рдЬреЛ рдХрд┐ docker build рдФрд░ Dockerfile рдХреЗ рд╕рд╛рде рдХреБрд╢реНрддреА рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЫреЛрдбрд╝ рджреЗрдирд╛ рд╣реИ, рдФрд░ docker run рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЦрд░реЛрдВрдЪ рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рд╣реИред docker commit ред

рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдкреНрд░рдпреЛрдЧ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ рдЕрдкрдиреА рддрдХрдиреАрдХ рдХреЛ docker build рдХреЗ рд▓рд┐рдП POSIX рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рдХреЗ рдПрдХ рдмрд┐рдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдкреВрд░реНрдг рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд┐рдпрд╛: dockerize ред

рдЕрдЧрд░ рдХреЛрдИ рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпрд╛ рд╕рд╛рдорд╛рдиреНрдп рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рдпрд╛ рд╕рд╣рд╛рдпрдХ рд╣реИ (рдпрд╛ рдпрджрд┐ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ)ред рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЕрдкрдиреЗ PATH рдореЗрдВ рдХрд╣реАрдВ рд░рдЦреЗрдВ рдФрд░ рдЗрд╕реЗ рдЕрдкрдиреА рдмрд┐рд▓реНрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ ( #! рдЪреАрдЬрд╝) рдХреЗ рд▓рд┐рдП рдПрдХ рд╢реЗрдмреИрдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ, рдлрд┐рд░ рдЕрдкрдиреА рдбреЙрдХрд░ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рд╢реБрд░реБрдЖрдд рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рджреВрд╕рд░реА рд╢реЗрдмреИрдВрдЧ рд▓рд╛рдЗрди рд╕реЗ рдкрд╣рд▓реЗ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╕реЗрдЯ рдХрд░реЗрдВред

FROM , RUNDIR , рдФрд░ VOLUME рдЪрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ docker run рдХреЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред
TAG , EXPOSE , рдФрд░ WORKDIR рдЪрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ docker commit рдХреЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред

рдЕрдиреНрдп рд╕рднреА рдЪрд░реЛрдВ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рд╢реЗрд▓ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдкрд░реНрдпрд╛рд╡рд░рдг рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ docker run , рдЬрд┐рд╕рд╕реЗ рд╡реЗ рдЖрдкрдХреА рдмрд┐рд▓реНрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рднреАрддрд░ рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрд┐рд▓реНрдб рдХреЗ рдмреАрдЪ рдЕрд▓реНрдкрд╛рдЗрди рд▓рд┐рдирдХреНрд╕ рдкреИрдХреЗрдЬ рдХреЛ рдХреИрд╢ рдФрд░ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧреА (рд╡реЙрд▓реНрдпреВрдо рдПрдХ рд╣реЛрдо рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХреЛ CACHE рдореЗрдВ рдорд╛рдЙрдВрдЯ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рддрдм рдЗрдВрд╕реНрдЯреЙрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ OS рдХреЗ рдкреИрдХреЗрдЬ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреИрд╢ рдХреЗ рд▓рд┐рдП рд╕рд┐рдорд▓рд┐рдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ):

#!/usr/bin/env dockerize
FROM=alpine
TAG=${TAG:-wjordan/my-image}
WORKDIR=/var/cache/dockerize
CACHE=/var/cache/docker
EXPOSE=3001
VOLUME="${HOME}/.docker-cache:${CACHE} ${PWD}:${WORKDIR}:ro /tmp"
#!/bin/sh
ln -s ${CACHE}/apk /var/cache/apk
ln -s ${CACHE}/apk /etc/apk/cache
set -e
apk --update add gcc g++ make libc-dev python
[...etc etc build...]

рдЗрд╕рд▓рд┐рдП, рдкрд┐рдЫрд▓реЗ рд╣рдлреНрддреЗ рдореЗрд╕реЛрдХреЙрди рдореЗрдВ рдбреЙрдХрд░ рд╕реЗ рдлреНрд░рд╛рдВрд╕реАрд╕реА рджрд▓ рд╕реЗ рдорд┐рд▓рдиреЗ рдХреЗ рдмрд╛рдж (рдпрд╣ рдПрдХ рдЦреБрд╢реА рдХреА рдмрд╛рдд рдереА) рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЙрдирдХреЗ рдШрд░ рдореЗрдВ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рдПрдХ рд╣реИрдХ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЬреЛ рдПрдХ рдирдИ рдкрддрд▓реА рдЫрд╡рд┐ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рддрд╛ рд╣реИ рдЬреЛ рдЙрдиреНрд╣реЗрдВ рдЪрд╛рд╣рд┐рдП .
рдореИрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рдЙрджреНрдпрдо рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ рд╣реИрдХреНрд╕ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ;) рдФрд░ рдЗрд╕ рдЕрдиреБрд░реЛрдз рдХреЛ рдареАрдХ рд╕реЗ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╕реБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рджреЛрд╕реНрддреЛрдВ...

рдореИрдВ рдмрд┐рд▓реНрдб-рдЯрд╛рдЗрдо -v рдлреНрд▓реИрдЧ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рднреА рд╣реВрдВ рддрд╛рдХрд┐ рдЙрдирдХреЗ рдмреАрдЪ рдХреИрд╢ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рд╕рд╛рдЭрд╛ рдХрд░рдХреЗ рдмрд┐рд▓реНрдб рдХреЛ рдЧрддрд┐ рджреА рдЬрд╛ рд╕рдХреЗред

@yngndrw рдореБрдЭреЗ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рдХрд┐ рдЖрдкрдиреЗ рджреЛ рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ рдХреЛ рдХреНрдпреЛрдВ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ред рдореИрдВрдиреЗ рдЖрдкрдХрд╛ #59 рдЕрдВрдХ рдкрдврд╝рд╛ рдФрд░ рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рдЗрд╕рд╕реЗ рдХреИрд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдХрдВрдЯреЗрдирд░ рд╕реБрдкрд░-рдмреНрд▓реЛрдЯреЗрдб рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ рдЬрдм рд░рди-рдЯрд╛рдЗрдо рдкрд░ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдХреГрдкрдпрд╛ рдкрд╣рд▓реА рдкреЛрд╕реНрдЯ рдкрдврд╝реЗрдВред
рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдореИрдВ рдпрд╣рд╛рдБ рдХреБрдЫ рдпрд╛рдж рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ ... рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рд▓рдВрдмрд╛ рджрд┐рди рд░рд╣рд╛ рд╣реИ :-o

@zrml рдЗрд╢реНрдпреВ https://github.com/aspnet/aspnet-docker/issues/59 рдмрд┐рд▓реНрдЯ-рдЗрди рдкреНрд░рддрд┐-рд▓реЗрдпрд░ рдХреИрд╢рд┐рдВрдЧ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдерд╛ рдЬреЛ рдбреЙрдХрд░ рд╕рднреА рдбреЙрдХрд░ рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореБрджреНрджрд╛ рд╕реВрдХреНрд╖реНрдо рд░реВрдк рд╕реЗ рдЕрд▓рдЧ рд╣реИ рд╣рдо рдбреЙрдХрдлрд╛рдЗрд▓-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреИрд╢рд┐рдВрдЧ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрд╕реНрдЯ рд╡реЙрд▓реНрдпреВрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рд╡реЙрд▓реНрдпреВрдо рдХреЗ рд╡рд┐рд╢реЗрд╖ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИред рдореИрдВрдиреЗ рд╕рдорд╕реНрдпрд╛ https://github.com/aspnet/aspnet-docker/issues/59 рдХреЛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ aspnet-docker рдкреНрд░реЛрдЬреЗрдХреНрдЯ/рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИред

рджреВрд╕рд░рд╛ рдореБрджреНрджрд╛ рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЙрд▓реНрд▓реЗрдЦ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд╡рд╣ рд╣реИ https://github.com/progrium/dokku/issues/1231 , рдЬреЛ рдХрд┐ Dokku рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдерд╛ рдЬреЛ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд docker рд▓реЗрдпрд░ рдХреИрд╢рд┐рдВрдЧ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдХреНрд╖рдо рдХрд░ рд░рд╣рд╛ рдерд╛ред рдорд╛рдЗрдХрд▓ рдиреЗ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╡рд┐рдиреНрдпрд╛рд╕ рдпреЛрдЧреНрдп рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдбреЛрдХреНрдХреВ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд┐рдпрд╛ рдФрд░ рдЗрд╕рдиреЗ рдбреЛрдХреНрдХреВ рдкрд░рд┐рдпреЛрдЬрдирд╛/рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛, рдЬрд┐рд╕рд╕реЗ рдХрд┐ рдореБрджреНрджрд╛ рднреА рдмрдВрдж рд╣реЛ рдЧрдпрд╛ред

рд╕рдВрднрд╡рддрдГ рдЕрднреА рднреА рдПрдХ рдбреЙрдХрд░-рд╕рдВрдмрдВрдзрд┐рдд рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЬреЛ рдмрдХрд╛рдпрд╛ рд╣реИ (рдЕрд░реНрдерд╛рдд рдбреЙрдХрд░ рдмрд┐рд▓реНрдЯ-рдЗрди рд▓реЗрдпрд░ рдХреИрд╢рд┐рдВрдЧ рдХреЛ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╕рдВрднрд╛рд▓ рд░рд╣рд╛ рдерд╛ рдЬреИрд╕рд╛ рдХрд┐ рдореБрдЭреЗ https://github.com/aspnet/aspnet-docker/issues/59 рдЬрд╛рд░реА рдХрд░рдиреЗ рдореЗрдВ рдЙрдореНрдореАрдж рдереА), рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХрд╛ рдореМрдХрд╛ рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реИ рдФрд░ рдкреБрд╖реНрдЯрд┐ рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЕрднреА рднреА рд╣реЛ рд░рд╣рд╛ рд╣реИред рдпрджрд┐ рдпрд╣ рдЕрднреА рднреА рдПрдХ рдореБрджреНрджрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛/рднрдВрдбрд╛рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЙрдард╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЗрд╕ рдореМрдЬреВрджрд╛ рдореБрджреНрджреЗ рд╕реЗ рдЕрд▓рдЧ рд╣реИред

@yngndrw рдмрд┐рд▓реНрдХреБрд▓, рдЗрд╕рд▓рд┐рдП рд╣рдо рд╕рд╣рдордд рд╣реИрдВ рдХрд┐ рдпрд╣ рдЕрд▓рдЧ рдФрд░ рдЬреНрдЮрд╛рдд рд╣реИ @ docker.com рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдкрдХреЛ рдХреЛрдИ рдЖрдкрддреНрддрд┐ рдирд╣реАрдВ рд╣реИ рддреЛ рдореИрдВ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓ рд░рд╣рд╛ рд╣реВрдВ ... рдареАрдХ рд╣реИ, рдореИрдВ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рдХреНрдпрд╛ рдЖрдкрдХреЛ рдХреЛрдИ рдЖрдкрддреНрддрд┐ рд╣реИ, рдХреГрдкрдпрд╛?
рдореИрдВ рдЗрд╕реЗ рдмрдВрдж рдХрд░рдиреЗ рд╕реЗ рдХрдо рд╕реЗ рдХрдо рдПрд╕рдПрдл рдореЗрдВ рдЕрдкрдиреЗ рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рд╕реЗ рдХреБрдЫ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ

BTW рдореБрдЭреЗ @ cpuguy83 рдиреЗ рд▓реЙрдЧ #3156 . рд╕реЗ рдПрдХ рдпреВрдЬрд░ рдХреЗрд╕ рдЦреЛрд▓рдиреЗ рдФрд░ рдпрд╣ рд╕рдм рд╕рдордЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдерд╛

@zrml рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рдЕрдиреБрд╕рд░рдг рдХрд░рддрд╛ рд╣реВрдВ - рдХреНрдпрд╛ рдпрд╣ https://github.com/aspnet/aspnet-docker/issues/59 рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдпрд╣ рдПрдХ /aspnet/aspnet-docker рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЙрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдирд╛ рд╕рд╣реА рд╣реИред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ/рдбреЙрдХрд░/рдбреЙрдХрд░ рдкрд░ рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдФрд░ рдкрд╣рд▓реЗ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдЪрд░рдгреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рдирд╣реАрдВ, рдирд╣реАрдВ.. рдпрд╣ #14080 рдЬрд┐рд╕реЗ рдЖрдкрдиреЗ рдХрд▓ рдмрдВрдж рдХрд┐рдпрд╛ рдерд╛ред

рдпрд╣ рдореБрджреНрджрд╛ рдЕрднреА рднреА рдЦреБрд▓рд╛ рд╣реИ?

@yngndrw рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдореИрдВрдиреЗ рд▓рд╛рд▓ "рдмрдВрдж" рдЖрдЗрдХрди рдХреЛ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдкрдврд╝рд╛ рд╣реИред рдХреНрд╖рдорд╛ рдпрд╛рдЪрдирд╛ред

рджрд┐рд▓ рд╕реЗ рд╕рд╣рдордд рд╣реИрдВ рдХрд┐ рдмрд┐рд▓реНрдб рдЯрд╛рдЗрдо-рд╡реА рдПрдХ рдмрдбрд╝реА рдорджрдж рд╣реЛрдЧреАред

рдмрд┐рд▓реНрдб рдХреИрд╢рд┐рдВрдЧ рдПрдХ рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИред

рдПрдХ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рдирд┐рдЬреА рд░реЗрдкреЛ рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рд╕рдордп рдкрд░ ssh рдХреБрдВрдЬрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдкрд░рдд рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдмрд┐рдирд╛, рд╣реИрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдирд╛ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЗрдВрдЬреАрдирд┐рдпрд░) рдЬреИрд╕реЗ рдХрд┐: https://github.com/dockito/vault

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

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

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

@btrepp рдПрдХ рдФрд░ рдЕрдЪреНрдЫреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдореИрдВ рджреВрд╕рд░реА рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд╕рдХрддрд╛ рд╣реВрдВред

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

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

рдбреЙрдХрд░ рдлрд╝рд╛рдЗрд▓ рдЬреЛ рджреВрд╕рд░реЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреА рд╣реИ

FROM dockerbuilder
RUN docker build -t docker/builder myapp/builder/Dockerfile
RUN docker run -v /app:/app builder
RUN docker build -t btrepp/myapplication myapp/Dockerfile

btrep/myapplication dockerfile

FROM debian:jessie+sayrubyruntime
ADD . /app //(this is code thats been build using the builder dockerfile
ENTRYPOINT ["rails s"]

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

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

рдпрд╣ рдбреЙрдХрд░ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд╕реБрдкрд░ рд▓рд╛рдЗрдЯ рд░рдЦреЗрдЧрд╛ред

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

рдореИрдВрдиреЗ рд▓реЛрдЧреЛрдВ рдХреЛ рдЗрд╕ рддрд░рд╣ рдХреА рдХреБрдЫ рддрдХрдиреАрдХреЛрдВ рдореЗрдВ рджреЗрдЦрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд┐рд▓реНрдб рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рд╣рд░реА http рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВ рдЗрд╕реЗ рд╕рднреА рдбреЙрдХрд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдорд┐рдд рд░рдЦрдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕реЗ рдареАрдХ рд╕реЗ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╡рддрдГ рдПрдХ рдбреЙрдХрд░ рдЫрд╡рд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИред рд░рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╡реЙрд▓реНрдпреВрдо рдорд╛рдЙрдВрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ред

рдпрд╣рд╛рдБ рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг рд╣реИред рдорд╛рди рд▓реЗрдВ рдХрд┐ рдореИрдВ рд╕рд┐рд╕реНрдЯрдордЯреИрдк рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдВрдЯреЗрдирд░ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬрд┐рд╕рдореЗрдВ рдХрд░реНрдиреЗрд▓ рдХреЗ рд▓рд┐рдП рд╕рднреА рдбрд┐рдмрдЧ рдкреНрд░рддреАрдХ рд╣реИрдВ (рдЬреЛ рдХрд┐ рдпреВрдпреВрдпреВрдЬ рд╣реИрдВ)ред рдореБрдЭреЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд /lib/рдореЙрдбреНрдпреВрд▓ рдХреЛ рдорд╛рдЙрдВрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ yum рдХрдорд╛рдВрдб рдХреЛ рдкрддрд╛ рдЪрд▓ рд╕рдХреЗ рдХрд┐ рдХреМрди рд╕реЗ RPM рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЗрдиреНрд╣реЗрдВ 1.5GB рдЫрд╡рд┐ (рдбреАрдмрдЧ рдкреНрд░рддреАрдХреЛрдВ рд╕реЗ) рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд╣реАрдВ рдФрд░ рд▓рд╛рдЗрд╡ рдХрд░реВрдВ

рдореИрдВ рдПрдХ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рд▓рд┐рдЦрдиреЗ рдЧрдпрд╛, рдлрд┐рд░ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдпрд╣ рдЕрд╕рдВрднрд╡ рдерд╛ :-(

docker run --privileged -v /lib/modules:/lib/modules --tty=true --interactive=true rhel7/rhel-tools /bin/bash
yum --enablerepo=rhel-7-server-debug-rpms install kernel-debuginfo-$(uname -r) kernel-devel-$(uname -r)
docker ps -a
CONTAINER ID        IMAGE                     COMMAND             CREATED             STATUS                        PORTS               NAMES
52dac30dc495        rhel7/rhel-tools:latest   "/bin/bash"         34 minutes ago      Exited (0) 15 minutes ago                         dreamy_thompson
docker commit dreamy_thompson stap:latest

https://access.redhat.com/solutions/1420883

рдореИрдВ рдпрд╣рд╛рдВ #3949 рд╕реЗ рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЛ рджреЛрд╣рд░рд╛рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЙрд╕ рдмрдЧ рдХреЛ рдЕрдиреНрдп рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

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

рдЗрд╕ рдЖрд╡рд╢реНрдпрдХ рдлреАрдЪрд░ рдореЗрдВ рдХреЛрдИ рдЦрдмрд░?
рдзрдиреНрдпрд╡рд╛рдж

_рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдорддрджрд╛рди_

_рдЗрд╕ рдЪрд░реНрдЪрд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрдиреЗ рдкрд░ рд╕реВрдЪрдирд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдКрдкрд░ рджрд╛рдИрдВ рдУрд░ рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдВ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдирд╛ рд╣реИред_

рдиреАрдЪреЗ рд╕реВрдЪреАрдмрджреНрдз рд▓реЛрдЧреЛрдВ рдиреЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ +1 рдХреЗ рд╕рд╛рде рдЖрдкрдХреА рд╕рд╛рд░реНрдердХ рдЪрд░реНрдЪрд╛ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХреА рд╣реИ:

@vad

рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП +1!

рдПрдХ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рдирд┐рдЬреА рд░реЗрдкреЛ рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рд╕рдордп рдкрд░ ssh рдХреБрдВрдЬрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдкрд░рдд рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдмрд┐рдирд╛, рд╣реИрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдирд╛ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЗрдВрдЬреАрдирд┐рдпрд░) рдЬреИрд╕реЗ рдХрд┐: https://github.com/dockito/vault

рдпрд╣ рд╣рдорд╛рд░рд╛ рдпреВрдЬрд╝рдХреЗрд╕ рднреА рд╣реИ (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣реЛрд╕реНрдЯ рдкрд░ tmpfs рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ ssh рдХреБрдВрдЬрд┐рдпрд╛рдБ)ред

рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХреЗрд╕ рдмрд┐рд▓реНрдб-рдЯрд╛рдЗрдо рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП CI рд╕рд░реНрд╡рд░ рдкрд░ node_modules рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд╕реНрдерд╛рдиреАрдп рдХреИрд╢ рдХреЗ рд▓рд┐рдП рд╣реИред
npm install рдмрд╣реБрдд рдзреАрдорд╛ рд╣реИ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╡рд░реНрддрдорд╛рди "рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда" рдорд╛рдорд▓реЗ рдореЗрдВ рднреА рдЬрд╣рд╛рдВ package.json рдЫрд╡рд┐ рдХреЗ рд▓рд┐рдП ADD рдПрдб рд╣реИ, npm install рдЪрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА package.json рдореЗрдВ рдХрд┐рдП рдЧрдП рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдкрд░ рдЬреЛрдбрд╝реЗ рдЧрдП рдФрд░ рдмрдирд╛рдП рдЧрдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реНрд░реЛрддреЛрдВ рдХреЛ рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдиреЛрдб/рдПрдирдкреАрдПрдо рдкрдХреНрд╖ рдкрд░ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП npm/npm#8836 рджреЗрдЦреЗрдВред

рд╕рдВрдмрдВрдзрд┐рдд aspnet-docker рд╕рдорд╕реНрдпрд╛ рдзреАрдореА рдкреИрдХреЗрдЬ рдмрд╣рд╛рд▓реА рдФрд░ рдкрд░рдд рдореЗрдВ рдореМрдЬреВрджрд╛ рд╕рдВрдХреБрд▓ рдХреЛ рдХреИрд╢рд┐рдВрдЧ рдХрд░рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдореА рдЫрд╡рд┐ рдЖрдХрд╛рд░ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рд╣реИред рдкреИрдХреЗрдЬ рдХреЗ рдХреИрд╢рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдорд╛рдЙрдВрдЯреЗрдб рд╡реЙрд▓реНрдпреВрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ред
https://github.com/aspnet/aspnet-docker/issues/123

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

рдУрдкреА рдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╕рд┐рд░ рдкрд░ рдЦреАрдВрдЪрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ "рдбреЙрдХрд░ рдмрд┐рд▓реНрдб-рд╡реА" рд░рдирдЯрд╛рдЗрдо рдкрд░реНрдпрд╛рд╡рд░рдг рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдлреА рдорджрдж рдХрд░реЗрдЧрд╛ред

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

рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рджреВрд╕рд░рд╛ рд╡рд┐рдХрд▓реНрдк рдЬреЛ рдореИрдВ рд╕реЛрдЪ рд╕рдХрддрд╛ рд╣реВрдВ рд╡рд╣ рд╣реИ рдкрд░рддреЛрдВ рдХреЛ "src" рдкрд░рддреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред

рдЙрди рдкрд░рддреЛрдВ рдХреА рддрд░реНрдЬ рдкрд░ рдХреБрдЫ рдХреЗрд╡рд▓ рдПрдХ рдбреЙрдХрдЯрд░ рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди рдкрд╣реБрдБрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкрд░рд┐рдгрд╛рдореА рдЫрд╡рд┐ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд╣реАрдВ рдЦреАрдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЗрд╕ рддрд░рд╣ рдбреЙрдХрд░ рдкрд╣рд▓реЗ рдХреА рдкрд░рддреЛрдВ/рдЫрд╡рд┐рдпреЛрдВ, рдЕрд╕реНрдерд╛рдпреА рдирд┐рд░реНрдорд╛рдг рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреЛ рдХреИрд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдВрддрд┐рдо рдЫрд╡рд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред

рдЙрджрд╛.

FROM ubuntu
RUN apt-get install gcc
ADDPRIVATE . /tmp/src <--these can be cached by docker locally
RUNPRIVATE make     <-- basically these layers become scoped to the current build process/dockerfile
RUN make install <--result of this layer is required.

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

@yngndrw
рдиреЗрдЯрдХреЛрд░ рдЬреИрд╕реА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреЗрд╣рддрд░ рд╕рдорд╛рдзрд╛рди рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рд╡реЗ рдкреИрдХреЗрдЬ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдПрдЪрдЯреАрдЯреАрдкреАрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ, рдлрд┐рд░ рдбреЙрдХрд░ рдмрд┐рд▓реНрдб рдХреЗ рд▓рд┐рдП рдкрд╛рд░рджрд░реНрд╢реА рдХреИрд╢рд┐рдВрдЧ рдкреНрд░реЙрдХреНрд╕реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП iptables + рд╕реНрдХреНрд╡рд┐рдб рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЫреЛрдЯрд╛ рд╣реИред рдореЗрд░реА рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░рд╛рдп рдпрд╣ рд╣реИ рдХрд┐ рдЗрди рдкреИрдХреЗрдЬ рдкреНрд░рдмрдВрдзрдХреЛрдВ рдХреЛ рдЕрдкрдиреЗ рдЦреЗрд▓, рд╡реЗ рдПрд╕рдПрд╕рдПрд▓ рдЗрд╕реНрддреАрдлрд╛ рджреЗрдиреЗ рдХреЗ рдХрд╛рд░рдг рдХреЙрд░реНрдкреЛрд░реЗрдЯ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднрдпрд╛рдирдХ рд╣реИрдВ, рдЬрдмрдХрд┐ рдПрдкреАрдЯреА-рдЧреЗрдЯ рдЬреИрд╕реА рдЪреАрдЬреЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдареАрдХ рдХрд╛рдо рдХрд░рддреА рд╣реИрдВ рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдбреЙрдХрд░ рдХреЗ рд▓рд┐рдП iptables + рд╕реНрдХреНрд╡рд┐рдб рдХреЗ рд╕рд╛рде рдХреИрд╢ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИрдВред

рдореИрдВ рдмрд┐рд▓реНрдб рдЯрд╛рдЗрдо рд╡реЙрд▓реНрдпреВрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдХрд╛рд░рд╛рддреНрдордХ рдкрд╣рд▓реВ рднреА рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ, dockerfiles рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП docker build -t btrep/myapp рдХреЗ рдмрд╛рд╣рд░ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реЗрдЯрдЕрдк рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдпрд╣ dockerhub рдкрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдмрд┐рд▓реНрдб рдХреЛ рднреА рдореБрд╢реНрдХрд┐рд▓ рдмрдирд╛рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред

@btrep : рдореБрдЭреЗ рдЖрдкрдХрд╛ рд╕реБрдЭрд╛рд╡ рдкрд╕рдВрдж рд╣реИред рдореИрдВ рд╣рд╛рд░реНрдбрдХреЛрдб рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдЬреА рд╕рдХрддрд╛ рд╣реВрдВ (рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдо рддреМрд░ рдкрд░ рдПрдХ рдмреБрд░реА рдЪреАрдЬ рд╣реИ) рдЯреАрдПрдордкреА рдбреАрдЖрдИрдЖрд░ рдЬреЛ рдбреЙрдХрд░ рд╣рдореЗрдВ рдмрддрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╡реЗ рдЬрд╛рди рд╕рдХреЗрдВ рдХрд┐ рдЬрдм рд╡реЗ рд╕рднреА рдкрд░рддреЛрдВ рд╕реЗ рдЕрдВрддрд┐рдо рдЖрд░реНрдЯрд┐рдлреИрдХреНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ рддреЛ рд╡реЗ рднреВрд▓ рд╕рдХрддреЗ рд╣реИрдВ/рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ /this_is_the_tmp_explosion_folder_that_will_be_removed_from_your_final_container_image рдкрд░ рдЖрд░реЛрд╣рд┐рдд
рдХрд╛рдлреА рдЖрд╕рд╛рди....

@btrep рдореБрдЭреЗ рдЖрдкрдХрд╛ рд╕реЛрд░реНрд╕ рд▓реЗрдпрд░ рдЖрдЗрдбрд┐рдпрд╛ рдХрд╛рдлреА рдкрд╕рдВрдж рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдкреИрдХреЗрдЬ рдкреНрд░рдмрдВрдзрдХреЛрдВ рдХреЗ рдПрд╕рдПрд╕рдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ, рдореБрдЭреЗ рдЕрд╕рд╣рдордд рд╣реЛрдирд╛ рдкрдбрд╝реЗрдЧрд╛ред

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

рдПрдХ рдЙрдкрдХрд░рдг рд╡реНрдпрд╛рдХрд░рдг/рдШреБрдорд╛рд╡рджрд╛рд░ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрдмрдХрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЕрднреА рддрдХ рдареАрдХ рдирд╣реАрдВ рд╣реБрдИ рд╣реИред

@yngndrw

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

http(s) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдиреАрдЪреЗ рдЦреАрдВрдЪреЗ рдЬрд╛рдиреЗ рдкрд░ рд╢реВрдиреНрдп рдХрд╛рд░рдг "super_awesome_ruby_lib" рдХреЛ рдирд┐рдЬреА рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд░реВрдмреА рд░рддреНрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдХреАрд░рд┐рдВрдЧ рд░рдЦрдиреЗ рдХрд╛ рдмреЗрд╣рддрд░ рддрд░реАрдХрд╛ рд╣реЛрдЧрд╛ред рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рдЬреНрдЮрд╛рдд рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА, рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рдВрдХреБрд▓ рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдпрд╣ рдХрдореЛрдмреЗрд╢ apt-get рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЪреАрдЬреЛрдВ рдХреЛ рдХреИрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ http рдкреНрд░реЙрдХреНрд╕реА рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

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

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

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

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

рдЗрд╕ рдзрд╛рдЧреЗ рдореЗрдВ рдпрд╣ рдХреНрдпреЛрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЗрд╕рдХреЗ рдХрдИ рдЕрдиреНрдп рдЙрджрд╛рд╣рд░рдг рднреА рд╣реИрдВред "рдареАрдХ рд╣реИ, рдЖрдкрдХреЛ рдмрд╕ рдпрд╣ рдХрд╣рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдЯреВрд▓ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ" рд╕рдорд╕реНрдпрд╛ рдХреЛ рджреВрд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдХреЗрд╡рд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рджреВрд░ рдХрд░реЗрдЧрд╛ред

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

рдореЗрд░реЗ рд▓рд┐рдП рдореБрдЭреЗ рднреА рдЪрд╛рд╣рд┐рдП docker build -v ред

рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдо рдПрдХ рдЫрд╡рд┐ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рдЙрддреНрдкрд╛рдж рдХреА рдкреВрд░реНрд╡-рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рд╕реНрдерд╛рдкрдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ, рдФрд░ рдЗрдВрд╕реНрдЯреЙрд▓рд░ 2GB рд╕реЗ рдЕрдзрд┐рдХ рд╣реИред рд╣реЛрд╕реНрдЯ рд╡реЙрд▓реНрдпреВрдо рдорд╛рдЙрдВрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг, рд╣рдо рдЗрдВрд╕реНрдЯреЙрд▓рд░ рдХреЗ рд╕рд╛рде рдЫрд╡рд┐ рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИрдВ, рднрд▓реЗ рд╣реА рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реЛрд╕реНрдЯ рдУрдПрд╕ рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рдЪреБрдХреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╣рдо рд╡рд┐рднрд┐рдиреНрди рдЯреВрд▓/рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ https cert/auth рдХреЗ рд╕рд╛рде рдкреНрд░реЙрдХреНрд╕реА , рдпрд╛ рд╢рд╛рдпрдж рдереЛрдбрд╝рд╛ рдзрд╛рд░ рднреАред

рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдореЗрдВ docker build рдХреЗ рджреМрд░рд╛рди рдЗрдВрд╕реНрдЯреЙрд▓рд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП wget рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рдХрд┐ рдмрд╣реБрдд рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рд╡рд╛рддрд╛рд╡рд░рдг рд╣реИ, рдмрд╣реБрдд рдХрдо рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ, рдЕрдзрд┐рдХ рд╕рдордп рд▓реЗрдиреЗ рд╡рд╛рд▓рд╛ рдФрд░ рддреНрд░реБрдЯрд┐ рдкреНрд░рд╡рдг рд╣реИред

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

@thaJeztah рдРрд╕рд╛ рд╣реЛрдиреЗ рдХрд╛ рдХреЛрдИ рдореМрдХрд╛?

Fwiw рдпрд╣реА рдПрдХрдорд╛рддреНрд░ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореИрдВ docker . рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ (рдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛)

рд╣рдо docker рдХреЗ Red Hat рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдПрдХ рдкреИрдЪ рд░рдЦрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ -v рд╡рд┐рдХрд▓реНрдк рд╢рд╛рдорд┐рд▓ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рд╕рд╣реА рд╕рдорд╛рдзрд╛рди рдУрд╕реАрдЖрдИ рдХрдВрдЯреЗрдирд░ рдЗрдореЗрдЬ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирдП рдФрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдлрд┐рд░ рдбреЙрдХрд░ рдмрд┐рд▓реНрдбред

@rhatdan рдЖрд░рдПрдЪрдИрдПрд▓ рдпрд╛ рдлреЗрдбреЛрд░рд╛?

рд╣рдордиреЗ docker рдХреЗ рдЕрдкрдиреЗ рдЖрдВрддрд░рд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд░реЗрдЬрд┐рди.io рдкрд░ docker рдмрд┐рд▓реНрдб рдХреЗ -v рд╡рд┐рдХрд▓реНрдк рдХреЛ рднреА рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИред рдЖрдк рдпрд╣рд╛рдБ рдЕрдВрддрд░ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ https://github.com/resin-io/docker/commit/9d155107b06c7f96a8951cbbc18287eeab8f60cc

@rhatdan @petrosagg рдХреНрдпрд╛ рдЖрдк рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреАрдЖрд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ?

@jeremyherbert рдкреИрдЪ рдбреЙрдХрд░ рдбреЗрдореЙрди рдореЗрдВ рд╣реИ рдЬреЛ рдЖрд░рдПрдЪрдИрдПрд▓, рд╕реЗрдВрдЯреЛрд╕ рдФрд░ рдлреЗрдбреЛрд░рд╛ рдХреЗ рд╕рднреА рд╣рд╛рд▓ рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдЖрддрд╛ рд╣реИ ...

@grangert рд╣рдордиреЗ рдЗрд╕реЗ рдЕрддреАрдд рдореЗрдВ рдЬрдорд╛ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

@rhatdan рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕рдХрд╛ рд▓рд┐рдВрдХ рд╣реИ?

@runcom рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рд▓рд┐рдВрдХ рд╣реИ?

@thaJeztah рдХреНрдпрд╛ рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рд▓реЛрдЧреЛрдВ рдиреЗ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛ рд╣реЛрдЧрд╛?

рдпрд╣рд╛рдВ рдЙрди рдореМрдЬреВрджрд╛ рдореБрджреНрджреЛрдВ рдХреА рд╕реВрдЪреА рджреА рдЧрдИ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдЬрд┐рдирдХрд╛ рдЬрд╡рд╛рдм рдирд╣реАрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
https://github.com/docker/docker/issues/3949
https://github.com/docker/docker/issues/3156
https://github.com/docker/docker/issues/14251
https://github.com/docker/docker/issues/18603

рдЖрд░рдПрдЪрдИрдПрд▓/рд╕реЗрдВрдЯреЛрд╕/рдлреЗрдбреЛрд░рд╛ рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░рдорд╛рдгреБ рдкреИрдЪ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдпрд╣рд╛рдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИ:
http://www.projectatomic.io/blog/2016/08/docker-patches/

@daveisfera рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдХреЗрд╡рд▓ R рд╡реЙрд▓реНрдпреВрдо рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ RW рд╡реЙрд▓реНрдпреВрдо рдирд╣реАрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ @yngndrw рдФрд░ рдореЗрд░реЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

@grangert рдЖрдкрдХреЛ RW рд╡реЙрд▓реНрдпреВрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ? рдореИрдВ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓-рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдордЭрддрд╛ рд╣реВрдВред

рд╕реНрдХреАрдорд╛ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдПрдХ рдЕрдЪреНрдЫрд╛ рдХрд╛рд░рдг рд╣реЛрдЧрд╛ ...

11/01/2016 10:36 рдкреВрд░реНрд╡рд╛рд╣реНрди рдХреЛ, рдмреНрд░рд╛рдпрди рдЧреЛрдл рдиреЗ рд▓рд┐рдЦрд╛:

@grangert https://github.com/grangert рдЖрдкрдХреЛ RW рд╡реЙрд▓реНрдпреВрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ?
рдореИрдВ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓-рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдордЭрддрд╛ рд╣реВрдВред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/docker/docker/issues/14080#issuecomment -257582035,
рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AAHLZdp0D6fAtuNglajPBIwnpWGq3slOks5q5050gaJpZM4FIdOcред

рд╕реНрдХреЙрдЯ рдореИрдХрдХрд╛рд░реНрдЯреА

рд╕реНрдХреЙрдЯ [email protected]

http://crunchtools.com

@рдлрд╛рджрд░рд▓рд┐рдирдХреНрд╕

@ cpuguy83 RW рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓рд╛ ccache рд╣реЛрдЧрд╛

@ рдлрд╛рджрд░рд▓рд┐рдирдХреНрд╕ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рдЕрдиреБрд╕рд░рдг рдХрд░рддрд╛ рд╣реВрдВред рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рд╡реЙрд▓реНрдпреВрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реЛрдЧреА? рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдирд┐рд░реНрдорд╛рдг рдЪрд░рдг рдХреЗ рджреМрд░рд╛рди рдХреНрдпреЛрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?

рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИ - рдХреИрд╢рд┐рдВрдЧ рдкреИрдХреЗрдЬ рдЬреЛ ASP.Net 5 рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ рджреНрд╡рд╛рд░рд╛ рдбрд╛рдЙрдирд▓реЛрдб / рдЕрдкрдбреЗрдЯ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдкреИрдХреЗрдЬ рдкреНрд░рдмрдВрдзрдХ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХреИрд╢ рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЕрдВрддрддрдГ рдореБрдЭреЗ рдХреЗрд╡рд▓ рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рдмрд┐рд▓реНрдб рдХреЗ рдмреАрдЪ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдореИрдВ рдорд╛рдЙрдВрдЯ рдмрд╛рдВрдзреВрдВрдЧрд╛:

docker build -v /home/jenkins/pythonapp/cache/pip:/root/.cache/pip  -t pythonapp .
docker build -v /home/jenkins/scalaapp/cache/ivy2:/root/.ivy2  -t scalaapp .

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

11/01/2016 10:42 AM рдкрд░, рдмреНрд░рд╛рдпрди рдЧреЛрдл рдиреЗ рд▓рд┐рдЦрд╛:

@ рдлрд╛рджрд░рд▓рд┐рдирдХреНрд╕ https://github.com/fatherlinux рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рдЕрдиреБрд╕рд░рдг рдХрд░рддрд╛ рд╣реВрдВред
рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рд╡реЙрд▓реНрдпреВрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реЛрдЧреА? рд╕рд╛рде рд╣реА рдРрд╕рд╛ рдХреНрдпреЛрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
рдирд┐рд░реНрдорд╛рдг рдЪрд░рдг?

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/docker/docker/issues/14080#issuecomment -257583693,
рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AAHLZfhBG8RUWtqPD-6RaLC7uoCNc-3nks5q50_TgaJpZM4FIdOcред

рд╕реНрдХреЙрдЯ рдореИрдХрдХрд╛рд░реНрдЯреА

рд╕реНрдХреЙрдЯ [email protected]

http://crunchtools.com

@рдлрд╛рджрд░рд▓рд┐рдирдХреНрд╕

рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреА рд╕рд╛рдордЧреНрд░реА рдмрд┐рд▓реНрдб рдХреЛ рд╣реЛрд╕реНрдЯ рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рдХрд░реЗрдЧреА (рдЗрди рдорд╛рдЙрдВрдЯреНрд╕ рдХреЗ рдЧрд╛рдпрдм рд╣реЛрдиреЗ рд╕реЗ рдмрд┐рд▓реНрдб рд╡реИрд╕реЗ рднреА рдХрд╛рдо рдХрд░реЗрдЧрд╛, рдмрд╕ рдзреАрдорд╛)

NFS рдиреЗ рдЗрд╕реЗ 30 рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдХреА рддрд░рд╣ рд╣рд▓ рдХрд┐рдпрд╛...

11/01/2016 рдХреЛ 10:45 рдкреВрд░реНрд╡рд╛рд╣реНрди рдХреЛ, рдереЙрдорд╕ рдЧреНрд░рд┐рдВрдЧрд░ рдиреЗ рд▓рд┐рдЦрд╛:

рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреА рд╕рд╛рдордЧреНрд░реА рдирд┐рд░реНрдорд╛рдг рдХреЛ рдирд╣реАрдВ рд░реЛрдХреЗрдЧреА
рдирд┐рд╖реНрдХреНрд░рд┐рдп рдпрд╛ рдореЗрдЬрдмрд╛рди рдЖрд╢реНрд░рд┐рдд рд╣реЛрдирд╛ (рдЗрди рдЖрд░реЛрд╣реЛрдВ рдХреЗ рдЧрд╛рдпрдм рд╣реЛрдиреЗ рдХрд╛ рдХрд╛рд░рдг рд╣реЛрдЧрд╛
рд╡реИрд╕реЗ рднреА рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг)

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/docker/docker/issues/14080#issuecomment -257584576,
рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AAHLZS75Vq0BSEvUjI2oXORsS0el2mwOks5q51CQgaJpZM4FIdOcред

рд╕реНрдХреЙрдЯ рдореИрдХрдХрд╛рд░реНрдЯреА

рд╕реНрдХреЙрдЯ [email protected]

http://crunchtools.com

@рдлрд╛рджрд░рд▓рд┐рдирдХреНрд╕

NFS рдиреЗ рдЗрд╕реЗ 30 рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдХреА рддрд░рд╣ рд╣рд▓ рдХрд┐рдпрд╛...

рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА рдирд╣реАрдВ

@grangert рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рд╡рд╣ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рдЧрд▓рдд рд╣реЛ рдЧрдпрд╛ред рдореИрдВ рдмрд╣реБрдд рдЬрд▓реНрджреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рдерд╛ рдФрд░ рдкрд░реНрдпрд╛рдкреНрдд рд╕рдВрджрд░реНрдн рдирд╣реАрдВ рджреЗ рд░рд╣рд╛ рдерд╛ред рдЧрдВрднреАрд░рддрд╛ рд╕реЗ, рд╣рдо рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдирдПрдлрдПрд╕ рдХреЛ рд╕реАрдЖрд░рдЖрдИрдУ рдХреЗ рд╕рдВрдпреЛрдЬрди рдореЗрдВ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВред

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

рдЗрд╕рд▓рд┐рдП, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ -v рдмрд┐рд▓реНрдб рдЯрд╛рдЗрдо рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде, рдПрдХ рдмрд┐рд▓реНрдб рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рд╣реЛрд╕реНрдЯ рдкрд░ рд▓реЙрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдЗрдВрдЯрд░рдиреЗрдЯ рдкреИрдорд╛рдиреЗ рдкрд░ рд╕реНрд╡рддрдВрддреНрд░ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рдЬреЛ рдПрдХ рд╣реА рд╕рд╛рдЗрдЯ рдпрд╛ рд╕реНрдерд╛рди рдкрд░ рдЕрдкрдиреЗ рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

@ рдлрд╛рджрд░рд▓рд┐рдирдХреНрд╕ рдореИрдВ рдХреИрд╢ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд▓реЗрдиреЗ рдФрд░ рдПрд╕ 3 рдореЗрдВ рдЕрдкрд▓реЛрдб/рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧрд┐рдЯрд▓реИрдм рдпрд╛ рдЯреНрд░реИрд╡рд┐рд╕ рдХреИрд╢рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ

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

рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ 1TB рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдПрдХ MySQL рдЧреИрд▓реЗрд░рд╛ рдХреНрд▓рд╕реНрдЯрд░ рдерд╛ рдФрд░ рдореИрдВ рдПрдХ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдФрд░ рд╡реЗ рд╕рднреА рдХрдВрдЯреЗрдирд░реЛрдВ рдореЗрдВ рд╣реИрдВред рдХрдВрдЯреЗрдирд░реАрдХреГрдд/рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯреЗрдб рдорд▓реНрдЯреА-рдиреЛрдб, рд╢рд╛рд░реНрдб рдЧреИрд▓реЗрд░рд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдореИрдВ рдкреНрд░рддреНрдпреЗрдХ рдЕрдкрдЧреНрд░реЗрдб рдХреЗ рджреМрд░рд╛рди рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕реНрдХреАрдорд╛ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

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

@grangert рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдЬреЛрдбрд╝рдирд╛ рднреВрд▓ рдЧрдпрд╛, рдлрд┐рд░ рд╕реНрдиреИрдкрд╢реЙрдЯ рдХреЛ рддреНрдпрд╛рдЧ рджреЗрдВ рдЬреЛ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ ... рдореИрдВ рдПрдХ рдмрд┐рд▓реНрдб рдФрд░ рдЯреЗрд╕реНрдЯ рдЗрд╡реЗрдВрдЯ рдХреЛ рдЕрд▓рдЧ рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ ...

@ рдлрд╛рджрд░рд▓рд┐рдирдХреНрд╕ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдСрд░реНрдереЛрдЧреЛрдирд▓ рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИ ...

@grangert рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА рдирд╣реАрдВ рд╣реИред рдХреНрдпрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдУрд░реНрдереЛрдЧреЛрдирд▓? рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди -v рдХреЗ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдСрд░реНрдереЛрдЧреЛрдирд▓, рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдЗрд╕ рдмрд╛рддрдЪреАрдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдордЭрд╛ рд╣реИ?

рдЗрд╕ рдзреНрд╡рдЬ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдХреБрдЫ рднрд┐рдиреНрди рдЙрдкрдпреЛрдЧ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣реЗ рд╣реИрдВред

  • рдПрдХ рдХреИрд╢, рдбреЙрдХрдЯрд░ рдмрд┐рд▓реНрдб рд╕рд░реНрд╡рд░ рдХреЗ рдмреАрдЪ рд╕рд╛рдЭрд╛ рдХрд░реЗрдВ
  • рдПрдХ ADD рдЬреИрд╕рд╛ рдХреАрд╡рд░реНрдб рдЬреЛ рдХреЗрд╡рд▓ рдПрдХ Dockerfile рдХреЗ 'рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди' рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдбрд╝реА рдлрд╝рд╛рдЗрд▓ рдЬреЛрдбрд╝реЗрдВ, рдлрд┐рд░ рдЗрд╕реЗ рдЫрд╡рд┐рдпреЛрдВ рд╕реЗ рдмрд╛рд╣рд░ рдХрд░ рджреЗрдВред
  • рдПрдХ ADD+RUN рдЬреИрд╕реЗ рдХреАрд╡рд░реНрдб рдЬреЛ рд╕рднреА рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдбрд╝реА рдлрд╝рд╛рдЗрд▓ рдЬреЛрдбрд╝реЗрдВ, рдлрд┐рд░ рдПрдХ рдЪрд░рдг рдЪрд▓рд╛рдПрдВ рдФрд░ рдЫрд╡рд┐ рдореЗрдВ рдХрд┐рд╕реА рднреА рдмрджрд▓рд╛рд╡ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░реЗрдВ - рдПрдХ рдЪрд░рдг рдореЗрдВ ADD+RUN рдлрд┐рд░ рдПрдХ рдкрд░рдд рдЫреЛрдбрд╝реЗрдВред

рдмрд╛рдж рдХреЗ рджреЛ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓реЛрдВ рдХреЛ рджреЛ рдирдП рдЦреЛрдЬрд╢рдмреНрджреЛрдВ рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рд╕рдлрд╛рдИ рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

BUILDCONSTFILE <path>

рдкреНрд░рддреНрдпреЗрдХ рд░рди рд╕реЗ рдкрд╣рд▓реЗ COPY <path> рдЪрд▓рд╛рдПрдЧрд╛, рдФрд░ рдмрд╛рдж рдореЗрдВ рдЫрд╡рд┐ рд╕реЗ <path> рд╣рдЯрд╛ рджреЗрдЧрд╛ред

TEST <cmd> WITH <paths>

рдЬреЛ рдкрдереЛрдВ рдХреЛ рдХреЙрдкреА рдХрд░реЗрдЧрд╛, рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдЧрд╛, рдлрд┐рд░ 0 рдирд┐рдХрд╛рд╕ рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде рдореВрд▓ рдЫрд╡рд┐ рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдЬрд╛рд░реА рд░рдЦреЗрдЧрд╛, рдЕрдиреНрдпрдерд╛ рдирд┐рд░реНрдорд╛рдг рдХреЛ рд░реЛрдХ рджреЗрдЧрд╛

рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд░реАрдХреНрд╖рдг ... рдХреЗ рд╕рд╛рде рдПрдХ рдФрд░ рд╕реАрдЖрдИ рдЪрд░рдг рдореЗрдВ рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЗ рдХрдВрдЯреЗрдирд░ рдХрд╛ рд╕рдордЧреНрд░ рд░реВрдк рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд░рддрд╛ рд╣реИ

рдореБрдЭреЗ рдЗрд╕рдХреЗ рд╕рд╛рде рдкреНрд░рд╕реНрддрд╛рд╡рдирд╛ рджреЗрдВ: рдореИрдВ _рдерд┐рдВрдХ_ рдореИрдВ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП --mount рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд╕рд╛рде рдареАрдХ рд╣реВрдВ ("-v" рд╢рд╛рдпрдж рдЗрддрдирд╛ рдЕрдзрд┐рдХ рдирд╣реАрдВ)ред рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ 100% рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ, рдХреИрд╢рд┐рдВрдЧ рдХреЛ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ (рдпрд╛ рд╕рдВрднрд╛рд▓рд╛ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИ), рдЖрджрд┐ред

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

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

@ cpuguy83 рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдореЗрд░реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЛ рдЦрддреНрдо рдХрд░ рджреЗрдЧрд╛ред рдмрд╕ рдЗрддрдирд╛ рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдБ, рдХреНрдпрд╛ рдЖрдкрдХрд╛ рдорддрд▓рдм --mount рдХрд╛ рдорддрд▓рдм рдХреЗрд╡рд▓ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ? рдФрд░ -v рдкрдврд╝рдиреЗ/рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП?

@ cpuguy83 рд╣рдо рдЬреНрдпрд╛рджрд╛рддрд░ "рдмрд┐рд▓реНрдбрд░" рдЪрд┐рддреНрд░ рднреА рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ IMHO рдПрдХ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рдкреИрдЯрд░реНрди рдмрди рд░рд╣рд╛ рд╣реИ ...

@ рдлрд╛рджрд░рд▓рд┐рдирдХреНрд╕ рдЭреБрдВрдб рд╕реЗрд╡рд╛рдПрдВ рдФрд░ рдЕрдм (1.13 рдХреЗ рд▓рд┐рдП) docker run --mount $ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рдФрд░ рд▓рдЪреАрд▓рд╛ рд╣реИ: https://docs.docker.com/engine/reference/commandline/service_create/# /рдЬреЛрдбрд╝реЗрдВ -рдмрд╛рдЗрдВрдб-рдорд╛рдЙрдВрдЯ-рдпрд╛-рд╡реЙрд▓реНрдпреВрдо

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдбреЙрдХреНрд╕ рдореЗрдВ рддреАрд╕рд░реЗ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдорд╛рдЙрдВрдЯ рдЧрд╛рдпрдм рд╣реИ, tmpfs ред

рдЖрд╣, рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛, рдзрдиреНрдпрд╡рд╛рдж ...

11/01/2016 02:20 рдЕрдкрд░рд╛рд╣реНрди рдХреЛ, рдмреНрд░рд╛рдпрди рдЧреЛрдл рдиреЗ рд▓рд┐рдЦрд╛:

@рдлрд╛рджрд░рд▓рд┐рдирдХреНрд╕ https://github.com/fatherlinux рдЭреБрдВрдб рд╕реЗрд╡рд╛рдПрдВ рдФрд░ рдЕрдм
(1.13 рдХреЗ рд▓рд┐рдП) |рдбреЙрдХрд░ рд░рди| рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ |--рдорд╛рдЙрдВрдЯ| рдЬреЛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд╣реИ
рдФрд░ рд▓рдЪреАрд▓рд╛:
https://docs.docker.com/engine/reference/commandline/service_create/#/add -bind-mounts-or-volumes

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдбреЙрдХреНрд╕ рдореЗрдВ рддреАрд╕рд░реЗ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдорд╛рдЙрдВрдЯ рдирд╣реАрдВ рд╣реИ, |tmpfs|ред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/docker/docker/issues/14080#issuecomment -257648598,
рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AAHLZXv_VBfVi4WUAjVijE-SKR0ErRC4ks5q54L2gaJpZM4FIdOcред

рд╕реНрдХреЙрдЯ рдореИрдХрдХрд╛рд░реНрдЯреА

рд╕реНрдХреЙрдЯ [email protected]

http://crunchtools.com

@рдлрд╛рджрд░рд▓рд┐рдирдХреНрд╕

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

рд╣рдо Yocto рдЗрдореЗрдЬ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ NFS рд╕реНрдЯреЛрд░реЗрдЬ рдкрд░ рдПрдХ рд╕рд╛рдЭрд╛ рд╕реНрдЯреЗрдЯ рдХреИрд╢ рд╣реИред рдПрдХ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХреЗрд╕ рдПрдирдкреАрдПрдо рдХреИрд╢ рд╣реИ рддрд╛рдХрд┐ рдЖрдк рдкреВрд░реА RUN npm install рдкрд░рдд рдХреЛ рдЕрдорд╛рдиреНрдп рдХрд░ рд╕рдХреЗрдВ рд▓реЗрдХрд┐рди рдХреИрд╢реНрдб рдкреИрдХреЗрдЬ рдХреЗ рдХрд╛рд░рдг рдЗрд╕реЗ рддреЗрдЬреА рд╕реЗ рдлрд┐рд░ рд╕реЗ рдЧрдгрдирд╛ рдХрд░реЗрдВред

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

рдореБрдЭреЗ рдпрд╣ рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рднреА рд╡рд┐рдЪрд╛рд░ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд╛рд▓ рдлрд╝рд╛рдЗрд▓ рдХреА _copying_ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд╡рд╣ рдЖрджрд░реНрд╢ рд╕реЗ рдХрдо рд╣реИред рдЬрд┐рди рдлрд╝рд╛рдЗрд▓ рдЖрдХрд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдореЗрд░реА рд░реБрдЪрд┐ рд╣реИ, рд╡реЗ 10-40GB рдХреЗ рдХреНрд░рдо рдореЗрдВ рд╣реИрдВ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рдЕрдЪреНрдЫреЗ ssd рдХреЗ рд╕рд╛рде рдЬреЛ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдпрд╛ рджреЛ рдорд┐рдирдЯ рдХреА рдирдХрд▓ рдХреЗ рд▓рд╛рдпрдХ рд╣реИред рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдбреЛрдХрд░ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд╕рд╛рде рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рд╣реИ; рдореИрдВ рд╣рд░ рдмрд╛рд░ рдЕрдкрдиреА рдЫрд╡рд┐ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП 30GB рдирд╣реАрдВ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рдФрд░ рдЙрд╕ рдЕрддрд┐рд░рд┐рдХреНрдд рдЦрд╛рд▓реА рд╕реНрдерд╛рди рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд╕реНрдХреНрд╡реИрд╢ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред

рд╣рдо рдЗрд╕рдХреЗ рд▓рд┐рдП рдЬреЛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЙрд╕рдХреЗ рд▓рд┐рдП рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╡реЙрд▓реНрдпреВрдо рд╣реИ рдЬрд┐рд╕рдореЗрдВ yocto рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рд╕реЗ sstate caches рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдЬреЛ рдХрд┐ рдмрд┐рд▓реНрдб рдореЗрдВ RW рдмрд╛рдЗрдВрдб-рдорд╛рдЙрдВрдЯреЗрдб рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХрд┐рд╕реА рднреА рдХреИрд╢ рдорд┐рд╕ рдХреА рдЧрдгрдирд╛ рдмрд┐рд▓реНрдб рдХреЗ рджреМрд░рд╛рди рдХреА рдЬрд╛рдПрдЧреА рдФрд░ рднрд╡рд┐рд╖реНрдп рдХреЗ рд▓рд┐рдП sstate рдореЗрдВ рд╕реЗрд╡ рдХреА рдЬрд╛рдПрдЧреАред рд╣рдорд╛рд░реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдВ рднреА ~ 30GB рдкрд░ рд╣реИрдВ рдЗрд╕рд▓рд┐рдП рд╣реИрд╢ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдореЗрдВ рднреА рдХреБрдЫ рд╕рдордп рд▓рдЧреЗрдЧрд╛ред

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

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

@petrosagg @zrml @thaJeztah рд╣рдо рдЬреЛ рдЬрд╛рдирддреЗ рд╣реИрдВ рд╡рд╣ рд╣реИ:

  • рдпрджрд┐ рд╣рдо #7115 #3156 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд░рд┐рдорд╛рд░реНрдЬрди рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╣рдо рдЙрди рдореБрджреНрджреЛрдВ рдХреА рдПрдХ рд▓рдВрдмреА рд╕реВрдЪреА рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЗрд╕реА рд╕рдорд╕реНрдпрд╛ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рддреЗ рд╣реБрдП рдХрдИ рд╡рд░реНрд╖ рдкреБрд░рд╛рдиреЗ рд╣реИрдВред
  • рдЕрдзрд┐рдХрд╛рдВрд╢ рдпрд╛ рддреЛ рдкреБрдирд░реБрддреНрдкрд╛рджрди рдХрд╛рд░рдг (рдпрд╛ рдкреБрд░рд╛рдиреА Dockerfile syntax is frozen рдЯрд┐рдкреНрдкрдгреА рдХреЗ рд╕рд╛рде рдмрдВрдж рдХрд░ рджрд┐рдП рдЧрдП рдереЗ, рдФрд░ рдлрд┐рд░ HEALTHCHECK рдирд┐рд░реНрджреЗрд╢ рдЬреЛрдбрд╝реЗ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдлреНрд░реАрдЬ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рд▓реЗрдХрд┐рди рдореБрджреНрджреЗ рдмрдВрдж рд░рд╣реЗ)
  • рдЗрд╕ рдореБрджреНрджреЗ рдиреЗ рдХрдИ рдЯреАрдореЛрдВ рдХреЛ рдХрдИ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рджреИрдирд┐рдХ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдЕрдЪреНрдЫреА рдХрдВрдЯреЗрдирд░ рдЙрдкрдпреЛрдЧрд┐рддрд╛/рдЙрддреНрдкрд╛рджрдХрддрд╛ рд░рдЦрдиреЗ рд╕реЗ рд░реЛрдХ рджрд┐рдпрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ @btrep рдиреЗ рдХрд╣рд╛ рдХрд┐ рдпрд╣ рдирд░рдХ рд╣реИ
  • рдбреЙрдХрд░ рд▓реЛрдЧ рдЗрд╕ рдореБрджреНрджреЗ рд╕реЗ рдЕрд╡рдЧрдд рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдУрд╣ рдорд╛рдп рдбреЙрдХрд░ рдмрд┐рд▓реНрдб рдЯреВрдЯ рдЬрд╛рдПрдЧрд╛! рд╕рд╛рдЭрд╛ рдХреИрд╢ рдХреЗ рдХрд╛рд░рдг рд╕рдорд╕реНрдпрд╛рдПрдВ рдЬреЛ рдЕрдЪреНрдЫреА рдирд╣реАрдВ рд╣реИрдВ
  • рд▓реЗрдХрд┐рди рдбрд┐рд╕реНрдХ рдХреИрд╢ рд╕реЗ рдиреЗрдЯрд╡рд░реНрдХ рдХреИрд╢ рдореЗрдВ рдЬрд╛рдиреЗ рд╕реЗ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдмрд┐рд▓реНрдб рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдпрд╣ рдПрдХ рдорд╣рд┐рдорд╛рдордВрдбрд┐рдд рдХреИрд╢-рдУрд╡рд░-http рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдЪреАрдЬреЛрдВ рдХреЛ рдмрджрддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ (рд╣рд░ рдмрд┐рд▓реНрдб рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдиреЗрдЯ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛, HTTPS, рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЖрдХрд╛рд░, рдХрдВрдЯреЗрдирд░ рдмрдирд╛рддреЗ рд╕рдордп рдбрд┐рд╕реНрдХ рдереНрд░реИрд╢рд┐рдВрдЧ, рд▓реЗрдпрд░ рдХреИрд╢рд┐рдВрдЧ, рдЬрдЯрд┐рд▓ рдмрд┐рд▓реНрдб рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрд╢рди, рдЖрджрд┐)

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

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

@rdsubhas рдХрд╛рдо рдкреВрд░рд╛ рд╣реЛрдиреЗ рдкрд░ рд▓рд┐рдВрдХ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?

@rdsubhas рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рд╛рд░рд╛рдВрд╢ рд╣реИред рдРрд╕рд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдзрд╛рдЧрд╛ рдбреБрдкреНрд▓реА/рд╡реЛрдВрдЯрдлрд┐рдХреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдмрдВрдж рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ @ cpuguy83 рд╕реЛрдЪрддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди --mount рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд╕рд╛рде рдареАрдХ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдкрдпреЛрдЧрдХреЗрд╕ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

рдореИрдВ рдЬреЛ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдкреНрд░рд╕реНрддрд╛рд╡ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

  1. рдбреЙрдХрд░рдлрд╛рдЗрд▓ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЛ рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИ
  2. рдмрд┐рд▓реНрдб рдХреЛ рдЕрдзрд┐рдХ рд╣реЛрд╕реНрдЯ рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рдмрдирд╛рддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣реИрдВ

рд╡рд┐рдЪрд╛рд░ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдХреМрди рд╕реЗ рдкреНрд░рддрд┐рд╡рд╛рдж рд╢реЗрд╖ рд╣реИрдВ? рдпрджрд┐ рдХреЛрдИ рдирд╣реАрдВ рд╣реИ рддреЛ рд╣рдореЗрдВ --mount рддрдВрддреНрд░ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдг рдкрд░ рдЪрд░реНрдЪрд╛ рд╢реБрд░реВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред

рдЙрд╕ рддрд░реНрдХ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ рдмрдирд╛рддрд╛ рд╣реИ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдирд┐рд░реНрднрд░ рдФрд░ рдЧреИрд░-рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ, рдореИрдВ рдЗрд╕ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд╕рд╛рде рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдЯреБрдХрдбрд╝реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реВрдВ:

# Install different software depending on the kernel version of the host
RUN wget http://example.com/$(uname -r)/some_resource
# example.intranet is only accessible from specific hosts
RUN wget http://example.intranet/some_resource
# get something from localhost
RUN wget http://localhost/some_resource
# gcc will enable optimizations supported by the host's CPU
RUN gcc -march=native .....
# node:latest changes as time goes by
FROM node
# ubuntu package lists change as time goes by
RUN apt-get update
# install different software depending on the docker storage driver
RUN if [ $(mount | head -n 1 | awk '{print $5}') == "zfs" ]; then .....; fi

рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рдЕрдЧрд░ рд╣рдо рд╕рд┐рд░реНрдл --mount рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдХреИрд╢ рдЕрдорд╛рдиреНрдпрддрд╛ ( --no-cache ) рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рджреЗрддреЗ рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдареАрдХ рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред рд╣рдо рд╕реАрдПрд▓рдЖрдИ рд╕реЗ рд╕рднреА рдпрд╛ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╕реЗ рдмреЗрд╣рддрд░ рдХреИрд╢ рдирд┐рдпрдВрддреНрд░рдг рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдЕрд▓рдЧ рд╡рд┐рд╖рдп рд╣реИред

рдореЗрд░рд╛ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛

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

рд╢рд░реНрддреЗрдБ

  1. рд╕рд░реНрдХрд┐рд▓рд╕реАрдЖрдИ рдореЗрдВ рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди рд╕рднреА рдЖрдВрддрд░рд┐рдХ рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрд╕рдПрд╕рдПрдЪ рдХреБрдВрдЬреА рд╣реИ
  2. GitHub рдЖрдВрддрд░рд┐рдХ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд╣реЛрд╕реНрдЯ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрдиреНрдп рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди рдЫрд╡рд┐ рдХреЗ рднреАрддрд░ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реЛрддреЗ рд╣реИрдВ

рд╡рд┐рдХрд▓реНрдк

  1. рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди рдЯреЛрдХрди рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП --build-arg рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ (рджреГрдврд╝рддрд╛ рд╕реЗ рдирд┐рд░рд╛рд╢)ред рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рдЖрдХрд░реНрд╖рдХ рдФрд░ рдЖрд╕рд╛рди рд╡рд┐рдХрд▓реНрдк рд╣реИ рдХреНрдпреЛрдВрдХрд┐ "рдпрд╣ рд╕рд┐рд░реНрдл рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ" рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЕрддрд┐рд░рд┐рдХреНрдд рдХрджрдо рдХреЗред
  2. рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдмрд┐рд▓реНрдб рд╕рдВрджрд░реНрдн рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, ADD рдФрд░ COPY рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрд░рддреЛрдВ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдкрд┐рдЫрд▓реА рдкрд░рддреЛрдВ рдХреЗ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдлрдВрд╕ рдЧрдпрд╛ рд╣реВрдВред

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

@misakwa рд╣рдо 1.14 рдореЗрдВ рдирд┐рд░реНрдорд╛рдг рдкрд░ рд░рд╣рд╕реНрдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВрдЧреЗред

@cpuguy83 рдХреЛ рд╕реБрдирдХрд░ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧрд╛ред рдореИрдВ рдЗрд╕ рдкрд░ рдирдЬрд░ рд░рдЦреВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдХрдм рд░рд┐рд▓реАрдЬ рд╣реЛрдЧреАред рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдореЗрд░реЗ рдХреБрдЫ рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣реЛрдВ рдХреЛ рд╕рд░рд▓ рдмрдирд╛ рджреЗрдЧрд╛ред

рд╣рдо рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ 1.14 рдореЗрдВ рдмрд┐рд▓реНрдб рдкрд░ рд░рд╣рд╕реНрдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВрдЧреЗред

рдХреНрдпрд╛ рдпрд╣ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдмрд┐рд▓реНрдб-рдЯрд╛рдЗрдо рдореИрдкрд┐рдВрдЧ рдХреЗ рдорд╛рдирдЪрд┐рддреНрд░рдг рдХреЗ рд▓рд┐рдП рднреА рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдЬреИрд╕реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП yarn-cache ?

BTW docker-compose рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░реЛрдбрдХреНрд╢рди рдЗрдореЗрдЬ рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рдЗрдВрдЯрд░рд╕реНрдЯрд┐рдВрдЧ рддрд░реАрдХрд╛ рд╣реИ, рдореИрдВрдиреЗ рдЗрд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдФрд░ рдХрд╛рдлреА рдкреНрд░рднрд╛рд╡реА рдкрд╛рдпрд╛:

рддреЛ рдЖрдкрдиреЗ рдлрд╝рд╛рдЗрд▓ docker-compose.build.yml рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд▓рд┐рдЦреА рд╣реИ:

services: 
  my-app:
    image: mhart/alpine-node:7.1.0
    container_name: my-app-build-container # to have fixed name
    volumes:
    - ${YARN_CACHE}:/root/.cache/yarn # attach yarn cache from host
    - ${HOME}/.ssh:/.ssh:ro    # attach secrets
    - ./:/source
    environment: # set any vars you need
     TEST_VAR: "some value"    
    ports:
    - "3000"
    working_dir: /app/my-app # set needed correct working dir even if if doesn't exist in container while build type
    command: sh /source/my-app.docker.build.sh # build script

1) рдЖрдк рдбреЙрдХрдЯрд░ рдХрдВрдкреЛрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдВрдЯреЗрдирд░ рдмрдирд╛рддреЗ рд╣реИрдВ:

$ docker-compose -f docker-compose.build.yml up --force-recreate my-app

рдпрд╣ рдХрдВрдЯреЗрдирд░ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рд╢реЗрд▓ рдмрд┐рд▓реНрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рддрд╛ рд╣реИ my-app.docker.build.sh , рдореИрдВ Dockerfile рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рдФрд░ рдмрд┐рд▓реНрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╕рдм рдХреБрдЫ рдХрд░рддрд╛ рд╣реВрдВ:

  • рдЖрд╡рд╢реНрдпрдХ рдУрдПрд╕ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
  • рдЖрд╡рд╢реНрдпрдХ рд╕реНрд░реЛрдд рдХреЛрдб рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдПрдБ (рдореИрдк рдХрд┐рдП рдЧрдП /source рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ)
  • рдирд┐рд░реНрднрд░рддрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
  • рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдирд┐рд░реНрдорд╛рдг/рд╕рдВрдХрд▓рди/рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВ
  • рд▓рдХреНрд╖реНрдп env рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдкреИрдХреЗрдЬ рдФрд░ рд╕рд╛рдорд╛рди рдХреЛ рд╣рдЯрд╛ рджреЗрдВ (рдЕрдВрддрд┐рдо рдЫрд╡рд┐ рдЖрдХрд╛рд░ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП)

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

docker commit -c "CMD npm run serve" my-app-build-container my-app-build-image:tag

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

@whitecolor рд╣рд╛рдБ рдЬреЛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ :) рдПрдХ рдЪреАрдЬрд╝ рдХреЛ рдЫреЛрдбрд╝рдХрд░: docker build рдмрд┐рд▓реНрдб рд╕рдВрджрд░реНрдн рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреНрд░рднрд╛рд╡реА рд╣реИред рдорд╛рдЙрдВрдЯреЗрдб рд╕реЛрд░реНрд╕ рд╡реЙрд▓реНрдпреВрдо рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рд░рд┐рдореЛрдЯ рдбреЙрдХрд░ рдбреЗрдореЙрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд▓реЛ-рдкрд╛рд╡рд░/рдмреИрдВрдбрд╡рд┐рдбреНрде рд▓реИрдкрдЯреЙрдк рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЙрдб рдкрд░ рдбреЙрдХрд░-рдорд╢реАрди)ред рдЙрд╕рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдмреЛрдЭрд┐рд▓ docker run , docker cp , docker run , рдЖрджрд┐ docker рдХрдорд╛рдВрдб рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХрд░рдиреА рд╣реЛрдЧреА рдФрд░ рдлрд┐рд░ рдЕрдВрддрд┐рдо рдЫрд╡рд┐ рдХреЛ рд╕реНрдиреИрдкрд╢реЙрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣реИрдХреА рд╣реИред

рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рддреМрд░ рдкрд░ рдбреЙрдХрдЯрд░ рдмрд┐рд▓реНрдб рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд▓реЗрдпрд░рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕рдВрджрд░реНрдн рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддрд╛ рд╣реИ

@rdsubhas рд╣рд╛рдБ рдЖрдк рд╕рд╣реА рдХрд╣ рд░рд╣реЗ рд╣реИрдВ

@whitecolor рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд░рд▓ рдФрд░ рдкреНрд░рднрд╛рд╡реА рдЙрдкрд╛рдп рд╣реИред рдореИрдВрдиреЗ рд╕рд┐рд░реНрдл рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ 30-40 рдорд┐рдирдЯ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рд▓рдЧрднрдЧ 5 рдорд┐рдирдЯ рддрдХ рдХрд╛рдЯ рджрд┐рдпрд╛ред рдореИрдВ рдирд┐рд░реНрдорд╛рдг рд╕реБрд╡рд┐рдзрд╛ рдкрд░ --mount рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд▓рд┐рдП рддрддреНрдкрд░ рд╣реВрдВ рд▓реЗрдХрд┐рди рдЕрднреА рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рдорд╛рдзрд╛рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореЗрд░реА рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЛ рдЕрдирдмреНрд▓реЙрдХ рдХрд░рддрд╛ рд╣реИред

рдпрд╣ рдПрдХ рдЯрд┐рдкреНрдкрдгреА рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдЕрдВрдХ # 17745 рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝рд╛ рдерд╛ рдЬрд┐рд╕реЗ рдореИрдВ рд╕рдордЭ рдЧрдпрд╛ рдерд╛ рдХрд┐ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рд▓реЗрдХрд┐рди рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдЪрд┐рд╣реНрдирд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЙрд╕ рдмрд╛рдж рдХреЗ рдмрд┐рдВрджреБ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЧрд▓рдд рдерд╛: рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдореБрдЭреЗ рдмрдЧрдЬрд┐рд▓рд╛ рдЬреИрд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ "рд╕реЙрд▓реНрд╡реНрдб рдбреБрдкреНрд▓реАрдХреЗрдЯ" рдХреЗ рд░реВрдк рдореЗрдВ рдХреБрдЫ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдмрдЧ рдХреЗ рд╢реАрд░реНрд╖ рд╡рд┐рд╡рд░рдг рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдРрд╕рд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдХреЛрдИ рдорд╛рдЗрдВрдб рд░реАрдбрд░ рдирд╣реАрдВ рд╣реВрдВред (рддреЛ рдореЗрд░реА рдХреНрд╖рдорд╛ рдпрд╛рдЪрдирд╛ @grangert , рдореЗрд░реЗ рдкрд╛рд╕ рдЬрд╛рдирдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рдерд╛, рдЗрд╕ рдкреНрд░рдХрд╛рд░ 20pt рдлрд╝реЙрдиреНрдЯ рдореЗрдВ рдореБрдЭ рдкрд░ рдЪрд┐рд▓реНрд▓рд╛рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ - рдпрд╣ рдЕрддреНрдпрдзрд┐рдХ рдерд╛ред)


рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЬрд╣рд╛рдВ рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛, рд╡рд╣ рдбреЗрдмрд┐рдпрди рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд╣реЛрдЧрд╛: /var/cache/apt рдХреЛ рд╡реЙрд▓реНрдпреВрдо рдХреЗ рд░реВрдк рдореЗрдВ рдмрдврд╝рд╛рдирд╛, рдЗрд╕рд▓рд┐рдП рдЖрдк рдПрдХ рд╣реА .deb рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдмрд╛рд░-рдмрд╛рд░ рдбрд╛рдЙрдирд▓реЛрдб рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ "рдЕрд╕реАрдорд┐рдд" рдЗрдВрдЯрд░рдиреЗрдЯ рдХреЛрдЯрд╛ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдпрд╣рд╛рдВ рдСрд╕реНрдЯреНрд░реЗрд▓рд┐рдпрд╛ рдореЗрдВ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдЕрдЧрд░ рд╡рд╣рд╛рдВ рдерд╛, рддреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХреЗ рдЗрдВрддрдЬрд╛рд░ рдореЗрдВ рд╕рдордп рдмрд░реНрдмрд╛рдж рд╣реЛ рдЧрдпрд╛ред)

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

рдпрд╛ рдЖрдЬ рд░рд╛рдд, рдореИрдВ рдЕрдкрдиреЗ рд▓рд┐рдП рдХреБрдЫ Gentoo-рдЖрдзрд╛рд░рд┐рдд рдЪрд┐рддреНрд░ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ, рдореИрдВ рд╣реЛрд╕реНрдЯ рд╕реЗ /usr/portage рдорд╛рдЙрдВрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред Dockerfile рдХреЗ рд▓рд┐рдП рдпрд╣ рдорд╣рд╕реВрд╕ рдХрд░рдирд╛ рдХрдард┐рди рдирд╣реАрдВ рд╣реИ, "рдЕрд░реЗ, /usr/portage (рдХрдВрдЯреЗрдирд░ рдореЗрдВ) рдЦрд╛рд▓реА рд╣реИ, рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдкрдХрдбрд╝ рд▓реВрдВрдЧрд╛" рдЬрдм рд╡реЙрд▓реНрдпреВрдо рдорд╛рдЙрдВрдЯ рдХрд┐рдП рдмрд┐рдирд╛ рдЪрд▓ рд░рд╣рд╛ рд╣реЛ, рдпрд╛, рдпрд╣ рд╕рд┐рд░реНрдл рд╡реЙрд▓реНрдпреВрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдПрдХ рдирдИ рдкреНрд░рддрд┐ рд▓рд╛рдиреЗ рдореЗрдВ рд╕рдордп рдХреА рдмрдЪрдд рдХрд░рддрд╛ рд╣реИред

рдмреЙрд░реНрди рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЙрди рд╕реНрдорд╛рд░реНрдЯ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдПрдХ рдорд╛рдореВрд▓реА if рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рд╣реИ ... рдпрджрд┐ рд╡реЙрд▓реНрдпреВрдо рдорд╛рдЙрдВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рддрд░реНрдХ рдкрд╣рд▓реЗ рд╕реНрдерд╛рди рдкрд░ рдореМрдЬреВрдж рд╣реИред рдЕрднреА рдореЗрд░реА рдЬреЗрдиреЗрдЯреВ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рд╣рд░ рдмрд╛рд░ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП /usr/portage рдЦреАрдВрдЪрдирд╛ рдкрдбрд╝ рд░рд╣рд╛ рд╣реИ (рд╕реМрднрд╛рдЧреНрдп рд╕реЗ рджрд░реНрдкрдг рдореЗрд░реЗ рд▓реИрди рдкрд░ рд╣реИ) рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЙрд╕ рдПрдХ рдХрджрдо рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдорд┐рдирдЯ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИред

рдЗрддрдиреЗ рд╕рд╛рд░реЗ рдХрд╛рд░рдг рд╣реИрдВ рдХрд┐ рдпрд╣ рдПрдХ рд╕рд╛рд░реНрдердХ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреНрдпреЛрдВ рд╣реИ, рдФрд░ рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ # 7115 рдореЗрдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдиреЗрд╕реНрдЯреЗрдб рдмрд┐рд▓реНрдб рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред


@whitecolor рдХрд╛ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдРрд╕рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ, рддреЛ рдореИрдВ рдмрд┐рд▓реНрдб рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЙрдХрд░ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрд╛рд╣рд░реА Makefile рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

@sjlongland рдореИрдВ рдЖрдк рдкрд░ рдЪрд┐рд▓реНрд▓рд╛ рдирд╣реАрдВ рд░рд╣рд╛ рдерд╛, рдореИрдВ рдПрдХ рдмрдбрд╝рд╛ "рд░рд┐рдЬрд╝реЙрд▓реНрд╡реНрдб рдбреБрдкреНрд▓реАрдХреЗрдЯ" рдиреЛрдЯрд┐рд╕ рдкреЙрд▓реА-рдлрд┐рд▓рд┐рдВрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛

рдореИрдВ рдЕрдкрдиреЗ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдХрдВрдЯреЗрдирд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП docker рдФрд░ docker-compose рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдХрдВрдЯреЗрдирд░ рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕реЗрдЬ рд╣реИрдВ, рдЬреЛ рдЬреНрдпрд╛рджрд╛рддрд░ рдиреЛрдбрдЬреЗрдПрд╕ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЬрд╛рд╡рд╛ рдореЗрдВ рдорд╛рд╡реЗрди рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдПрдХ рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕ рд╣реИред
рд╣рд░ рдмрд╛рд░ рдЬрдм рд╣рдо рдЬрд╛рд╡рд╛ рдХрдВрдЯреЗрдирд░ рдХрд╛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдорд╛рд╡реЗрди рд╕реЗ рджрд╕рд┐рдпреЛрдВ рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЬрд╛рддреА рд╣реИрдВ; рдЗрд╕рдореЗрдВ рдХрдИ рдорд┐рдирдЯ рд▓рдЧрддреЗ рд╣реИрдВред рдлрд┐рд░ рдХреЛрдб рд▓рдЧрднрдЧ 15 рд╕реЗрдХрдВрдб рдореЗрдВ рдмрди рдЬрд╛рддрд╛ рд╣реИред

рдпрд╣ рдмрд╣реБрдд рдмрджрд╕реВрд░рдд рд╣реИ рдФрд░ рдпрд╣ рд╣рдорд╛рд░реА рд╕реАрдЖрдИ рд░рдгрдиреАрддрд┐ рдХреЛ рдХрд╛рдлреА рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред

рдЗрд╕ рдкрд░рд┐рджреГрд╢реНрдп рдореЗрдВ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдмрд┐рд▓реНрдб рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╡реЙрд▓реНрдпреВрдо рдЧреБрдо рдпрд╛ рдЦрд╛рд▓реА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдирд┐рд░реНрднрд░рддрд╛ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЬрд╛рдПрдЧреАред рдкреНрд░рдЬрдирди рдХреНрд╖рдорддрд╛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред

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

@stepps docker -compose рдХреЗ рдмрдЬрд╛рдп https://pypi.python.org/pypi/shipwright рджреЗрдЦреЗрдВ

рдореИрдВ рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдзрд╛рдЧреЗ рдХрд╛ рдкрд╛рд▓рди рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЕрдкрдиреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдвреВрдВрдв рд░рд╣рд╛ рд╣реВрдВред рдиреНрдпреВрдирддрдо рдкреНрд░рдпрд╛рд╕ рдХреЗ рд╕рд╛рде рд▓рдЪреАрд▓реЗ рддрд░реАрдХреЗ рд╕реЗ рдиреНрдпреВрдирддрдо рдХрдВрдЯреЗрдирд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ @edannenberg рджреНрд╡рд╛рд░рд╛ https://github.com/edannenberg/gentoo-bb рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд╕рдВрдж рд╣реИред

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

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

figlet рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рд╣реИ: -

рдмрд┐рд▓реНрдб.рдХреЙрдиреНрдлрд╝:

IMAGE_PARENT="gentoobb/glibc"

рдбреЙрдХрд░рдлрд╛рдЗрд▓.рдЯреЗрдореНрдкрд▓реЗрдЯ:

FROM ${IMAGE_PARENT}
ADD rootfs.tar /
USER figlet
CMD ["gentoo-bb"]
ENTRYPOINT ["figlet"]

Build.sh

PACKAGES="app-misc/figlet"

configure_rootfs_build() {
        useradd figlet
}

рдореБрдЭреЗ @whitecolor рдХрд╛ рд╕рдорд╛рдзрд╛рди рдкрд╕рдВрдж рд╣реИ, рдпрд╣ рдХреЗрд╡рд▓ рдбреЙрдХрд░ рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ рдФрд░ рдлрд┐рд░ рд╕рд░рд▓ рд╢реИрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпрд╛ рдХреБрдЫ рдФрд░ рдЬрд┐рд╕реЗ рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдореИрдВ gentoo-bb рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрдзрд┐рдХ рдкреВрд░реНрдг рд╣реИред рдЕрдзрд┐рдХ рдбреЗрд╡рд▓рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдЬреИрд╕реЗ рд╢рд╛рдЦрд╛рдУрдВ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд╕рд╛рде рд╢рд┐рдкрд░рд╛рдЗрдЯ рдЕрдЪреНрдЫрд╛ рджрд┐рдЦрддрд╛ рд╣реИред https://github.com/grammarly/rocker рднреА рджрд┐рд▓рдЪрд╕реНрдк рд▓рдЧрддрд╛ рд╣реИред рд╕рднреА рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдвреЗрд░ рдореЗрдВ рдмрд╕ рдПрдХ рдФрд░ рдЖрд╡рд╛рдЬ рдЬреБрдбрд╝ рдЧрдИред рдпрджрд┐ рд╣рдо рдмрд┐рд▓реНрдб рдкрд░ рд╕реНрдерд╛рдиреАрдп рд╡реЙрд▓реНрдпреВрдо рдорд╛рдЙрдВрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддреЛ рд╣рдорд╛рд░рд╛ рдмрд╣реБрдд рд╣реА рдЬрдЯрд┐рд▓ рджреЗрд╡ рд╡рд╛рддрд╛рд╡рд░рдг рдмрд╣реБрдд рд╕рд░рд▓ рд╣реЛрдЧрд╛ред

рдПрдХ http рд╕рд░реНрд╡рд░ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди рдПрдХ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдЪрд▓рд╛рдирд╛ рд╣реИ рдЬреЛ рд╕реНрдерд╛рдиреАрдп рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдбреЙрдХрд░ рдмрд┐рд▓реНрдб рдореЗрдВ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реНрд▓/wget рдЖрджрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдРрд╕реЗ рд╣реИрдХ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реЛрдВред

рдПрдХ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ .. рдореИрдВ рдПрдХ рдорд╛рд▓рд┐рдХрд╛рдирд╛ рдУрдПрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЙрдХрд░ рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ 10s рдХреЗ рд░реВрдк рдореЗрдВ рд╣реИрдВред рдЗрдВрд╕реНрдЯреЙрд▓ рдореАрдбрд┐рдпрд╛> 80GB рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕реЗ рдХреЗрд╡рд▓ docker рдмрд┐рд▓реНрдб рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдХреЙрдкреА рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рдПрдХ рдмрд╛рдЗрдВрдб рдорд╛рдЙрдВрдЯ рдЕрдзрд┐рдХ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ред

рдПрдХ рдФрд░: рдореЗрд░рд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЙрдкрдпреЛрдЧ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рднрдВрдбрд╛рд░ рдореЗрдВ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рд╡рд┐рддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рд╣рдо рдЬреАрдердм рд╕реЗ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдПрдХ рдФрд░ рдЧрд┐рдЯ рдХреНрд▓реЛрди рдЦреАрдВрдЪрддреЗ рд╣реИрдВред рдЙрдерд▓реЗ рдХреНрд▓реЛрди рдФрд░ рд╕рднреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА ...

рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдЕрднреА рдПрдХ rhel7 рдмрд┐рд▓реНрдб рд╣реЛрд╕реНрдЯ рдкрд░ [1] рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ Red Hat рдХреЗ docker daemon DOES рдореЗрдВ рдмрд┐рд▓реНрдб рдХреЗ рд▓рд┐рдП -v рд╡рд┐рдХрд▓реНрдк рд╣реИред рдореИрдВрдиреЗ CentOS/Fedora рдкрд░ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрдИ рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдЧрд╛ рдХрд┐ Fedora/CentOS рдХреЗ рдкрд╛рд╕ рд╢рд╛рдпрдж рдпрд╣ рднреА рд╣реИред рдпрд╣ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд╛рдпрдХ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрд░рдПрдЪрдИрдПрд▓ рдбреЗрд╡рд▓рдкрд░ рд╕рдмреНрд╕рдХреНрд░рд┐рдкреНрд╢рди рдЕрдм рдореБрдлреНрдд рд╣реИрдВ [2]:

@ рдлрд╛рджрд░рд▓рд┐рдирдХреНрд╕ рдлреЗрдбреЛрд░рд╛ рдХреЗ рддрд╣рдд 'рдбреЙрдХрд░ рдмрд┐рд▓реНрдб-рд╡реА' рднреА рдЙрдкрд▓рдмреНрдз рд╣реИред

@fatherlinux CentOS 7 рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдпрд╣ рд╢рд╛рдорд┐рд▓ рд╣реИред

+1 рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдбреЙрдХрд░ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╕реБрд╡рд┐рдзрд╛ рд╣реЛрдЧреАред

рд╕реЗрдВрдЯреЛрд╕ рдФрд░ рд▓рд┐рдирдХреНрд╕рдорд┐рдВрдЯ (рдЕрдм 17.03.1-рд╕реАрдИ рдЪрд▓ рд░рд╣рд╛ рд╣реИ) рджреЛрдиреЛрдВ рдкрд░ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХреНрдпрд╛ рдореБрдЭреЗ рдпрд╣рд╛рдВ рдХреБрдЫ рдпрд╛рдж рдЖ рд░рд╣рд╛ рд╣реИ? рдореБрдЭреЗ рд╡рд┐рдХрд▓реНрдк -v . рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗ рд░рд╣рд╛ рд╣реИ

рдЯрдХрд╕рд╛рд▓ рдкрд░

$ docker build --help

Usage:  docker build [OPTIONS] PATH | URL | -

Build an image from a Dockerfile

Options:
      --build-arg list             Set build-time variables (default [])
      --cache-from stringSlice     Images to consider as cache sources
      --cgroup-parent string       Optional parent cgroup for the container
      --compress                   Compress the build context using gzip
      --cpu-period int             Limit the CPU CFS (Completely Fair Scheduler) period
      --cpu-quota int              Limit the CPU CFS (Completely Fair Scheduler) quota
  -c, --cpu-shares int             CPU shares (relative weight)
      --cpuset-cpus string         CPUs in which to allow execution (0-3, 0,1)
      --cpuset-mems string         MEMs in which to allow execution (0-3, 0,1)
      --disable-content-trust      Skip image verification (default true)
  -f, --file string                Name of the Dockerfile (Default is 'PATH/Dockerfile')
      --force-rm                   Always remove intermediate containers
      --help                       Print usage
      --isolation string           Container isolation technology
      --label list                 Set metadata for an image (default [])
  -m, --memory string              Memory limit
      --memory-swap string         Swap limit equal to memory plus swap: '-1' to enable unlimited swap
      --network string             Set the networking mode for the RUN instructions during build (default "default")
      --no-cache                   Do not use cache when building the image
      --pull                       Always attempt to pull a newer version of the image
  -q, --quiet                      Suppress the build output and print image ID on success
      --rm                         Remove intermediate containers after a successful build (default true)
      --security-opt stringSlice   Security options
      --shm-size string            Size of /dev/shm, default value is 64MB
  -t, --tag list                   Name and optionally a tag in the 'name:tag' format (default [])
      --ulimit ulimit              Ulimit options (default [])
$ cat /etc/lsb-release 
DISTRIB_ID=LinuxMint
DISTRIB_RELEASE=18
DISTRIB_CODENAME=sarah
DISTRIB_DESCRIPTION="Linux Mint 18 Sarah"
$ docker version
Client:
 Version:      17.03.1-ce
 API version:  1.27
 Go version:   go1.7.5
 Git commit:   c6d412e
 Built:        Fri Mar 24 00:45:26 2017
 OS/Arch:      linux/amd64

Server:
 Version:      17.03.1-ce
 API version:  1.27 (minimum version 1.12)
 Go version:   go1.7.5
 Git commit:   c6d412e
 Built:        Fri Mar 24 00:45:26 2017
 OS/Arch:      linux/amd64
 Experimental: false

рд╕реЗрдВрдЯреЛрд╕ 7 . рдкрд░

# docker build --help

Usage:  docker build [OPTIONS] PATH | URL | -

Build an image from a Dockerfile

Options:
      --build-arg list             Set build-time variables (default [])
      --cache-from stringSlice     Images to consider as cache sources
      --cgroup-parent string       Optional parent cgroup for the container
      --compress                   Compress the build context using gzip
      --cpu-period int             Limit the CPU CFS (Completely Fair Scheduler) period
      --cpu-quota int              Limit the CPU CFS (Completely Fair Scheduler) quota
  -c, --cpu-shares int             CPU shares (relative weight)
      --cpuset-cpus string         CPUs in which to allow execution (0-3, 0,1)
      --cpuset-mems string         MEMs in which to allow execution (0-3, 0,1)
      --disable-content-trust      Skip image verification (default true)
  -f, --file string                Name of the Dockerfile (Default is 'PATH/Dockerfile')
      --force-rm                   Always remove intermediate containers
      --help                       Print usage
      --isolation string           Container isolation technology
      --label list                 Set metadata for an image (default [])
  -m, --memory string              Memory limit
      --memory-swap string         Swap limit equal to memory plus swap: '-1' to enable unlimited swap
      --network string             Set the networking mode for the RUN instructions during build (default "default")
      --no-cache                   Do not use cache when building the image
      --pull                       Always attempt to pull a newer version of the image
  -q, --quiet                      Suppress the build output and print image ID on success
      --rm                         Remove intermediate containers after a successful build (default true)
      --security-opt stringSlice   Security options
      --shm-size string            Size of /dev/shm, default value is 64MB
  -t, --tag list                   Name and optionally a tag in the 'name:tag' format (default [])
      --ulimit ulimit              Ulimit options (default [])
# docker version
Client:
 Version:      17.03.1-ce
 API version:  1.27
 Go version:   go1.7.5
 Git commit:   c6d412e
 Built:        Mon Mar 27 17:05:44 2017
 OS/Arch:      linux/amd64
# cat /etc/centos-release
CentOS Linux release 7.3.1611 (Core) 

@wilfriedroset CentOS 7 рдореЗрдВ, рдЧреИрд░-рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдбреЙрдХрд░ рдкреИрдХреЗрдЬ рд╡рд┐рдХрд▓реНрдк рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдИрдкреАрдИрдПрд▓ рднрдВрдбрд╛рд░ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред

рдзрдиреНрдпрд╡рд╛рдж @рдирд╛рдердирдЬреИрдХрд╕рдиред рдХреНрдпрд╛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░рд┐рд▓реАрдЬ рдореЗрдВ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдИрдЯреАрдП рд╣реИ?

@wilfriedroset AFAIK, рдХреЛрдИ рдИрдЯреАрдП рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдХрдИ рдмрд╛рд░) рдХрд┐ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ "рдкреЛрд░реНрдЯреЗрдмрд┐рд▓рд┐рдЯреА рдмрдирд╛рдиреЗ" рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдбреЙрдХрд░ рдореЗрдВ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдЙрд░реНрдл рдЖрдкрдХреЗ Dockerfiles рдХреЛ Docker рдмрд┐рд▓реНрдб рд╕реЗрд╡рд╛ рд╕рд╣рд┐рдд рдХрд╣реАрдВ рднреА рдЪрд▓рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдореЗрд░реЗ рдЕрдиреБрднрд╡ рдореЗрдВ, рд╕реАрдорд┐рдд рдмрд┐рд▓реНрдб рдкреЛрд░реНрдЯреЗрдмрд┐рд▓рд┐рдЯреА рд╡рд╣ рд╣реИ рдЬреЛ рдЧреНрд░рд╛рд╣рдХ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╡реЗ рдПрдХ рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг/рдЦреЗрдд рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдирд┐рд░реНрдорд╛рдг рд╣рдореЗрд╢рд╛ рдЙрд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗред -v рдмрд┐рд▓реНрдб рд╡рд┐рдХрд▓реНрдк рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ рд░реЛрдХрддрд╛ рд╣реИред

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

рдЖрд░рдПрдЪрдИрдПрд▓ 7.3 . рдкрд░
````
[ рд░реВрдЯ@rhel7 ~]# рдбреЙрдХрд░ рдмрд┐рд▓реНрдб --help

рдЙрдкрдпреЛрдЧ: рдбреЛрдХрд░ рдмрд┐рд▓реНрдб [рд╡рд┐рдХрд▓реНрдк] рдкрде | рдпреВрдЖрд░рдПрд▓ | -

Dockerfile рд╕реЗ рдПрдХ рдЫрд╡рд┐ рдмрдирд╛рдПрдБ

рд╡рд┐рдХрд▓реНрдк:
--рдмрд┐рд▓реНрдб-рдЖрд░реНрдЧ рд╡реИрд▓реНрдпреВ рдмрд┐рд▓реНрдб-рдЯрд╛рдЗрдо рд╡реИрд░рд┐рдПрдмрд▓ рд╕реЗрдЯ рдХрд░реЗрдВ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ [])
--cgroup-рдкреИрд░реЗрдВрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрдВрдЯреЗрдирд░ рдХреЗ рд▓рд┐рдП рд╡реИрдХрд▓реНрдкрд┐рдХ рдкреИрд░реЗрдВрдЯ cgroup
--cpu-рдЕрд╡рдзрд┐ int CPU CFS (рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрдЪрд┐рдд рдЕрдиреБрд╕реВрдЪрдХ) рдЕрд╡рдзрд┐ рдХреЛ рд╕реАрдорд┐рдд рдХрд░реЗрдВ
--cpu-quota int CPU CFS (рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрдЪрд┐рдд рдЕрдиреБрд╕реВрдЪрдХ) рдХреЛрдЯрд╛ рдХреЛ рд╕реАрдорд┐рдд рдХрд░реЗрдВ
-c, --cpu-shares int CPU рд╢реЗрдпрд░ (рд╕рд╛рдкреЗрдХреНрд╖ рднрд╛рд░)
--cpuset-cpus рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реАрдкреАрдпреВ рдЬрд┐рд╕рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрди рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ (0-3, 0,1)
--cpuset-mems рд╕реНрдЯреНрд░рд┐рдВрдЧ MEMs рдЬрд┐рд╕рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрди рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ (0-3, 0,1)
--disable-content-trust рдЫрд╡рд┐ рд╕рддреНрдпрд╛рдкрди рдЫреЛрдбрд╝реЗрдВ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕рддреНрдп)
-f, --file string Dockerfile рдХрд╛ рдирд╛рдо (рдбрд┐рдлрд╝реЙрд▓реНрдЯ 'PATH/Dockerfile' рд╣реИ)
--force-rm рд╣рдореЗрд╢рд╛ рдордзреНрдпрд╡рд░реНрддреА рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрдВ
--рд╕рд╣рд╛рдпрддрд╛ рдкреНрд░рд┐рдВрдЯ рдЙрдкрдпреЛрдЧ
--рдЖрдЗрд╕реЛрд▓реЗрд╢рди рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрдВрдЯреЗрдирд░ рдЖрдЗрд╕реЛрд▓реЗрд╢рди рдЯреЗрдХреНрдиреЛрд▓реЙрдЬреА
--рд▓реЗрдмрд▓ рдорд╛рди рдЫрд╡рд┐ рдХреЗ рд▓рд┐рдП рдореЗрдЯрд╛рдбреЗрдЯрд╛ рд╕реЗрдЯ рдХрд░реЗрдВ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ [])
-рдПрдо, --рдореЗрдореЛрд░реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдореЛрд░реА рд▓рд┐рдорд┐рдЯ
--рдореЗрдореЛрд░реА-рд╕реНрд╡реИрдк рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реНрд╡реИрдк рд╕реАрдорд╛ рдореЗрдореЛрд░реА рдкреНрд▓рд╕ рд╕реНрд╡реИрдк рдХреЗ рдмрд░рд╛рдмрд░: рдЕрд╕реАрдорд┐рдд рд╕реНрд╡реИрдк рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП '-1'
--no-cache рдЫрд╡рд┐ рдмрдирд╛рддреЗ рд╕рдордп рдХреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ
--pull рд╣рдореЗрд╢рд╛ рдЫрд╡рд┐ рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЦреАрдВрдЪрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ
-q, --quiet рдмрд┐рд▓реНрдб рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рд░реЛрдХреЗрдВ рдФрд░ рд╕рдлрд▓рддрд╛ рдкрд░ рдЫрд╡рд┐ рдЖрдИрдбреА рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ
--rm рд╕рдлрд▓ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рдж рдордзреНрдпрд╡рд░реНрддреА рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрдВ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕рддреНрдп)
--shm- рдЖрдХрд╛рд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ /dev/shm рдХрд╛ рдЖрдХрд╛рд░, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди 64MB . рд╣реИ
-t, --tag рдорд╛рди рдирд╛рдо рдФрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ ' рдирд╛рдо: рдЯреИрдЧ ' рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдПрдХ рдЯреИрдЧ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ [])
--ulimit рдорд╛рди Ulimit рд╡рд┐рдХрд▓реНрдк (рдбрд┐рдлрд╝реЙрд▓реНрдЯ [])
-v, --volume рдорд╛рди рдмрд┐рд▓реНрдб-рдЯрд╛рдЗрдо рдмрд╛рдЗрдВрдб рдорд╛рдЙрдВрдЯ рд╕реЗрдЯ рдХрд░реЗрдВ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ [])
```

рд╕реАрдЖрдИ рдмрд┐рд▓реНрдбрд┐рдВрдЧ рдиреЛрдб рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдкрд░ рдПрдХ рдФрд░ рдЙрдкрдпреЛрдЧ рдХреЗрд╕ рд╕рднреА рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдмрдирд╛рддреЗ рд╕рдордп рд╕реАрдЖрдИ рдХреЗ yarn рдХреИрд╢ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рд╣реИред

+1: рдиреЛрдб_рдореЙрдбреНрдпреВрд▓реНрд╕ рдХреЛ рдмрд╛рд░-рдмрд╛рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рднрдпрд╛рдирдХ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдиреЛрдбрдЬ рдорд╛рдЗрдХреНрд░реЛ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП
рдореИрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ nfs рдХреЗ рд╕рд╛рде рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ "рджреЛрд╣рд░рд╛рдиреЗ рдпреЛрдЧреНрдп" рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИ ...

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ #31257 рдФрд░ #32063 рдХреЗ рд╡рд┐рд▓рдп рдХреЗ рд╕рд╛рде рдпрд╣ рдФрд░ рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

#32507 . рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ

@ рдлрд╛рджрд░рд▓рд┐рдирдХреНрд╕ рдХреНрдпрд╛ рдЖрдк рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЬрдм рдЖрдк Dockerfile рдХреЗ рднреАрддрд░ COPY рдХрдорд╛рдВрдб рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ рддреЛ рдкреЛрд░реНрдЯреЗрдмрд┐рд▓рд┐рдЯреА рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИ? рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдореИрдВ рдПрдХ рдмрдбрд╝реА рдлрд╝рд╛рдЗрд▓ (рд╕рдордп рдЬрдЯрд┐рд▓рддрд╛ рдХрд╛рд░рдгреЛрдВ рд╕реЗ) рдХреА рдкреНрд░рддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдмрдЪрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдФрд░ рдХрдВрдЯреЗрдирд░ рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдб-рдЯрд╛рдЗрдо рд░реАрдб-рдУрдирд▓реА рд╡рд┐рдХрд▓реНрдк рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

@arunmk рджреЗрдЦреЗрдВ https://github.com/moby/moby/issues/32507

@arunmk @cpuguy83 рдмрд┐рд▓реНрдХреБрд▓ред рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд┐рд░реНрдорд╛рдг рдкрд░ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЙрдкреА рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдпрд╣ рдЗрд╕реЗ рдмрд╣реБрдд рдмрдбрд╝рд╛ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рдо рдХреЗрд╡рд▓ рдирд┐рд░реНрдорд╛рдг рд╕рдордп рдкрд░ рдЙрдкрд▓рдмреНрдз рдбреЗрдЯрд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдКрдкрд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЖрдк рдбреЙрдХрд░ рдбреЗрдореЙрди рдХреЗ Red Hat рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ -v рдмрд╛рдЗрдВрдб рдорд╛рдЙрдВрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рдбреЗрдЯрд╛ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рдХреЗрд╡рд▓ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ (рдкрд┐рдЫрд▓реЗ рд╕рдкреНрддрд╛рд╣ рдореБрдЭреЗ рдЬрд▓рд╛ рджрд┐рдпрд╛)ред

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

рдФрд░, рдЕрдЧрд░ рдЖрдкрдХреЛ рдмрд┐рд▓реНрдб рдлрд╛рд░реНрдо рдХреЗ рднреАрддрд░ рдкреЛрд░реНрдЯреЗрдмрд┐рд▓рд┐рдЯреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдПрдирдПрдлрдПрд╕ рдпрд╛ рдХреБрдЫ рдРрд╕реЗ рд╕реБрдЭрд╛рд╡ рджреВрдВрдЧрд╛ ....

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

рдПрдХ рдХрд╛рд▓реНрдкрдирд┐рдХ рдЙрджрд╛рд╣рд░рдг:

FROM fatImage AS build
COPY bigData /data
RUN some_stoff /data

FROM tinyImage
COPY --from=build /data/result

рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж @ рдлрд╛рджрд░рд▓рд┐рдирдХреНрд╕
@ cpuguy83 рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореБрдЭреЗ рдЕрдкрдиреЗ рдореБрджреНрджреЗ рдореЗрдВ рдФрд░ рд╡рд┐рд╡рд░рдг рдЬреЛрдбрд╝рдиреЗ рджреЗрдВ рдЬреЛ рдЕрд╕рд╛рдорд╛рдиреНрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИ: рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рд╣реИ рдЬреЛ 3.3GB рдлрд╝рд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдЗрд╕реЗ рдПрдХ RPM рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рдбреЙрдХрдЯрд░ рдХрдВрдЯреЗрдирд░ рдХреЗ рднреАрддрд░ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рджреЛ рдкреНрд░рддрд┐рдпрд╛рдВ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИрдВ: рдПрдХ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рдбреЙрдХрдЯрд░ рдХрдВрдЯреЗрдирд░ рдореЗрдВ, рдПрдХ рдбреЙрдХ рдХрдВрдЯреЗрдирд░ рдХреЗ рднреАрддрд░ рд╕реЗ рдЖрд░рдкреАрдПрдо рдХреЗ рднреАрддрд░ред рдЕрдм, рдореИрдВ рджреВрд╕рд░реА рдкреНрд░рддрд┐ рд╕реЗ рдмрдЪ рдирд╣реАрдВ рд╕рдХрддрд╛ред рдореИрдВ рдкрд╣рд▓реА рдкреНрд░рддрд┐ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдорд▓реНрдЯреА-рд╕реНрдЯреЗрдЬ рдмрд┐рд▓реНрдб рдХреЗ рд╕рд╛рде рднреА рдпрд╣ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред
рдореИрдВ рд╕рдордЭ рд╕рдХрддрд╛ рд╣реВрдБ рдХрд┐, рдпрджрд┐ рдмрдбрд╝реА рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдмрд╛рд░-рдмрд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛, рддреЛ рдмрд╣реБ-рдЪрд░рдгреАрдп рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдХреЗ рдЪрд▓рдиреЗ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ '1' рддрдХ рдХрдо рдХрд░ рджреЗрддреАред рдореИрдВ рдЗрд╕реЗ рдПрдХ рдмрд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рд╕рдВрдЦреНрдпрд╛ рдХреЛ '0' рддрдХ рдХрдо рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдХреНрдпрд╛ рдореИрдВ рдпрд╣ рд╕рдордЭрдиреЗ рдореЗрдВ рд╕рд╣реА рд╣реВрдБ рдХрд┐ рдпрд╣ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрдЧрд╛?

@arunmk рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдЗрд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рдмрд┐рд▓реНрдб рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдореЗрдВ рдХреЙрдкреА рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

@ cpuguy83 рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЕрднреА рдХреЗ рд▓рд┐рдП рдУрд╡рд░рд╣реЗрдб рд▓реЗрдирд╛ рд╣реИред рдХреНрдпрд╛ рдпрд╣ рдкрд░рдорд╛рдгреБ рд╣реЛрдирд╛ рд╣реИ?

@рдлрд╛рджрд░рд▓рд┐рдирдХреНрд╕

рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА рдХрд┐ рдЖрдкрдиреЗ рдХреНрдпрд╛ рдХрд╣рд╛, RHEL7 рдкрд░ -v рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдкрдврд╝рдиреЗ рдФрд░ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рд▓реЗрдХрд┐рди рдпрд╣ рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:

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

рдпрд╣ рдХреЗрд╡рд▓ рдЖрд░рдПрдЪрдИрдПрд▓ рдХреЗ рдбреЙрдХрдЯрд░ рдкреИрдХреЗрдЬ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдЧрд╛ рди рдХрд┐ рдбреЙрдХрд░ рдХреЗ рдкреИрдХреЗрдЬ рдХреЗ рд╕рд╛рдеред рдкреИрдЪ рдЕрдкрд╕реНрдЯреНрд░реАрдо рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

@рдлрд╛рджрд░рд▓рд┐рдирдХреНрд╕

рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА рдХрд┐ рдЖрдкрдиреЗ рдХреНрдпрд╛ рдХрд╣рд╛, RHEL7 рдкрд░ -v рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдкрдврд╝рдиреЗ рдФрд░ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рд▓реЗрдХрд┐рди рдпрд╣ рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:

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

@fcntl

рддреНрд░реБрдЯрд┐ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЖрдкрдХреЛ рдмрд╛рдЗрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЖрдкрдиреЗ рд╢рд╛рдпрдж -v /something /hostsomething:/containersomething рдХрд┐рдпрд╛ рд╣реИ

@thebigb рдФрд░ рд╢рд╛рдпрдж рдЕрдиреНрдп, рд╣рдордиреЗ docker рдмрд┐рд▓реНрдб рдХреЗ рджреМрд░рд╛рди ccache рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИред рд╣рдордиреЗ рдЗрд╕реЗ https://github.com/WebHare/ccache-memcached-server рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдпрджрд┐ рдпрд╣ рдЖрдкрдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рд╕реЗ рд╢рд╛рдпрдж рдпрд╣ рдЕрдкреНрд░рдЪрд▓рд┐рдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

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

рдПрдХ рдФрд░ рдЖрд╡рд╛рдЬ рдЬреВрд╕ред

рдореЗрд░рд╛ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛: рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдореИрдВ /root/.cache рдФрд░ /var/cache/apk рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░реЙрдХрд░ рдХреЗ MOUNT рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред

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

@embray @roxma рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ https://github.com/moby/moby/issues/32507 рдпрджрд┐ рд╡рд╣ рдЖрдкрдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░реЗрдЧрд╛; рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ

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

@gim913 рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдк рдХрд┐рд╕реА рд╕рдореБрджрд╛рдп рдореЗрдВ рдХреИрд╕реЗ рднрд╛рдЧ рд▓реЗрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдпреЛрдЧрджрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдпрд╣рд╛рдВ рд▓рд┐рдВрдХ рдХрд┐рдП рдЧрдП рдореМрдЬреВрджрд╛ рдкреНрд░рд╕реНрддрд╛рд╡реЛрдВ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдХреЗ рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЙрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рдЖрдкрдХреЗ рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓реЗ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред

@ gim913 рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рддрд░рдгреЛрдВ рдореЗрдВ рдбреЙрдХрдЯрд░ рдПрдХреАрдХрд░рдг рдХреЗ рдЗрд╕ рдЪрд░рдг рдореЗрдВ, рдмрджрд▓рддреЗ рдкрд░рд┐рд╡реЗрд╢ (рдпрд╛рдиреА рдбреЙрдХрдЯрд░ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЫреЛрдбрд╝рдирд╛) рдЖрдкрдХреЗ 'рдУрдПрд╕' рдХреЛ рдмрджрд▓рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╡рд┐рдШрдЯрдирдХрд╛рд░реА рд▓рдЧрддрд╛ рд╣реИ (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдорддрд▓рдм рд░реЗрдбрд╣реИрдЯ рдмрд┐рд▓реНрдб рдХреА рдУрд░ рдПрдХ рдЕрд▓рдЧ рд▓рд┐рдирдХреНрд╕ рд╡рд┐рддрд░рдг рд╕реЗ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╢рд╛рдорд┐рд▓ рд╣реИ -рд╡реА?)

рдХреНрдпрд╛ RedHat рдХреЗ рдбреЙрдХрд░ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд▓реЗрдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реЛрдЧрд╛? рд╢рд╛рдпрдж рдпрд╣рд╛рдВ рдХреЛрдИ рдЖрдкрдХреЛ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ '-v' рд╡рд┐рдХрд▓реНрдк рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдкреИрдЪ/рдХрд╛рдВрдЯреЗ/рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

@unilynx рдпрд╣рд╛рдБ рддреБрдо рдЬрд╛рдУ

рдореИрдВ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦ рд░рд╣рд╛ рдерд╛ рдЬреЛ wget рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рдереЗ рдФрд░ рдпрд╣рд╛рдВ рдЖрдП ... рдореЗрд░рд╛ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рд╕рдорд╛рди рд╣реИ ... рдореИрдВ рдПрдХ рдмрдбрд╝реЗ рдЯреИрд░рдмреЙрд▓ рдХреЛ рдЦреЛрд▓рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдФрд░ рдмрд╕ рдЗрд╕реЗ рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдореИрдВ docker рдлрд╝рд╛рдЗрд▓ w/рдЯрд╛рд░рдмреЙрд▓ рдпрд╛ рд╕реНрдерд╛рдиреАрдп рд╡реЗрдм рд╕рд░реНрд╡рд░ рд╕реЗ wget рдХрд░рдиреЗ рдореЗрдВ рд╕рдордп рдмрд░реНрдмрд╛рдж рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдорд╛рдЙрдВрдЯрд┐рдВрдЧ рдЬреИрд╕реЗ рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ w/docker рдХрдВрдкреЛрдЬрд╝ рдмрд┐рд▓реНрдб рд╕рдордп рдкрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдЪрд┐рдд рдЪреАрдЬрд╝ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред рдХреГрдкрдпрд╛ рдкреБрдиреАрдд рдХреЗ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдорд░реНрдЬ рдХрд░реЗрдВ рдпрджрд┐ рдпрд╣ рдареАрдХ рд▓рдЧреЗ :-)

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

рдпрд╣ рдЬреЛрдбрд╝рдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ рдФрд░ рдмреЗрд╣рдж рдЙрдкрдпреЛрдЧреА (рдпрд╛ рдПрдХ рдорд╛рдЙрдВрдЯ рдХрдорд╛рдВрдб, rocker рдлрд┐рд░ рд╕реЗ рджреЗрдЦреЗрдВ)ред рдХрд┐рддрдирд╛ рд╕рдордп (рд╕рдореБрджрд╛рдп рдореЗрдВ) рдЗрд╕ рдпрд╛ рдЗрд╕реА рддрд░рд╣ рдХреА рд▓рд╛рдкрддрд╛ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдЖрд╕рдкрд╛рд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рдореЗрдВ рдЦрд░реНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?

@awbacker рдорд▓реНрдЯреА-рд╕реНрдЯреИрдЧ рдмрд┐рд▓реНрдб рдЗрд╕реЗ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ рдЬрд╣рд╛рдБ рдЖрдк рдХреБрдЫ рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

FROM something AS my_wheels
RUN compile_all_the_things

FROM something
COPY --from my_wheels /wherever
RUN do_stuff_with_wheels

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

рдПрдХ рдкреНрд░рд╕реНрддрд╛рд╡ рднреА рд╣реИ рдЬреЛ RUN --mount рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ рдЬрд╣рд╛рдВ рдорд╛рдЙрдВрдЯ рд╕реНрдкреЗрдХ рдЗрд╕реЗ рдХреЙрдкреА рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп my_wheels рдмрд┐рд▓реНрдб рд▓рдХреНрд╖реНрдп рд╕реЗ рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХреЛ рдорд╛рдЙрдВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣реЗрдЧрд╛ред

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

@ cpuguy83 рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ - рдХрдо рд╕реЗ рдХрдо рдЧреНрд░реИрдбрд▓ рдЬрд╛рд╡рд╛ рдмрд┐рд▓реНрдб рдХреЗ рд▓рд┐рдПред рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдЖрдзрд╛рд░ рдбреЙрдХрд░ рдЫрд╡рд┐ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЧреНрд░реИрдбрд▓ рдЬрд╛рд░ рдлрд╛рдЗрд▓реЗрдВ рдкреВрд░реНрд╡-рдХреИрд╢реНрдб рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЗ рд╕реНрд░реЛрдд рдХрд╛ рдЧреНрд░реИрдбрд▓ рдмрд┐рд▓реНрдб рд╡рд╣ рд╣реИ рдЬреЛ рдЖрдкрдХреА рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рдХреИрд╢ рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддрд╛ рд╣реИред

@ cpuguy83 рдорд▓реНрдЯреА-рд╕реНрдЯреЗрдЬ рдкрд░рд┐рдгрд╛рдореА рдЫрд╡рд┐ рд╕реЗ рдХреЙрдкреА рдХрд┐рдП рдЧрдП рдкрд╣рд┐рдпреЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рдпрд╣реА @awbacker рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░/рдЬрд╣рд╛рдВ рднреА рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕рд╛рдордЧреНрд░реА рдХреИрд╢ рдХреА рдЬрд╛рдПрдЧреА рдФрд░ рдЫрд╡рд┐ рдХрд╛ рдЖрдХрд╛рд░ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

@BryanHunt рддреЛ рдЖрдкрдХреА рдмрд┐рд▓реНрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдбрд┐рдкреНрд╕ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд░рд╣рд╛ рд╣реИ? рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЧреНрд░реИрдбрд▓ рдХреЛ рдмрд┐рдирд╛ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдП рдмрд┐рдирд╛ рдЗрдиреНрд╣реЗрдВ рдХреИрд╢ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?

@ cpuguy83 рд╣рд╛рдВ, рдбрд┐рдкреНрд╕ рдХреЛ рдмрд┐рд▓реНрдб рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореВрд▓ рд░реВрдк рд╕реЗ рдореЗрд╡реЗрди рдХреЗ рд╕рдорд╛рди рд╣реАред рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП: https://github.com/gradle/gradle/issues/1049

рдХреНрдпрд╛ рдорд╛рдЙрдВрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣реАрдВ рдХреЛрдИ рдЬрдирд╕рдВрдкрд░реНрдХ рдерд╛?

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

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

@tbflw рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдбреЙрдХрд░ рдмрд┐рд▓реНрдб рдЕрд╕рдлрд▓ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рдж рдордзреНрдпрд╡рд░реНрддреА рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рдирд╣реАрдВ рд╣рдЯрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдХреЛрдИ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЙрдирд╕реЗ рдкрд░реАрдХреНрд╖рд╛ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

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

@BryanHunt @stepps @yngndrw рдЕрдиреНрдп рднреА @awhitford
рдмрд┐рд▓реНрдб рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реАрдЬ рдХреЛ рдХреИрд╢ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдмрд┐рд▓реНрдб рд╡рд░реНрдХ рдХреЛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдорд▓реНрдЯреА-рд╕реНрдЯреЗрдЬ рдЧреЛ рдмрд┐рд▓реНрдб рдЗрди рдбреЙрдХреНрдпреВрдореЗрдВрдЯреЗрд╢рди рдпрд╛ рдкрд╛рдпрдерди рдСрдирдмрд┐рд▓реНрдб рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдмрдирд╛рдПрдВ ред
рдпрд╣рд╛рдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдореИрдВрдиреЗ рдореЗрд╡реЗрди рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред рдореИрдВ рдЗрд╕реЗ рдпрд╣рд╛рдБ рдХреЙрдкреА рдХрд░реВрдБрдЧрд╛ред

FROM maven
WORKDIR /usr/src/app
# /root/.m2 is a volume :(
ENV MAVEN_OPTS=-Dmaven.repo.local=../m2repo/
COPY pom.xml .
# v2.8 doesn't work :(
RUN mvn -B -e -C -T 1C org.apache.maven.plugins:maven-dependency-plugin:3.0.2:go-offline
COPY . .
RUN mvn -B -e -o -T 1C verify

FROM openjdk
COPY --from=0 /usr/src/app/target/*.jar ./

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

@sixcorners рдЬреЛ рдЧреНрд░реИрдбрд▓ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ

@BryanHunt рдпрд╣ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдпрд╛ рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдзреАрд░реЗ-рдзреАрд░реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ? cpuguy83 рдиреЗ рдкреВрдЫрд╛ рдХрд┐ рдХреНрдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдП рдмрд┐рдирд╛ рдирд┐рд░реНрднрд░рддрд╛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИред рдЖрдкрдиреЗ рд╕рдорд╛рдзрд╛рди рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛рд░реНрдп рд╕реЗ рд▓рд┐рдВрдХ рдХрд┐рдпрд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдк рдХреЗрд╡рд▓ build.gradle рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рдереЗ рдФрд░ рдЙрд╕ рдХрд╛рд░реНрдп рдХреЛ рдЪрд▓рд╛ рд╕рдХрддреЗ рдереЗ?

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

@Sixcorners рджреНрд╡рд╛рд░рд╛ рдорд▓реНрдЯреАрд╕реНрдЯреЗрдЬ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдЯреНрд░рд┐рдХ рд╣реИ рдФрд░ рдореИрдВрдиреЗ рдЗрд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░реЛрдВ (рдЬреИрд╕реЗ npm, рдХрдВрдкреЛрдЬрд╝рд░) рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рджреЗрдЦрд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдЬрдм рднреА рдЪрд░рдг 0 рдЫрд╡рд┐ рдореЗрдВ рдирд┐рд░реНрднрд░рддрд╛ рдХреА рд╕реВрдЪреА COPY pom.xml рдмрджрд▓реА рдЬрд╛рддреА рд╣реИ рддреЛ рдкрд░рдд рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдкреВрд░рд╛ рдХреИрд╢ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЬрдм рднреА рдХреЛрдИ рдбреЗрд╡рд▓рдкрд░ рдкреЛрдо (рдПрдХ рдЯрд┐рдкреНрдкрдгреА, 1kBytes рдирд┐рд░реНрднрд░рддрд╛) рдореЗрдВ рдХреБрдЫ рднреА рдмрджрд▓рддрд╛ рд╣реИ рддреЛ рдкреВрд░реЗ рдХреИрд╢ рдХреЛ рдлрд┐рд░ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

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

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

рдорд▓реНрдЯреАрд╕реНрдЯреЗрдЬ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЖрджрд░реНрд╢ рдирд╣реАрдВ рд╣реИред

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

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдЬрдм рднреА рдирд┐рд░реНрднрд░рддрд╛ рдХреА рд╕реВрдЪреА рдмрджрд▓реА рдЬрд╛рддреА рд╣реИ, рддреЛ рдЪрд░рдг 0 рдЫрд╡рд┐ рдореЗрдВ pom.xml рдХреЙрдкреА рдХрд░реЗрдВ, рдЬрд┐рд╕рд╕реЗ рдкрд░рдд рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рдЬрд╛рддреА рд╣реИ рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдкреВрд░рд╛ рдХреИрд╢ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЬрдм рднреА рдХреЛрдИ рдбреЗрд╡рд▓рдкрд░ рдкреЛрдо (рдПрдХ рдЯрд┐рдкреНрдкрдгреА, 1kBytes рдирд┐рд░реНрднрд░рддрд╛) рдореЗрдВ рдХреБрдЫ рднреА рдмрджрд▓рддрд╛ рд╣реИ рддреЛ рдкреВрд░реЗ рдХреИрд╢ рдХреЛ рдлрд┐рд░ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

@ рд╣рд╢рд░ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ COPY --from рд╕реБрд╡рд┐рдзрд╛ рдмрд┐рд▓реНрдб-рд╕реНрдЯреЗрдЬ рддрдХ рд╕реАрдорд┐рдд рдирд╣реАрдВ рд╣реИ; рдбреЙрдХрд░рдлрд╛рдЗрд▓ рд╕рдВрджрд░реНрдн рд╕реЗ:

рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ COPY рдПрдХ рдзреНрд╡рдЬ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ --from=<name|index> рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрд░реЛрдд рд╕реНрдерд╛рди рдХреЛ рдкрд┐рдЫрд▓реЗ рдирд┐рд░реНрдорд╛рдг рдЪрд░рдг ( FROM .. AS <name> рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЧрдпрд╛) рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рднреЗрдЬреЗ рдЧрдП рдирд┐рд░реНрдорд╛рдг рд╕рдВрджрд░реНрдн рдХреЗ рдмрдЬрд╛рдп рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ред рдзреНрд╡рдЬ FROM рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд┐рдП рдЧрдП рд╕рднреА рдкрд┐рдЫрд▓реЗ рдирд┐рд░реНрдорд╛рдг рдЪрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрд╕рд╛рдЗрди рдХрд┐рдП рдЧрдП рдПрдХ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЛ рднреА рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред _ рдпрджрд┐ рдХрд┐рд╕реА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдмрд┐рд▓реНрдб рдЪрд░рдг рдирд╣реАрдВ рдорд┐рд▓ рдкрд╛рддрд╛ рд╣реИ рддреЛ рдЙрд╕реА рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдЫрд╡рд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред _

рдпрд╣ рдЖрдкрдХреЛ рдЕрдкрдиреА рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫрд╡рд┐ _build_ рдХрд░рдиреЗ, рдЙрд╕реЗ рдЯреИрдЧ рдХрд░рдиреЗ рдФрд░ рдЕрдкрдиреА рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

FROM maven
WORKDIR /usr/src/app
# /root/.m2 is a volume :(
ENV MAVEN_OPTS=-Dmaven.repo.local=../m2repo/
COPY pom.xml .
# v2.8 doesn't work :(
RUN mvn -B -e -C -T 1C org.apache.maven.plugins:maven-dependency-plugin:3.0.2:go-offline
COPY . .
RUN mvn -B -e -o -T 1C verify
docker build -t dependencies:1.0.0 .

рдФрд░ рдЕрдкрдиреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд▓рд┐рдП dependencies:1.0.0 рдЫрд╡рд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ;

FROM openjdk
COPY --from=dependencies:1.0.0 /usr/src/app/target/*.jar ./

рдпрд╛ (рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рд░реНрдл рдПрдХ рдмрд╣реБрдд рд╣реА рдмреБрдирд┐рдпрд╛рджреА рдЙрджрд╛рд╣рд░рдг);

$ mkdir example && cd example
$ touch dep-one.jar dep-two.jar dep-three.jar

$ docker build -t dependencies:1.0.0 . -f -<<'EOF'
FROM scratch
COPY . /usr/src/app/target/
EOF

$ docker build -t myimage -<<'EOF'
FROM busybox
RUN mkdir /foo
COPY --from=dependencies:1.0.0 /usr/src/app/target/*.jar /foo/
RUN ls -la /foo/
EOF

рдмрд┐рд▓реНрдб рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ, рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ:

Step 4/4 : RUN ls -la /foo/
 ---> Running in 012a8dbef91d
total 8
drwxr-xr-x    1 root     root          4096 Oct  7 13:27 .
drwxr-xr-x    1 root     root          4096 Oct  7 13:27 ..
-rw-r--r--    1 root     root             0 Oct  7 13:26 dep-one.jar
-rw-r--r--    1 root     root             0 Oct  7 13:26 dep-three.jar
-rw-r--r--    1 root     root             0 Oct  7 13:26 dep-two.jar
 ---> 71fc7f4b8802

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдХрд┐рд╕реА рдиреЗ рдЕрднреА рддрдХ рдЗрд╕ рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓реЗ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ (рдореИрдВрдиреЗ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдкреГрд╖реНрда рдХреА рдЦреЛрдЬ рдХреА рд╣реИ) рд▓реЗрдХрд┐рди рдмрд┐рд▓реНрдб рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдПрдХ рдПрд╕рдПрд╕рдПрдЪ рдСрде рд╕реЙрдХреЗрдЯ рдмрдврд╝рдиреЗ рд╕реЗ рдирд┐рдЬреА рдЧрд┐рдЯ рднрдВрдбрд╛рд░реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рддреИрдирд╛рдд рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЧреИрд░-рдЕрдВрддрд┐рдо рдирд┐рд░реНрдорд╛рдг рдЪрд░рдгреЛрдВ рдЖрджрд┐ рдореЗрдВ рдЪрд╛рдмрд┐рдпреЛрдВ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдХреЙрдкреА рдХрд░рдиреЗ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдХреЗ рдЕрдВрджрд░ рдмреЙрдпрд▓рд░рдкреНрд▓реЗрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрдо рд╣реЛрдЧреАред

рдмрд┐рд▓реНрдбрдХрд┐рдЯ рдХреЛ рдЧрд┐рдЯ рдХреЗ рд▓рд┐рдП рдореВрд▓ рд╕рдорд░реНрдерди рд╣реИ
https://github.com/moby/buildkit

рд╣рд▓ рдХрд░рдирд╛ред
рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдПрдВ (~/рдмрд┐рди/рдбреЙрдХрд░-рд▓рд┐рдЦреЗрдВ рдпрд╛ рдкрд╕рдВрдж рдХрд░реЗрдВ):

#!/bin/bash

trap 'kill $(jobs -p)' EXIT
socat TCP-LISTEN:56789,reuseaddr,fork UNIX-CLIENT:${SSH_AUTH_SOCK} &

/usr/bin/docker-compose $@

рдФрд░ Dockerfile рдореЗрдВ socat рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП:

...
ENV SSH_AUTH_SOCK /tmp/auth.sock
...
  && apk add --no-cache socat openssh \
  && /bin/sh -c "socat -v UNIX-LISTEN:${SSH_AUTH_SOCK},unlink-early,mode=777,fork TCP:172.22.1.11:56789 &> /dev/null &" \
  && bundle install \
...
or any other ssh commands will works

рдлрд┐рд░ docker-compose build . рдЪрд▓рд╛рдПрдВ

рдвреЗрд░ рдкрд░ рдПрдХ рдФрд░ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЛ рдлреЗрдВрдХрдиреЗ рдХреЗ рд▓рд┐рдПред рдореИрдВ рдПрдХ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдПрдореНрдмреЗрдбреЗрдб рд▓рд┐рдирдХреНрд╕ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдВрдбреЛрдЬрд╝ рдХреЗ рд▓рд┐рдП рдбреЙрдХрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдореИрдВ рдЗрд╕реЗ рдЕрдиреНрдп рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд╕рд╛рде рдЙрдирдХреЗ рдирд┐рд░реНрдорд╛рдг рдЪрд░рдг рдХреЗ рджреМрд░рд╛рди рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдореИрдВ рдЗрд╕ рдХрдВрдЯреЗрдирд░ рдХреЛ рдмрджрд▓рдиреЗ рд╡рд╛рд▓реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдФрд░ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдЖрджрд┐ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдореЗрдВ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рдФрд░ рдорд▓реНрдЯреА-рд╕реНрдЯреЗрдЬ рдмрд┐рд▓реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдмрд┐рд▓реНрдб рдЦреЛ рджреВрдВрдЧрд╛ред рдореИрдВ рдЕрдкрдиреЗ рдкрд┐рдЫрд▓реЗ рдирд┐рд░реНрдорд╛рдг рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреЛ рдХреИрд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рд╕рд╛рдл рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдореЗрдВ рд▓рдЧрднрдЧ 1.5 рдШрдВрдЯреЗ рд▓рдЧрддреЗ рд╣реИрдВред рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рд╡рд┐рдВрдбреЛрдЬрд╝ рдкреНрд░рддреАрдХрд╛рддреНрдордХ рд▓рд┐рдВрдХ рд╕реЗ рдирд┐рдкрдЯрддрд╛ рд╣реИ, рдореИрдВ рдЕрдкрдиреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рд╣реЛрд╕реНрдЯ рдорд╛рдЙрдВрдЯреЗрдб рд╡реЙрд▓реНрдпреВрдо рдореЗрдВ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдирд╛рдорд┐рдд рд╡реЙрд▓реНрдпреВрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рдореИрдВ рдЗрди рдирд╛рдорд┐рдд рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рдЕрдкрдиреА рдЕрдиреНрдп рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдЪрд░рдгреЛрдВ рдореЗрдВ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ; рдЬреИрд╕рд╛ рдХрд┐ рдлрд┐рд▓рд╣рд╛рд▓ рдореБрдЭреЗ рдмрд┐рд▓реНрдб рдЖрдЙрдЯрдкреБрдЯ (рд▓рдЧрднрдЧ 4 рдЬреАрдмреА) рдХрд╛ рдПрдХ рдЯрд╛рд░ рдмрдирд╛рдирд╛ рд╣реИ, рдлрд┐рд░ рдЗрд╕реЗ рдмрд╛рдж рдХреЗ рдмрд┐рд▓реНрдб рдХреЗ рд▓рд┐рдП рд╡рд┐рдВрдбреЛрдЬрд╝ рд╣реЛрд╕реНрдЯ рдкрд░ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдбреЙрдХ рдХреЙрдкреА рдХрд░реЗрдВред

рдкрд╛рдпрдерди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЬрдм рд╣рдо pip install package рдЗрд╕реЗ рдФрд░ рдЗрд╕рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдХреИрд╢ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рд╕рд╛рдЗрдЯ-рдкреИрдХреЗрдЬ рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдПрдХ рдЕрдЪреНрдЫреЗ рдЕрднреНрдпрд╛рд╕ рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдо pip --no-cache-dir install package рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд░реНрддрдорд╛рди рдкрд░рдд рдореЗрдВ рдХрдЪрд░рд╛/рдХреИрд╢ рд╕реНрдЯреЛрд░ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╕рд░реНрд╡реЛрддреНрддрдо рдЕрднреНрдпрд╛рд╕ рдХреЗ рд▓рд┐рдП рдХреИрд╢ рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рдмрд┐рд▓реНрдб рд╕рдВрджрд░реНрдн рд╕реЗ рдмрд╛рд╣рд░ рд░рдЦрдирд╛ рд╡рд╛рдВрдЫрд┐рдд рд╣реИред рддреЛ рдирд┐рд░реНрдорд╛рдг рд╕рдордп -v рдорджрдж рдХрд░реЗрдЧрд╛ред
рдКрдкрд░ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдХреБрдЫ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ COPY . /somewhere/in/container/ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдРрдк рдпрд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдареАрдХ рд╣реИ рд▓реЗрдХрд┐рди рдХреИрд╢ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред рдХреНрдпреЛрдВрдХрд┐ COPY рд╕реНрд╡рдпрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдФрд░ рдкрд░рдд рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдмрд╛рдж рдХреА рдкрд░рддреЛрдВ рдореЗрдВ рдХреИрд╢ рдирд┐рдХрд╛рд▓рдирд╛ рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдЕрдиреНрдп рдмреБрд░рд╛ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рд╣рдо COPY рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдХреИрд╢ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ, рд╕рдВрджрд░реНрдн рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рддреЗрдВ рдЕрдорд╛рдиреНрдп рд╣реЛ рдЬрд╛рдПрдВрдЧреА рдФрд░ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рд╣реЛ рдЬрд╛рдПрдВрдЧреАред

@wtayyeb рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ Dockerfile рд╣реИ рдЬреЛ pip install ... рдХреЗрд╡рд▓ рддрднреА рдЪрд▓рддрд╛ рд╣реИ рдЬрдм рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рдлрд╝рд╛рдЗрд▓ рдмрджрд▓рддреА рд╣реИрдВ рддреЛ рдмрд┐рд▓реНрдб рдЯрд╛рдЗрдо -v рдЗрддрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рдЙрддрдиреА рдмрд╛рд░ рдирд╣реАрдВ рдмрджрд▓рддреА рд╣реИрдВ рдЬрд┐рддрдиреА рдмрд╛рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрд┐рд▓реНрдбрд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп рдмрджрд▓рддреЗ рд╣реИрдВред

@wtayyeb рдЖрдк рдХреИрд╢ рдФрд░ рд▓реАрди рдЗрдореЗрдЬ рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдорд▓реНрдЯреА-рд╕реНрдЯреЗрдЬ Dockerfile рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣реА рд╣реИ, рдХрд┐рд╕реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдЕрдЬрдЧрд░ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдВрд╕реНрдЯреЙрд▓рд░ рдЫрд╡рд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рдлрд┐рд░ рдЕрдкрдиреА рдЕрдВрддрд┐рдо рдЫрд╡рд┐ рдХреЗ рд▓рд┐рдП COPY --from рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреЗ рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ рдкрд╛рдпрдерди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдЦреБрдж рдХреЛ рдкрд╛рдЗрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реЗрдВред

@manishtomar , рдзрдиреНрдпрд╡рд╛рдж, рд╣рд╛рдБ рдФрд░ рдирд╣реАрдВ! рд╕реНрд╡рдЪреНрдЫ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рдлрд┐рд░ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЬрд╛рддреА рд╣реИрдВ рдФрд░ рдирд┐рд░реНрдорд╛рдг рдФрд░ рдкрд╣рд┐рдпреЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛ рдЬрд╛рддреА рд╣реИрдВ рдФрд░ рдХреИрд╢ рдХреА рдЬрд╛рддреА рд╣реИрдВ, рдлрд┐рд░ рдЧрдВрддрд╡реНрдп рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛ рдЬрд╛рддреА рд╣реИрдВред рддреЛ рдЕрдЧрд░ рдХреЛрдИ рд╡рд╣рд╛рдБ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рд░рдЦрддрд╛ рд╣реИ рддреЛ рд╡рд╣ рдПрдХ рдмрд╛рд░ рдХрд╛ рдХрд╛рдо рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдПрдХ рдЫреЛрдЯреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рдкреБрди: рдбрд╛рдЙрдирд▓реЛрдб, рдкреБрди: рдирд┐рд░реНрдорд╛рдг рдФрд░ рдкреБрди: рд╡реНрд╣реАрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЙрдкрдпреЛрдЧ рдпреЛрдЧреНрдп рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдХреИрд╢ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдХрдИ рдиреМрдХрд░рд┐рдпреЛрдВ рдХреЗ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдореЗрдВ рдЕрдкрдиреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдФрд░ рдЕрдкрдиреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рд╕реАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдЕрдкрдиреЗ рд╕реАрдЖрдИ рд╕рд░реНрд╡рд░ рдореЗрдВ рд╕рдорд╡рд░реНрддреА рдиреМрдХрд░рд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдХрд╛рдо рд╕реЗ рдКрдкрд░ рдЧреБрдгрд╛ рдХрд░реЗрдВ рдФрд░ iowait рдХреЛ 3s рд╕реЗ рдЕрдзрд┐рдХ рдФрд░ SSDs рдХреЗ рд╕рд╛рде рднреА 15 рд╕реЗ рдКрдкрд░ рд▓реЛрдб рдФрд╕рдд рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛ред (рдпреЗ рдирдВрдмрд░ 2 рд╕рдорд╡рд░реНрддреА рдмрд┐рд▓реНрдб рдФрд░ ~ 20 рдирд┐рд░реНрднрд░рддрд╛ рд╡рд╛рд▓реЗ рдРрдк рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╣реИрдВ) рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреАрдкреА рдХреИрд╢ рдЗрд╕реЗ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдлрд┐рд░ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ, рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдиреЗ рдФрд░ рддреИрдпрд╛рд░ рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рдиреЗ рд╕реЗ рдмрдЪ рд░рд╣рд╛ рд╣реИред рдФрд░ рдмрд┐рдирд╛ рдмрд╛рдЗрдВрдб-рд╡реА рдХреЗ рд╣рдо рд╕рдордп рдФрд░ рд╕рд░реНрд╡рд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдЦреЛ рджреЗрддреЗ рд╣реИрдВред

@ibukanov , рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рдЕрдкрдиреЗ рдРрдкреНрд╕ рдкреИрдХреЗрдЬ рдмрдирд╛рдиреЗ рдФрд░ рдмрд╛рдж рдореЗрдВ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд▓реНрдЯреА-рд╕реНрдЯреЗрдЬ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдпрд╣ рдорджрдж рдХрд░реЗрдЧрд╛ рдЕрдЧрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рдПрдХ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рд╣реИ рдФрд░ рдЗрд╕реЗ рдХрдИ рдмрд╛рд░ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдХрдИ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рд╣реЛрдВ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдПрдХ рдкрд╛рдпрдерди рд╕рдВрд╕реНрдХрд░рдг (рдЕрднреА рдХреЗ рд▓рд┐рдП 2.7,3.6) рдХреЗ рдЦрд┐рд▓рд╛рдл рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реЛ рдФрд░ рдЗрд╕рдореЗрдВ рдХрдИ рд╕реА-рдПрдХреНрд╕рдЯреЗрдВрд╢рди рднреА рд╣реЛрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЪрдпрдирд┐рдд рдЖрдзрд╛рд░ рдЫрд╡рд┐ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ? рдЙрдкрд░реЛрдХреНрдд рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?

@thaJeztah рдЖрдкрдХрд╛ рд╕реБрдЭрд╛рд╡ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ рдФрд░ рдпрд╣ рд╣рдореЗрдВ рдХреБрдЫ рд╕рдордп рдмрдЪрд╛рдПрдЧрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдмрд┐рд▓реНрдб рдХреИрд╢ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджреВрд╕рд░реА рдЫрд╡рд┐ рд╕реЗ рдХреБрдЫ рднреА рдХреЙрдкреА рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рд╣рдо рдХрд┐рд╕реА рдЕрдиреНрдп рдЫрд╡рд┐ рдХреЛ рдХреЙрдкреА рдХрд┐рдП рдмрд┐рдирд╛ рдПрдХреНрд╕реЗрд╕ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ?

@thedrow рдореЗрд░рд╛ рдЙрджрд╛рд╣рд░рдг рдЙрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдерд╛ рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣реИрдВ; RUN --mount рдкреНрд░рд╕реНрддрд╛рд╡ (https://github.com/moby/moby/issues/32507) рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ, рдЬреЛ рдЖрдкрдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЙрдкрдпреБрдХреНрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ

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

рдореИрдВ рдПрдХ рдЬреЗрдВрдЯреВ рдХрдВрдЯреЗрдирд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рднреА рд╣реВрдВ рдФрд░ https://github.com/moby/moby/issues/3156 рд╕реЗ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬреЛ рдЗрд╕ рд▓рд╛рдкрддрд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡реИрдз рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИред

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

@kbaegis https://github.com/moby/moby/issues/32507 рдореЗрдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдЯреАрдХ рдорд┐рд▓рд╛рди рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ

рдЬрд╝рд░реВрд░ред рд╡рд╣ рдХреЗрд╡рд▓ 3 рд╡рд░реНрд╖реЛрдВ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рд╡рд░реНрд╖ рдХреЗ рд▓рд┐рдП рдмреИрдХрд▓реЙрдЧ рдореЗрдВ рдПрдХ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ P3 рд╣реИред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ https://github.com/projectatomic/buildah рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдмреБрдирд┐рдпрд╛рджреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд▓рд┐рдП рдбреЙрдХрдЯрд░ рдмрд┐рд▓реНрдб рдХреЛ рдмрд╣реБрдд рдЬрд▓реНрджреА рдмрдирд╛рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдРрд╕рд╛ рд╣реЛрдиреЗ рдкрд░ рдореИрдВ рдмрд╕ рдЕрдкрдиреА рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЛ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред

@kbaegis рдЗрд╕ рдЪрд░реНрдЪрд╛ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рдпрд╣рд╛рдВ рдХреНрдпрд╛ рдЖрдП рдереЗ? рдЖрдкрдиреЗ рдПрдХ рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓реЗ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ _exactly_ рдХрд┐рд╕реА рднрд┐рдиреНрди рдкреНрд░рд╕реНрддрд╛рд╡ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ;

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

рдпрд╣ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рд╣реИ, рдЪреАрдЬреЗрдВ рдЬрд╛рджреБрдИ рд░реВрдк рд╕реЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдореЗрдВ рдирд╣реАрдВ рдЖрддреА рд╣реИрдВред

рдореИрдВ рдЪрд░реНрдЪрд╛ рдореЗрдВ рдХреНрдпрд╛ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣ рд░рд╣рд╛ рд╣реВрдБ?

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдореИрдВ рдЗрд╕ рдЯреВрд▓рд╕реЗрдЯ рд╕реЗ рдЖрдЧреЗ рдмрдврд╝ рд░рд╣рд╛ рд╣реВрдВред рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рд╡рд┐рдХрд╛рд╕ рдЯреАрдо рдХреЗ рд▓рд┐рдП рдпрд╣ рдореВрд▓реНрдпрд╡рд╛рди рдЬрд╛рдирдХрд╛рд░реА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдореИрдВ рд╡рд╣рд╛рдВ рдЕрдХреЗрд▓рд╛ рдирд╣реАрдВ рд╣реВрдВред

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

рдореЗрд░реЗ рдкрд╛рд╕ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ (rehash, рдореБрдЭреЗ рдпрдХреАрди рд╣реИ) рдЙрдкрдпреЛрдЧ рдХреЗрд╕ рдорд┐рд▓рд╛ рд╣реИред #32507 рдпрд╣ рдмреЗрд╣рддрд░ рд╕реВрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдореИрдВ рдХреБрдЫ рдЬреИрд╡ рд╕реВрдЪрдирд╛ рд╡рд┐рдЬреНрдЮрд╛рди рдкрд╛рдЗрдкрд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдбреЛрдХрд░ рдЫрд╡рд┐ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдБред рдХреБрдЫ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдирдХреЗ рд╕рдВрдХрд▓рди/рд╕реНрдерд╛рдкрдирд╛ рд╕реЗ рдкрд╣рд▓реЗ рдХреБрдЫ рдбреЗрдЯрд╛рдмреЗрд╕ рдореМрдЬреВрдж рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ (рдХреГрдкрдпрд╛ рдпрд╣ рди рдкреВрдЫреЗрдВ, рдпрд╣ рдореЗрд░рд╛ рдХреЛрдб рдирд╣реАрдВ рд╣реИ )ред рдЗрди рдбреЗрдЯрд╛рдмреЗрд╕реЛрдВ рдХрд╛ рд╡рдЬрди рдХрдо рд╕реЗ рдХрдо 30GB рд╣реИред

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

@draeath https://github.com/grammarly/rocker рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рд╕реБрдВрджрд░ MOUNT рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред

@draeath рднреА, рдмрд┐рд▓реНрдбрд╣ рджреЗрдЦреЗрдВ, рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдорд╛рдЙрдВрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдЯреВрд▓ рдХреА рддрд░рд╣ рдЕрдзрд┐рдХ рд╕реНрдерд╛рдкрд┐рдд рд╣реИред Dockerfile рдХреЗ рд╕рд╛рде рдорд╛рдЙрдВрдЯ рдХрд╛ рднреА рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ:

https://github.com/projectatomic/buildah

@рдлрд╛рджрд░рд▓рд┐рдирдХреНрд╕ рдФрд░ @ рд▓рд┐рдЧ рджреЛрдиреЛрдВ рдХреЛ рдзрдиреНрдпрд╡рд╛рдж - рдЗрд╕рд╕реЗ рдореБрдЭреЗ рдЕрдкрдирд╛ рдХрд╛рдо рдкреВрд░рд╛ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реЗрдЧреАред рдореБрдЭреЗ рдЕрднреА рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЗрд╕реЗ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рдмрд╛рд╣рд░ рдирд╣реАрдВ рднрдЯрдХрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдлрд┐рд░ рднреА рдЗрд╕реЗ рджреЗрдЦрдирд╛ рдкрд╕рдВрдж рдХрд░реЗрдВрдЧреЗ рдФрд░ # 32507 рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛;)

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

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

рдореИрдВ рдПрдХ рдбреЙрдХрд░ рдЫрд╡рд┐ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬреЛ рдкрд╣рд▓реА рдмрд╛рд░ "рдлрд░реНрдорд╡реЗрдпрд░ рдЫрд╡рд┐ рдмрдирд╛рдПрдВ" рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЙрди рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рд╕реНрдкреЙрди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдлрд░реНрдорд╡реЗрдпрд░ рдЫрд╡рд┐ рдХреЛ рддрд╛рдЬрд╛-рдСрдл-рдж-рд▓рд╛рдЗрди рдкреАрд╕реАрдмреА рдкрд░ рдзрдХреНрдХрд╛ рджреЗрддреЗ рд╣реИрдВред рдПрдХ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдРрд╕рд╛ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:
----------[ рдпрд╣рд╛рдВ рд╕реЗ рдХрд╛рдЯреЗ ]----------
рдЖрдзрд╛рд░-рдЫрд╡рд┐ рд╕реЗ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ
рд╕реНрд░реЛрдд рд╕реНрд░реЛрдд рдХреЙрдкреА рдХрд░реЗрдВ
рд░рди рдмрд┐рд▓реНрдб-src

рдлреНрд▓реИрд╢рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдмреЗрд╕-рдЗрдореЗрдЬ рд╕реЗ
рдХреЙрдкреА --from=рдмрд┐рд▓реНрдбрд░ рдирд┐рд░реНрдорд╛рдг-рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ
рд░рди рд╕реАрдкреАрдпреВ-рдмрд┐рд▓реНрдб-рдПрдВрдб-рдлреНрд▓реИрд╢ --рдмрд┐рд▓реНрдб-рдУрдирд▓реА
----------[ рдпрд╣рд╛рдВ рд╕реЗ рдХрд╛рдЯреЗ ]----------
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╕реАрдкреАрдпреВ-рдмрд┐рд▓реНрдб-рдПрдВрдб-рдлреНрд▓реИрд╢ рдЪрд░рдг рдХреЛ рдпреВрдПрд╕рдмреА рдмрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓рдХреНрд╖реНрдп рдбрд┐рд╡рд╛рдЗрд╕ рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рднрд▓реЗ рд╣реА рдпрд╣ рдлрд░реНрдорд╡реЗрдпрд░ рдЫрд╡рд┐ рдХреЛ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдзрдХреНрдХрд╛ рди рджреЗред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдореБрдЭреЗ 'рдбреЙрдХрд░ рд░рди' рдХрдорд╛рдВрдб рд╕реЗ '-v/dev/usb/bus:/dev/usb/bus' рд▓реЗрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЗрд╕реЗ рдмрд┐рд▓реНрдб рдореЗрдВ рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ред

рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред

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

рд░реБрдЪрд┐ рд░рдЦрдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ: рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдмрд┐рд▓реНрдбрд╣ рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдкреВрд░реЗ рдкрд╛рдЗрдк рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рд╣реИред рдореБрдЭреЗ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдЪрд▓рдиреЗ рд╡рд╛рд▓реА рджреЛ рдмрд┐рд▓реНрдб рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдорд┐рд▓ рдЧрдИ рд╣реИрдВ рдФрд░ рдУрд╕реАрдЖрдИ/рдмрд┐рд▓реНрдбрд╣ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдЫреЛрдЯреА рдЫрд╡рд┐рдпрд╛рдВ рдЙрддреНрдкрдиреНрди рдХрд░ рд░рд╣реА рд╣реИ (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЗрд╕реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рдорд╛рдЙрдВрдЯ рдХреЗ рд╕рд╛рде рдорд╛рд╕реНрдХ рдХрд░рдХреЗ/usr/portage рдХреЛ рд╣рдЯрд╛ рд░рд╣реА рд╣реИ)ред

рдФрд░ рдЕрдВрдд рдореЗрдВ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдпрд╣рд╛рдБ рд╣реИ: https://github.com/docker/docker-py/issues/1498

рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдмрд┐рд▓реНрдб рдХреИрд╢ рдХреЗ рд▓рд┐рдП RW рд╡реЙрд▓реНрдпреВрдо рдЪрд╛рд╣рд┐рдП

рд╢рдирд┐рд╡рд╛рд░, 28 рдЕрдкреНрд░реИрд▓ 2018, 17:29 рдХреЛ ╨╛╤А╨╡╨╜╨▒╨╡╤А╨│ ╨░╤А╨║ , [email protected] рдиреЗ рд▓рд┐рдЦрд╛:

рдФрд░ рдЕрдВрдд рдореЗрдВ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдпрд╣рд╛рдБ рд╣реИ: docker/docker-py#1498
https://github.com/docker/docker-py/issues/1498

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/moby/moby/issues/14080#issuecomment-385188262 , рдпрд╛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
рд╕реВрддреНрд░
https://github.com/notifications/unsubscribe-auth/AAZQTJodLCCzyDdPFtNiIUZ_z85YvLWbks5ttJjagaJpZM4FIdOc
.

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

рдЖрджрд░реНрд╢ рд▓рдХреНрд╖реНрдп рдПрдХ рдмрд╛рд░ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рд╣реИ, рдПрдХ рдмрд╛рд░ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рд╣реИ, рдФрд░ рдЕрднреА рднреА рдореЗрдЬрдмрд╛рди рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдкрд░рд┐рдгрд╛рдо рдлрд╝рд╛рдЗрд▓ рджреА рдЧрдИ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдШрдЯрдирд╛ рдореЗрдВ (рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдШрдЯрдирд╛ рдореЗрдВ) рдЬреЛ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рдирд┐рд░реНрдорд╛рдг рдХреЛ рд░реЛрдХрддреЗ рд╣реИрдВред

рд╣рд╛рдБ рдХреГрдкрдпрд╛ред рдкреВрд░реЗ рджрд┐рдиред

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

docker build -t x .
ID=$(docker create x)
docker cp $ID:/package.deb .
docker rm $ID

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

рдХреНрдпрд╛ рд╣рдореЗрдВ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджрд╛ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдмрд┐рд▓реНрдб рдХреИрд╢ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдб-рдЯрд╛рдЗрдо рд╡реЙрд▓реНрдпреВрдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ/рдЪрд╛рд╣рддреЗ рд╣реИрдВ?

@ajbouh рд╣рд╛рдБ, рд╢рд╛рдпрдж https://github.com/moby/buildkit/issues . рдкрд░

рджреЗрдЦреЗрдВ https://github.com/moby/moby/issues/32507#issuecomment -391685221

рдмреБрдзрд╡рд╛рд░, 23 рдордИ, 2018, 19:22 рдХреЛ рдЕрдХрд┐рд╣рд┐рд░реЛ рд╕реВрдбрд╛ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛:

@ajbouh https://github.com/ajbouh рд╣рд╛рдБ, рд╢рд╛рдпрдж рдкрд░
https://github.com/moby/buildkit/issues

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/moby/moby/issues/14080#issuecomment-391566368 , рдпрд╛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
рд╕реВрддреНрд░
https://github.com/notifications/unsubscribe-auth/AAAcnSqNoVc4j34ElECy53gIfPecQFKfks5t1hlkgaJpZM4FIdOc
.

рдЬрдм рдЖрдк рдмрд┐рд▓реНрдб-рдЯрд╛рдЗрдо рдкрд░ рд╡реЙрд▓реНрдпреВрдо рдирд╣реАрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╣реЛрд╕реНрдЯ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЕрдм рдореИрдВ рдЕрдкрдиреА рд╕рднреА рдбреЙрдХрд░ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ --add-host yum-mirror:$MIRROR_IP рдЬреИрд╕реА рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХреЗ рд╕рд╛рде рдмрдирд╛рддрд╛ рд╣реВрдВ рдЬреЛ рдПрдХ рдпрдо рджрд░реНрдкрдг рдХреА рд╕реЗрд╡рд╛ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдореЗрд░реА рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рддрдм рдПрдХ рд░реИрдкрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ рдпрдоред рдЖрд╕рд╛рди рдЬрдм рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рджрд┐рди рдореЗрдВ рдХрдИ рдмрд╛рд░ рдирд┐рд░реНрднрд░рддрд╛ рдмрджрд▓рддреА рд╣реИ рдФрд░ рдореИрдВ рдСрдлрд╝рд▓рд╛рдЗрди рд╣реВрдВ рдпрд╛ рдЦрд░рд╛рдм рдХрдиреЗрдХреНрд╢рди рдкрд░ рд╣реВрдВ (рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ рдЗрд╕рдХреЗ рдХрдИ рдбрд┐рдкреЛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдФрд░ рд╕рд╛рдл рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ)ред

рдореБрдЭреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЙрдХрд░ рдХреЗ рдкреНрд░рддрд┐рд░реЛрдз рдХреЛ рдХреНрд░реБрджреНрдз рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд▓рдЧрддрд╛ рд╣реИред

рдмрд┐рд▓реНрдбрдХрд┐рдЯ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рд╕рдорд░реНрдерди рдХреЛ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рд╡рд┐рд▓рдп рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рдХреЗ рд╕рд╛рде RUN --mount=<opts> <command> рдХреЗ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИред

@cpuguy83 рдиреЛрдЯ рдХрд╛ рд▓рд┐рдВрдХ: https://github.com/moby/buildkit/pull/442

@glensc @cpuguy83 рд╣рдо рдЗрд╕ рдорд░реНрдЬ рдХрд┐рдП рдЧрдП рдлреАрдЪрд░ рдХреЗ рд░рд┐рд▓реАрдЬ рдХреА рдЙрдореНрдореАрдж рдХрдм рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

+1

RUN --mount рдореЗрдВ рд╡реЙрд▓реНрдпреВрдо рд╕рдкреЛрд░реНрдЯ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП https://github.com/avsm/docker-ssh-agent-forward рдЬреИрд╕реА рдЪреАрдЬреЗрдВ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рдордп рдЕрд╕рдВрднрд╡ рд░рд╣рддреА рд╣реИрдВ, рдЗрд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХреНрдпрд╛ рд╣реИ?

@ рдкреАрдЯрд░-рдПрдЬ https://github.com/moby/buildkit/pull/655

docker build --secret рдЕрдВрддрддрдГ рдбреЙрдХрд░ 18.09 рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИ https://medium.com/@tonistiigi/build -secrets-and-ssh-forwarding-in-docker-18-09-ae8161d066

рдХреНрдпрд╛ рд╣рдо рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдХреИрд╢рд┐рдВрдЧ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ --secret рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИ, рдЬреЛ рдореИрдВ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реВрдВред

@AkihiroSuda RUN --mount рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрднрд╡рддрдГ рдХреБрдЫ рдЙрдкрдпреБрдХреНрдд рд╣реИред

рд╣рд╛рдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ RUN --mount=type=cache (рдХреИрд╢ рд╡реЙрд▓реНрдпреВрдо рдХреЗ рд▓рд┐рдП) рдФрд░ --mount=type=secret рдХреЗ рд╕рд╛рде docker build --secret (рдЧреБрдкреНрдд рдорд╛рддреНрд░рд╛ рдХреЗ рд▓рд┐рдП) рд▓рдЧрднрдЧ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдХрд╡рд░ рдХрд░рддрд╛ рд╣реИред

@AkihiroSuda рддреЛ, рдореВрд▓ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдХрд╛рдордХрд╛рдЬреА рдЙрджрд╛рд╣рд░рдг рджреЗрдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛

@AkihiroSuda рд▓реЗрдЦ рд╕реЗ (https://medium.com/@tonistiigi/build-secrets-and-ssh-forwarding-in-docker-18-09-ae8161d066) рдореИрдВрдиреЗ рдмрд┐рд▓реНрдб рдХреЗ рджреМрд░рд╛рди рдорд╛рдЙрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ 2 рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рджреЗрдЦреЗ: рдЧреБрдкреНрдд рдФрд░ рдПрд╕рдПрд╕рдПрдЪ

[рдЧреБрдкреНрдд]

docker build --secret id=mysite.key,src=path/to/mysite.key .
RUN --mount=type=secret,id=mysite.key,required <command-to-run>

[рдПрд╕рдПрд╕рдПрдЪ]

RUN --mount=type=ssh git clone [email protected]:myorg/myproject.git myproject

2 рдЕрдиреНрдп рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рд╣реИрдВ (рдЬреЛ рдореБрдЭреЗ рдпрд╛рдж рд╣реИрдВ) рдЬрд┐рдиреНрд╣реЗрдВ рд▓реЗрдЦ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рди рд╣реА рдЗрд╕ рдЕрдВрдХ рдореЗрдВ:

1) [рдХреИрд╢] RUN --mount=type=cache
2) рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╡реЙрд▓реНрдпреВрдо (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрд╕рдПрд╕рдПрд▓ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдорд╛рдЙрдВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╛ рдмрдбрд╝реЗ рд╡реЙрд▓реНрдпреВрдо рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЬреЛ рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЬреЗрдирд░реЗрдЯ рдХреА рдЧрдИ рдЫрд╡рд┐ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЗрд╕реА рддрд░рд╣ ...)

webpack рдЪрд▓рд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдмрд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ yarn рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░ рдмрдврд╝ рд░рд╣рд╛ рд╣реИ

рдЖрдк рдпрд╣ рд╕рдм рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ..

RUN --mount=type=cache,from=<some image>,source=<path in from image>,target=<target>

рдЖрдк from=<some image> рдХреЛ from=<some build stage> . рдореЗрдВ рднреА рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ

рдпрд╣рд╛рдБ рдПрдХ рдХрд╛рд▓реНрдкрдирд┐рдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:

# syntax=docker/dockerfile:1.0.0-experimental
FROM busybox as hello
RUN  echo hello > /hello.txt

FROM scratch
RUN --mount=type=cache,from=busybox,source=/bin,target=/bin --mount=type=cache,from=hello,source=/hello.txt,target=/tmp/hello.txt echo /tmp/hello.txt

рдпрд╣рд╛рдВ рдЗрд╕ рдкрд░ рдХреБрдЫ рджрд╕реНрддрд╛рд╡реЗрдЬ рджрд┐рдП рдЧрдП рд╣реИрдВ: https://github.com/moby/buildkit/blob/master/frontend/dockerfile/docs/experimental.md

рдореИрдВ @AkihiroSuda рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ, рдпрд╣ рд╕рднреА рдорд╛рдорд▓реЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛ рдЪрд╛рд╣рд┐рдП ... рд▓реЗрдХрд┐рди рдХреГрдкрдпрд╛ рд╣рдореЗрдВ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред

@AkihiroSuda @ cpuguy83 : рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди (рдбреЙрдХрд░ 18.09 рдореЗрдВ рдмрд┐рд▓реНрдбрдХрд┐рдЯ) рдореЗрдВ рдирд┐рдЬреА рд░рдЬрд┐рд╕реНрдЯреНрд░рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдБ рд╣реИрдВред рдЕрдм рддрдХ, рдЗрди рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдЖрдкрдХреЛ рдЕрдкрдиреА рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдПрдХ рдирд┐рдЬреА рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓рд╛рдирд╛ рд╣реИред рдореЗрд░реЗ рдкрд░реАрдХреНрд╖рдг https://github.com/moby/moby/issues/38303 рдореЗрдВ рджреЗрдЦреЗрдВред

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

рдпрд╣ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ --experimental рдХреЛ RUN --mount=type=cache /user/.cache/pip pip install $ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА (рдкреИрдХреЗрдЬ рдЗрдВрдбреЗрдХреНрд╕ рдмреИрдВрдбрд╡рд┐рдбреНрде рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП)ред

buildah bud ( buildah build-using-dockerfile ) рдореЗрдВ --volume / -v рд╡рд┐рдХрд▓реНрдк рд╣реИ:
https://github.com/containers/buildah/blob/master/docs/buildah-bud.md

buildah рдмрд┐рдирд╛ рдбреЙрдХ рд╕реЙрдХреЗрдЯ рдХреЗ рдЧреИрд░-рд░реВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдмрд┐рд▓реНрдб рдЪрд▓рд╛ рд╕рдХрддрд╛ рд╣реИред

рдХреНрдпреЛрдВрдХрд┐ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдкреИрдХреЗрдЬ рдбрд╛рдЙрдирд▓реЛрдб рдЕрдзрд┐рдХ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИрдВ?

рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ "--experimental", рдХреЗрд╡рд▓ "DOCKER_BUILDKIT=1" рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

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

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

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

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

рдпрджрд┐ рдЖрдкрдХреЛ рдирд┐рд░реНрдорд╛рдг рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрд╕реНрдЯ рд╕реЗ рд╕рдВрджрд░реНрдн рдорд╛рдЙрдВрдЯ рдХрд░рдирд╛ рд╣реИ рддреЛ рдпрд╣ рдПрдХ рдмреБрд░рд╛ рдЕрдиреБрднрд╡ рд╣реИред

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

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

RUN apt-get update

docker build -t aptupdate-20190417

рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЫрд╡рд┐ рдореЗрдВ:

FROM aptupdate-20190417
FROM somebaseimage

COPY --from=aptupdate-20190417 /var/apt /var/apt

рдЕрдиреНрдп рджреВрд░рд╕реНрде рд╕рдВрджрд░реНрдн рдХреЗ рд╕рд╛рде рджреЛрд╣рд░рд╛рдПрдВ рдФрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрдореЛрдмреЗрд╢ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬреЛ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИред

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

рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ, RUN --mount=type=cache рдЗрд╕рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ рд╕рд╣реА рд╣реИред
рдпрд╛ рдЖрдк рд░рдЬрд┐рд╕реНрдЯреНрд░реА рд╕реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рдЫрд╡рд┐ рд╕реЗ рднреА рдорд╛рдЙрдВрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

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

рдмрд┐рд▓реНрдбрд╣ рдФрд░ рд░реЗрдбрд╣рд╛рдЯ рдХреЗ рдХрд╛рдВрдЯреЗ рдкрд░ -v рдХреЛ рдпрд╣рд╛рдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЦрд╛рд░рд┐рдЬ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрддреНрдпрдзрд┐рдХ рд╡реНрдпрд╛рдкрдХ рд╣реИ ... рдпрд╣ рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдХрд┐ рдпрд╣ рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЖрд╕рд╛рдиреА рд╕реЗ рдореЗрдЬрдмрд╛рди рд╕реЗ рдореЗрдЬрдмрд╛рди рддрдХ рдЯреВрдЯ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ docker build рдХреЗ рдбрд┐рдЬрд╛рдЗрди рдХреЗ рдЦрд┐рд▓рд╛рдл рдЬрд╛рддрд╛ рд╣реИред .
рдЗрд╕ рдмреАрдЪ рдЖрд░рдПрдЪ рдиреЗ рдЗрд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдХрд╛рд░рдг (рдпрд╛ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХреНрдпреЛрдВ рдХрд┐рдпрд╛) рдЖрд░рдПрдЪрдИрдПрд▓ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдХреЛ рдмрд┐рд▓реНрдб рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдорд╛рдЙрдВрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдерд╛ред

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

рдореИрдВ рдЬреЛрд░рджрд╛рд░ рдЕрд╕рд╣рдордд рд╣реВрдВред рдиреЗрдЯрд╡рд░реНрдХ рдбрд╛рдЙрди рдпрд╛ рд╕рдордЭреМрддрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ; рдЬрд┐рд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдПрдХ рд╕реНрдерд╛рдиреАрдп рдХреИрд╢ рдЗрдВрдЯрд░рдиреЗрдЯ рдХреЗ рдбрд╛рдЙрди рд╣реЛрдиреЗ рдкрд░ рдкреВрд░реЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИред

рдореИрдВ рдЕрдкрдиреЗ docker-compose.yml рдореЗрдВ рдПрдХ рдмрд╛рд░ volumes: рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ; рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрдЬрд╛рдп DOCKER_BUILDKIT=1 рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ Dockerfiles рдкреНрд░рдмрдВрдзрд┐рдд рдЕрдкрд╕реНрдЯреНрд░реАрдо рдореЗрдВ RUN --mount=type=cache рдЬреЛрдбрд╝реЗрдВ? рдХреНрдпреЛрдВ?

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

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

рдХреГрдкрдпрд╛ рдХреЗрд╡рд▓ --volume рдЬреЛрдбрд╝реЗрдВ рддрд╛рдХрд┐ рдореЗрд░рд╛ docker-compose.yml рдХрд╛рдо рдХрд░реЗред

рдХреГрдкрдпрд╛ рдХреЗрд╡рд▓ --volume рдЬреЛрдбрд╝реЗрдВ рддрд╛рдХрд┐ рдореЗрд░рд╛ docker-compose.yml рдХрд╛рдо рдХрд░реЗред

рдЕрдкрдирд╛ "рдбреЙрдХрд░-рдХрдВрдкреЛрдЬрд╝" рдмрдирд╛рдирд╛ рдмрд╕ рдХрд╛рдо рдкреАрдЫреЗ рдХреА рдУрд░ рд╣реИред
docker-compose рдЙрдкрднреЛрдХреНрддрд╛рдУрдВ рдХреЛ рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛, рджреВрд╕рд░реА рддрд░рдл рдирд╣реАрдВред

docker-compose docker рд╕реЙрдХреЗрдЯ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рддрд╛ рд╣реИред docker-compose YAML рдХрдВрдЯреЗрдирд░ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╕рдореЗрдХрд┐рдд рддрд░реАрдХрд╛ рд╣реИ (рдЬрд┐рд╕реЗ k8s pod defs рдореЗрдВ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЬреЛ рдкреЙрдбрдореИрди рдПрдХ рд╣рдж рддрдХ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ))ред рдореБрдЭреЗ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рддрд░реАрдХреЗ рд╕реЗ DOCKER_BUILDKIT=1 рдХреИрд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? рдореИрдВ рдПрдХ docker-compose.yml рдореЗрдВ рдПрдХ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рддрд░реАрдХреЗ рд╕реЗ build_volumes: рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддрд╛ рдерд╛ред

рдЬрдм рдореИрдВ - рдореЗрд░реА рд╕реАрдЖрдИ рдмрд┐рд▓реНрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЬреЛ рджрд┐рди рдореЗрдВ n рдмрд╛рд░ рдЪрд▓рддреА рд╣реИ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП docker-compose build (рдЬреИрд╕реЗ ansible рдХреЗ рд╕рд╛рде) рдпрд╛ packer (рдмрд┐рд▓реНрдбрд╛рд╣ рдФрд░ рдкреЙрдбрдореИрди рдХреЗ рдмрдЬрд╛рдп) рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдПрдХ рдЫрд╡рд┐ рдмрдирд╛рдПрдВ, рдореИрдВ рдХреБрдЫ рдЙрджреНрджреЗрд╢реНрдп рд╣реИрдВ:

  • рд╕рдВрд╕рд╛рдзрди рдмрдЪрд╛рдПрдВ / рд╕рдВрд╕рд╛рдзрди рдмрд░реНрдмрд╛рдж рди рдХрд░реЗрдВ

    • OS рдФрд░ рдкреНрд░рддрд┐-рднрд╛рд╖рд╛ рдкреИрдХреЗрдЬ рдХреЛ рд▓рдЧрд╛рддрд╛рд░ рджреЛрдмрд╛рд░рд╛ рдбрд╛рдЙрдирд▓реЛрдб рди рдХрд░реЗрдВред

    • рдореЗрд░реЗ рд╕рдВрдЧрдарди рдХреЗ рдмреИрдВрдбрд╡рд┐рдбреНрде рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдкреИрдХреЗрдЬ рдЗрдВрдбреЗрдХреНрд╕ рд╕реЗрд╡ рдХрд░реЗрдВред

  • рдЙрдкрд▓рдмреНрдзрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ

    • рдЗрд╕реЗ рдСрдлрд╝рд▓рд╛рдЗрди рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП / рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП

    • рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдХреБрдЫ рдШрдЯрдХреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП

  • рдПрд╢реНрдпреЛрд░ рдмрд┐рд▓реНрдб рдЗрдВрдЯреАрдЧреНрд░рд┐рдЯреА

    • рд╕рдорд╛рди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдЫрд╡рд┐ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ

    • рднрд┐рдиреНрдирддрд╛ рдХреЛ рдЕрд▓рдЧ рдХрд░реЗрдВ / рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдмрд┐рд▓реНрдб рд╡рд┐рддрд░рд┐рдд рдХрд░реЗрдВ

    • рд╣рдо рдкреИрдХреЗрдЬ рдЗрдВрдбреЗрдХреНрд╕ рдЬреИрд╕реЗ рджреВрд░рд╕реНрде рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

    • рд╣рдо рдиреЗрдЯрд╡рд░реНрдХ рдкрде рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ



      • рдПрдЪрдЯреАрдЯреАрдкреАрдПрд╕ рдкрд░ рдбреАрдПрдирдПрд╕рдПрд╕рдИрд╕реА рдФрд░ рдбреАрдПрдирдПрд╕ рд╢рд╛рдпрдж рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВ



    • рд╣рдо рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдФрд░ рдХрд╛рдлреА рд╣рдж рддрдХ рд╕реАрдорд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ

    • рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдЪреЗрдХрд╕рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП



      • рдЪрд╛рдмрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рдФрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХрд╣реАрдВ рдкреНрд░рддреНрдпрд╛рдпреЛрдЬрд┐рдд рд╣реИ


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


      • рдмрд┐рд▓реНрдб-рдЯрд╛рдЗрдо рд╡реЙрд▓реНрдпреВрдо рдорд╛рдЙрдВрдЯ рдХреЗрд╡рд▓ рдмрд┐рд▓реНрдб рд╕рдордп рдкрд░ рдЖрд╡рд╢реНрдпрдХ рдХреБрдВрдЬреА рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИ (рдЙрдиреНрд╣реЗрдВ рдЫрд╡рд┐ рдХреИрд╢ рдореЗрдВ рд▓реАрдХ рдХрд┐рдП рдмрд┐рдирд╛)



  • рдмрд┐рд▓реНрдб рдлрд╛рд╕реНрдЯ рд░рдЦреЗрдВ

    • рд▓рдЧрд╛рддрд╛рд░ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдХреИрд╢ рдХрд░реЗрдВ рдФрд░ рдпрд╛рдж рд░рдЦреЗрдВред

    • рдХреИрд╢ рд╡рд┐рдлрд▓рддрд╛, рд╕рдВрднрд╛рд╡рд┐рдд рднрд┐рдиреНрдирддрд╛, рдФрд░ рдЬреЛрдЦрд┐рдо рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдпрддрд╛ рдХреЗ рдмрд┐рдВрджреБ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред



      • HTTP (рдПрд╕!) рдкреНрд░реЙрдХреНрд╕реА рдХреИрд╢


      • рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЗрдпрд░ рдХреИрд╢


      • рд╕реНрдерд╛рдиреАрдп рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреИрд╢



    • рдмрд╛рд╣рд░реА рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдмрд┐рдирд╛ рдЧреВрдВрдЧрд╛, рдлреНрд▓рд╢ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдХреИрд╢ рд▓рд╛рдЧреВ рдХрд░реЗрдВ



      • рд╕реНрдерд╛рдиреАрдп рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреИрд╢



рдЕрдЧрд░ рдореБрдЭреЗ рдХреИрд╢ рд╡реЙрд▓реНрдпреВрдо рдлреНрд▓рд╢ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ, рддреЛ рдореИрдВ рдХреИрд╢ рд╡реЙрд▓реНрдпреВрдо рдлреНрд▓рд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

0. рдпрдерд╛рд╕реНрдерд┐рддрд┐

RUN pip install app && rm -rf /root/.cache
  • рдЖрдЬ рд╕рдВрднрд╡ рд╣реИ
  • O(n_builds): рдмреИрдВрдбрд╡рд┐рдбреНрде рдЙрдкрдпреЛрдЧ
  • рдСрдлрд▓рд╛рдЗрди рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛: рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ
  • рдзреАрдореА рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг

рдП рдкреНрд░рддрд┐рдпрд╛рдВ

COPY . /app/src/app
COPY .cache/pip /app/.cache/pip
RUN pip install /app/src/app \
    && rm -rf /app/.cache/pip
  • рдЖрдЬ рд╕рдВрднрд╡ рд╣реИ
  • ~рдУ(1) рдкреИрдХреЗрдЬ рдЗрдВрдбреЗрдХреНрд╕ рдмреИрдВрдбрд╡рд┐рдбреНрде
  • рдУ (рдПрди): рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрдорд╛рдг рдкрд░ (* ONBUILD )

    • рдХреИрд╢ рдХреЙрдкреА рдХрд░рддрд╛ рд╣реИ

    • рдЕрдирд╛рд░рдХрд▓реА рдкреИрдХреЗрдЬ

    • рдХреИрд╢реЗ рд╣рдЯрд╛рддрд╛ рд╣реИ

  • рдСрдлрд╝рд▓рд╛рдЗрди рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
  • рдзреАрдореА рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг

B. RUN --mount=type=cache рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрд╕реНрдЯреНрд░реАрдо рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ Dockerfile рдХреЛ рдлреЛрд░реНрдХ рдФрд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ рдФрд░ рдПрдХ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╕реЗрдЯ рдХрд░реЗрдВ

# Fork by copying to modify every pip install line
RUN --mount=type=cache /app/.cache/pip pip install /app/src/pip
$ DOCKER_BUILDKIT=1 docker build . [...]
  • рдЖрдЬ рд╕рдВрднрд╡ рд╣реИ
  • рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдиреБрддреНрдкрд╛рджрдХрддрд╛ рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрддрд╛ рд╣реИ: рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд- Dockerfile, extra-docker-compose.yml рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИ рдЬреЛ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рднрд┐рдиреНрдирддрд╛ рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрддрд╛ рд╣реИ: рдирд╛рдорд┐рдд рдирд┐рд░реНрдорд┐рдд рдЫрд╡рд┐ред
  • рдбреЙрдХреНрд╕: --mount=type=cache рдХреИрд╢ рдлреНрд▓рд╢ рдХреИрд╕реЗ рдХрд░реЗрдВ (?)
  • ~рдУ(1) рдкреИрдХреЗрдЬ рдЗрдВрдбреЗрдХреНрд╕ рдмреИрдВрдбрд╡рд┐рдбреНрде
  • рдСрдлрд╝рд▓рд╛рдЗрди рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
  • рддреЗрдЬреА рд╕реЗ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг

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

рд╕реА.1 рдмрд┐рд▓реНрдбрд╛рд╣:
$ buildah bud -v .cache/pip:/app/.cache.pip
  • рдЖрдЬ рд╕рдВрднрд╡ рд╣реИ
  • рд╕рд╛рде рд╣реА рдЕрдиреБрддреНрдкрд╛рджрдХрддрд╛ рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрддрд╛ рд╣реИ
  • рдбреЙрдХреНрд╕: рдХреИрд╢ рдХреЛ рдХреИрд╕реЗ рдлреНрд▓рд╢ рдХрд░реЗрдВ
  • ~рдУ(1) рдкреИрдХреЗрдЬ рдЗрдВрдбреЗрдХреНрд╕ рдмреИрдВрдбрд╡рд┐рдбреНрде
  • рдСрдлрд╝рд▓рд╛рдЗрди рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
  • рддреЗрдЬреА рд╕реЗ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг
рд╕реА.2. docker (рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХреНрдпрд╛ рдкреВрдЫ рд░рд╣реА рд╣реИ)
C.2.1 рдбреЙрдХрд░ рд╕реАрдПрд▓рдЖрдИ
$ docker build -v .cache/pip:/app/.cache.pip
  • рдЖрдЬ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ
  • рд╕рд╛рде рд╣реА рдЕрдиреБрддреНрдкрд╛рджрдХрддрд╛ рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрддрд╛ рд╣реИ
  • рдбреЙрдХреНрд╕: рдХреИрд╢ рдХреЛ рдХреИрд╕реЗ рдлреНрд▓рд╢ рдХрд░реЗрдВ
  • ~рдУ(1) рдкреИрдХреЗрдЬ рдЗрдВрдбреЗрдХреНрд╕ рдмреИрдВрдбрд╡рд┐рдбреНрде
  • рдСрдлрд▓рд╛рдЗрди рдХрд╛рдо рдХрд░реЗрдЧрд╛
  • рддреЗрдЬреА рд╕реЗ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг
C.2.2 рдбреЙрдХрд░ рд▓рд┐рдЦреЗрдВ
services:
  app:
    image: imgname:latest
    build: .
    build_volumes:  # "build_volumes" ?
    - ./.cache/pip:/app/.cache/pip
$ docker-compose build
  • рдЖрдЬ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ
  • рд╕рд╛рде рд╣реА рдЕрдиреБрддреНрдкрд╛рджрдХрддрд╛ рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрддрд╛ рд╣реИ
  • рдбреЙрдХреНрд╕: рдХреИрд╢ рдХреЛ рдХреИрд╕реЗ рдлреНрд▓рд╢ рдХрд░реЗрдВ
  • рдбреЙрдХрд░-рд▓рд┐рдЦреЗрдВ рд╕реНрдХреАрдорд╛ рд╕рдВрд╢реЛрдзрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА
  • ~рдУ(1) рдкреИрдХреЗрдЬ рдЗрдВрдбреЗрдХреНрд╕ рдмреИрдВрдбрд╡рд┐рдбреНрде
  • рдСрдлрд▓рд╛рдЗрди рдХрд╛рдо рдХрд░реЗрдЧрд╛
  • рддреЗрдЬреА рд╕реЗ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг

...

  • рдХреЙрдкреА || REMOTE_FETCH || рдкрдврд╝рдирд╛()

    • рдЗрдирдореЗрдВ рд╕реЗ рдХреМрди рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИрдВ?

:point_up: рдмрд╕ рдПрдХ рд░рд┐рдорд╛рдЗрдВрдбрд░ред рдЖрдк рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЪреЗрдХрд╕рдо рдЪреЗрдХ рдХрд░рдХреЗ рдЙрд╕реЗ рдкрд┐рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХреБрдЫ рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░, рдЬреИрд╕реЗ рдХрд┐ рдкрд╛рдЗрдк, рднреА рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред

@westurner рд╡рд┐рд╕реНрддреГрдд рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрдкрдХреЗ рдХреЗрд╕ рдмреА рдХреЗ рд╕рдорд╛рди рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЖрдк рдХреИрд╢ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдЖрдкрдХреЗ рдХреЗрд╕ рд╕реА 2 рдХреА рддрд░рд╣ рдЦрддреНрдо рд╣реЛ рдЬрд╛рдПрдЧрд╛ (рдЬреЛ рдЖрдк рдорд╛рдВрдЧ рд░рд╣реЗ рд╣реИрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ):

_docker-compose.yml:_

services:
  my-cache:
    build: ./my-cache
    image: local/my-cache

  my-image:
    build: ./my-image

_my-cache/рдбреЙрдХрд░рдлрд╛рдЗрд▓:_

FROM python

RUN pip install app

_рдорд╛рдп-рдЗрдореЗрдЬ/рдбреЙрдХрд░рдлрд╛рдЗрд▓:_

FROM my-repo/my-image

RUN --mount=target=/export,type=bind,from=local/my-cache

RUN pip install /app/src/app

(https://github.com/moby/buildkit/blob/master/frontend/dockerfile/docs/experimental.md#run---mounttypecache)

рдЖрдк рдЗрд╕рдХреЗ рд╕рд╛рде рдХреИрд╢реЗ рдЗрдореЗрдЬ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:

docker-compose build my-cache

рдЖрджреЗрд╢ RUN --mount=target=/export,type=bind,from=local/my-cache рдЫрд╡рд┐ рд╕реЗ рдЬреБрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЖрдк рдХреИрд╢ рдХреЛ рд░реАрдлреНрд░реЗрд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдХреИрд╢ рдЫрд╡рд┐ рдХреЛ рд╣рдЯрд╛ рдФрд░ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдпрджрд┐ рдпрд╣ рдЕрднреА рднреА RUN --mount... рдореЗрдВ рдХреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рддреЛ рдЖрдк рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде .env рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рдВрд╕реНрдХрд░рдг рдХреЛ image: local/my-cache:$MY_VERSION рдФрд░ from=local/my-cache:$MY_VERSION рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ (рдпрд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдПрдХ рдмрд┐рд▓реНрдб рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╢рд╛рдорд┐рд▓)ред

рдЖрдк my-cache рд╕реЗрд╡рд╛ рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп docker-compose рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рдЖрдк рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рдХрд┐ рдпрд╣ рдЖрдкрдХреА рдореБрдЦреНрдп рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рдорд╛рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣реЛред

рдЖрдкрдХреЛ рдЕрднреА рднреА DOCKER_BUILDKIT=1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА (рдЬреИрд╕реЗ рдЖрдкрдХреЗ рдмреА рдорд╛рдорд▓реЗ рдореЗрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реЛрдЧрд╛) рдФрд░ рдпрд╣ рдЕрднреА рднреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реЛрдЧрд╛ (рд▓реЗрдХрд┐рди рдЖрдкрдХрд╛ рд╕реА 2 рдХреЗрд╕ рдпрд╛ рддреЛ рдирд╣реАрдВ рд╣реИ)ред

рдпрджрд┐ рдпрд╣ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИ рддреЛ рдЖрдк рдХреНрдпрд╛ рджрдВрдб рджреЗрдЦреЗрдВрдЧреЗ? рдпрджрд┐ рдЖрдк рдХреИрд╢ рдЗрдореЗрдЬ local/my-cache рдХреЛ рдбреЙрдХ рд╣рдм (рдПрдХ рдЕрд▓рдЧ рд░реЗрдкреЛ рдирд╛рдо рдХреЗ рд╕рд╛рде) рдпрд╛ рдПрдХ рдирд┐рдЬреА рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдореЗрдВ рдбрд╛рд▓рддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдмрд┐рд▓реНрдб рдХреЗ рд▓рд┐рдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ (рдЬреЛ рдПрдХ рдЕрд▓рдЧ рдХреИрд╢ рдмрдирд╛рдПрдЧрд╛), рдПрдХ рд╣реА рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рд╣рдореЗрд╢рд╛ рд╕рдорд╛рди рд╣реЛрддрд╛ рд╣реИ рдХреИрд╢, рдХреНрдпрд╛ рдпрд╣ рдЗрд╕реЗ рдкреБрди: рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рдХрд░реЗрдЧрд╛? рдЖрдкрдХреЛ docker-compose рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕реЗрд╡рд╛ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдФрд░ рдмрд┐рд▓реНрдб рдХрдорд╛рдВрдб рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред (рдбреЙрдХрд░ рд╣рдм рдХреЛ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдпрд╣ рдЖрдкрдХреА рдЕрдиреНрдп рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдФрд░ рдПрдХ рдмрд╛рд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдЬрдм рддрдХ рдХрд┐ рдЖрдк рдПрдХ рдирдП рдХреИрд╢ рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ)

рдЕрд╕реНрд╡реАрдХрд░рдг: рдореИрдВрдиреЗ рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред

@Yajo рдкрд╛рдЗрдк рдореЗрдВ рдЪреЗрдХрд╕рдо рд╕рдорд░реНрдерди рдореВрд▓ рд░реВрдк рд╕реЗ 'рдкреАрдк' рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдлрд┐рд░ рдкрд╛рдЗрдк рдореЗрдВ рд╡рд┐рд▓рдп рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЖрдк рдкрд╛рдЗрдк рдЖрд╡рд╢реНрдпрдХрддрд╛ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдореЗрдВ URL рдлрд╝реНрд░реИрдЧрдореЗрдВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреНрдЮрд╛рдд рдЕрдЪреНрдЫреЗ рд╣реИрд╢ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред (рдЗрд╕ рд╕рд╛рд▓ PyPA рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕реБрд░рдХреНрд╖рд╛ рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рдлрдВрдбрд┐рдВрдЧ рд╣реИ; TUF (рдж рдЕрдкрдбреЗрдЯ рдлреНрд░реЗрдорд╡рд░реНрдХ; рдмрд┐рд▓реНрдХреБрд▓ рдбреЙрдХрд░ рдиреЛрдЯрд░реА рдХреА рддрд░рд╣) PyPI рдореЗрдВ рд╕рдкреЛрд░реНрдЯ рдЗрд╕ рд╕рд╛рд▓ рдХреЗ рдЕрдВрдд рдореЗрдВ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рд╣реИред) docker рдЗрдореЗрдЬ рдореЗрдВ pip рдФрд░ PyPI (рдХреА рдФрд░ рдЯреНрд░рд╕реНрдЯ рдХреЗ рд╕рд╛рде) рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдХрд░рдирд╛ рд╕рдВрднрд╡рдд: рдЗрд╕ рд╡рд░реНрд╖ рдХреЗ рдЕрдВрдд рдореЗрдВ рдПрдХ рд╡рд┐рд╖рдп рд╣реЛрдЧрд╛ред
(рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ; рдереЛрдбрд╝рд╛ рдУрдЯреА рд▓реЗрдХрд┐рди рд╕рдВрдмрдВрдзрд┐рдд рдХреЗ рд▓рд┐рдП) https://discuss.python.org/t/pypi-security-work-multifactor-auth-progress-help-needed/1042/

@lucasbasquerotto рдЖрдкрдХреА рдорджрдж рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдпрд╣ рдирд┐рд░реНрдорд╛рдг рд╕рдордп рдкрд░ рдХреЗрд╡рд▓ --volume рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рд╕реЗ рдХрд╣реАрдВ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИред рдЕрд░реНрдерд╛рддреН, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

  • DOCKER_BUILDKIT=1 рдХреЛ docker build рд╢реЗрд▓ рдПрдирд╡реА рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛
  • RUN --mount=type=cache рдФрд░ args рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рднреА/рд╣рд░ рдЕрдкрд╕реНрдЯреНрд░реАрдо Dockerfile RUN рдирд┐рд░реНрджреЗрд╢ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ (рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ)
  • рдХрд┐рд╕реА рдЕрдиреНрдп рдЫрд╡рд┐ рдореЗрдВ рдкрд╣реБрдВрдЪ рдкрдврд╝реЗрдВ/рд▓рд┐рдЦреЗрдВ? рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓рддрд╛! рдпрд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреИрд╢ рд╢рд╛рдпрдж-рдмрд╛рд╕реА рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЬрдореЗ рд╣реБрдП рд╣реИрдВ?

рдЕрдЧрд░ рдореИрдВ рд╣реЛрд╕реНрдЯ рд╕реЗ рдлрд╛рдЗрд▓ рдХреЙрдкреА рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдпрд╛ рдмрд┐рд▓реНрдб-рдЯрд╛рдЗрдо рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдЬреЛ рдХрд╣реАрдВ рдФрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдмрд┐рд▓реНрдб рд╕рдордп рдкрд░ рд╡реЙрд▓реНрдпреВрдо рдмрдврд╝рд╛рдирд╛ рдХрд┐рддрдирд╛ рдХрдо рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ?

рдХреЙрдкреА || REMOTE_FETCH || рдкрдврд╝рдирд╛()

  • рдЗрдирдореЗрдВ рд╕реЗ рдХреМрди рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИрдВ?

@рд╡реЗрд╕реНрдЯрд░реНрдирд░

рдбреЙрдХрдЯрд░ рдмрд┐рд▓реНрдб рд╢реЗрд▓ env рдореЗрдВ DOCKER_BUILDKIT=1 рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛

рдпрджрд┐ рдЖрдк docker-compose рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдЖрдкрдХреА рдЕрдиреНрдп рдкреЛрд╕реНрдЯ рдореЗрдВ рджреЗрдЦрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдХрд┐рд╕реА рдХрдВрдЯреЗрдирд░ рд╕реЗ рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ, рдЬреИрд╕реЗ:

$ sudo curl -L --fail https://github.com/docker/compose/releases/download/1.24.0/run.sh -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose

рдлрд┐рд░ рдЖрдк рдЙрд╕ env рд╡реИрд░рд┐рдПрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓ рдХреЛ /usr/local/bin/docker-compose рдореЗрдВ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕реЗ рдмрджрд▓реЗрдВ:

exec docker run --rm $DOCKER_RUN_OPTIONS $DOCKER_ADDR $COMPOSE_OPTIONS $VOLUMES -w "$(pwd)" $IMAGE "$@"

рдкреНрд░рддрд┐

DOCKER_BUILDKIT=1
exec docker run --rm $DOCKER_RUN_OPTIONS $DOCKER_ADDR $COMPOSE_OPTIONS $VOLUMES -w "$(pwd)" --env DOCKER_BUILDKIT=$DOCKER_BUILDKIT $IMAGE "$@"

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

_(рдпрджрд┐ рдЖрдк рдПрдХ рдХрдВрдЯреЗрдирд░ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рдЪрд▓рддреЗ рд╣реИрдВ, рддреЛ рдЙрдкрд░реЛрдХреНрдд рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ)_

RUN --cache рдФрд░ args . рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рднреА / рд╣рд░ рдЕрдкрд╕реНрдЯреНрд░реАрдо Dockerfile RUN рдирд┐рд░реНрджреЗрд╢ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛

рдпрджрд┐ рдореИрдВрдиреЗ рдЦреБрд▓рд╛рд╕рд╛ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдпрд╣ RUN --mount=type=bind... рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, Dockerfile рдХреЛ рдмрджрд▓рдирд╛ рднреА рдЦрд░рд╛рдм рдЖрдИрдПрдордУ рд╣реИред рдПрдХ -v рд╡рд┐рдХрд▓реНрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рдмреЗрд╣рддрд░ рдФрд░ рдЕрдзрд┐рдХ рдкрд╛рд░рджрд░реНрд╢реА рд╣реЛрдЧрд╛ред

рдХрд┐рд╕реА рдЕрдиреНрдп рдЫрд╡рд┐ рдореЗрдВ рдкрд╣реБрдВрдЪ рдкрдврд╝реЗрдВ/рд▓рд┐рдЦреЗрдВ? рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓рддрд╛! рдпрд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреИрд╢ рд╢рд╛рдпрдж-рдмрд╛рд╕реА рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЬрдореЗ рд╣реБрдП рд╣реИрдВ?

рдЬрдм рдЖрдк рдЫрд╡рд┐ рдХреЛ рдмрд╛рдВрдзрддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рд╕рдВрднрд╡рддрдГ рдПрдХ рдХрдВрдЯреЗрдирд░ (рдпрд╛ рдЬреЛ рднреА рдирд╛рдо рд╣реЛрдЧрд╛, рдПрдХ рдкреНрд░рддрд┐рдХреГрддрд┐ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде) рдмрдирд╛рдПрдЧрд╛, рдФрд░ рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди рд╡рд╣рд╛рдВ рдХрд┐рдП рдЧрдП рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рд╕реЗ рдореВрд▓ рдЫрд╡рд┐ рдирд╣реАрдВ рдмрджрд▓рдиреА рдЪрд╛рд╣рд┐рдП (рдЗрд╕рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реЛрдЧрд╛)ред рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдмрд┐рд▓реНрдб рдореЗрдВ my-repo/my-cache:my-version рдирд╛рдо рдХреА рдХреИрд╢ рдЗрдореЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЕрдЧрд▓реЗ рдмрд┐рд▓реНрдб рдореЗрдВ рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рд╡реИрд╕рд╛ рд╣реА (рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдпрддрд╛) рд╣реЛрдЧрд╛ред рдпрджрд┐ рдЖрдк рдЕрдзрд┐рдХ рдЕрдк-рдЯреВ-рдбреЗрдЯ рдХреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдПрдХ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рдирдИ рдЫрд╡рд┐ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ my-repo/my-cache:my-new-version ред

рдЗрдирдореЗрдВ рд╕реЗ рдХреМрди рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИрдВ?

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

рдпрджрд┐ COPY рдХрдорд╛рдВрдб рдЖрдкрдХреЗ рдорд╢реАрди рдХреИрд╢ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛ рд░рд╣рд╛ рд╣реИ, рддреЛ рдореИрдВ рдЗрд╕реЗ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рдорд╛рдирддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдЕрдиреНрдп рдорд╢реАрди рдореЗрдВ pip install (рдпрд╛ apt-get , рдпрд╛ рдЬреЛ рднреА) рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рдХреНрдпрд╛ рдЖрдк рдЧрд╛рд░рдВрдЯреА рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдХреИрд╢ рдХреА рд╕рд╛рдордЧреНрд░реА рд╡рд╣реА рд╣реЛрдЧреА? рд╢рд╛рдпрдж рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдЪрд┐рдВрддрд╛ рдХрд╛ рд╡рд┐рд╖рдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╢рд╛рдпрдж рдирд╣реАрдВред

рджреВрд╕рд░реА рдУрд░, рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдРрд╕реА рдлрд╝рд╛рдЗрд▓реЗрдВ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрд┐рд╕реА рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╕реНрдерд╛рди рдкрд░ рд╣реИрдВ рдЬреЛ рдЖрдк "рд╕реНрд╡рдпрдВ" (рдЬреИрд╕реЗ S3 рдмрд╛рд▓реНрдЯреА) рдореЗрдВ рд╣реИрдВ, рддреЛ рдЙрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрдкрдиреА рдорд╢реАрди рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рдЙрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ COPY рдХрдорд╛рдВрдб рд╕реЗ рдХреЙрдкреА рдХрд░реЗрдВ, рдлрд┐рд░ рдЖрдк рдЗрд╕реЗ рджреВрд╕рд░реЗ рд╕реЗ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдПрдХ рд╣реА рдкрд░рд┐рдгрд╛рдо рдХреЗ рд╕рд╛рде рдорд╢реАрди (рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдлрд╛рдЗрд▓реЗрдВ рдирд╣реАрдВ рдмрджрд▓реА рд╣реИрдВ, рдФрд░ рджреВрд╕рд░реА рдорд╢реАрди рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреЗ рд╕рдорд╛рди рд╣реИ)ред рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕реЗ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдорд╛рдиреВрдВрдЧрд╛ред рдпрд╣ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдлрд╛рдЗрд▓реЗрдВ рдХрд╣рд╛рдВ рд╕реЗ рдЖ рд░рд╣реА рд╣реИрдВ рдФрд░ рдЙрди рдкрд░ рдЖрдкрдХрд╛ рдХрд┐рддрдирд╛ рдирд┐рдпрдВрддреНрд░рдг рд╣реИред

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

рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдбреЙрдХрд░ рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ рдмрдЧ рд╣реИ рдЬреЛ рдПрдХ рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ go mod download рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдмрдирд╛рддрд╛ рд╣реИ, (рдХрдо рд╕реЗ рдХрдо рд╣рдорд╛рд░реЗ рдЖрдХрд╛рд░ рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП), рддреЛ рдмрд╕ рдЗрд╕реЗ рд╣рд░ рдмрд╛рд░ рдореЗрд░реЗ рд╕рднреА GOPATH/pkg/mod рдХреЛ рдлрд┐рд░ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд▓рд╛рдирд╛ рд╣реИ рди рдХреЗрд╡рд▓ рдмреЗрдХрд╛рд░, рдмрд▓реНрдХрд┐ рдЯреВрдЯрд╛ рд╣реБрдЖред тАН

рдпрджрд┐ рдореИрдВ --volume !

@kevincantu RUN --mount=type=cache рдЖрдкрдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЛ рдХрд╡рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП

рдЗрд╕рдХреЗ рд▓рд┐рдП рдбреЙрдХрд░ рдмрд┐рд▓реНрдб рдХреЗ рднреАрддрд░ рд╕реЗ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдХрдо рд╕реЗ рдХрдо рдПрдХ рд╕рдлрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ рдореЗрдВ рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдРрд╕рд╛ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИред

https://github.com/moby/moby/issues/14080#issuecomment -484314314 @westurner рджреНрд╡рд╛рд░рд╛ рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдЕрд╡рд▓реЛрдХрди рд╣реИ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП buildkit рдирд╣реАрдВ рдорд┐рд▓рд╛:

$ sudo docker -v
Docker version 19.03.1, build 74b1e89

$ sudo DOCKER_BUILDKIT=1 docker build .
├Д+├Ь Building 0.1s (2/2) FINISHED                                                                                                                
 => ├Дinternal├Ь load build definition from Dockerfile                                                                                       0.0s
 => => transferring dockerfile: 407B                                                                                                       0.0s
 => ├Дinternal├Ь load .dockerignore                                                                                                          0.0s
 => => transferring context: 2B                                                                                                            0.0s
failed to create LLB definition: Dockerfile parse error line 8: Unknown flag: mount

рдореЗрд░рд╛ Dockerfile # syntax=docker/dockerfile:experimental рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ docker-compose рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред ENV DOCKER_BUILDKIT 1 рдореЗрдВ Dockerfile рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдЗрд╕реЗ docker-compose.yml рд╕реЗ ARG DOCKER_BUILDKIT $ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреА рдкрд╛рд╕ рдХрд░ рджрд┐рдпрд╛ рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╣реА рд╣реИ:

$ sudo docker-compose up --build
Building web
ERROR: Dockerfile parse error line 10: Unknown flag: mount

@lucasbasquerotto https://github.com/moby/moby/issues/14080#issuecomment -484639378 рдореЗрдВ рдЖрдкрдиреЗ рдЬреЛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рдЙрд╕рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдбреЙрдХрд░-рдХрдВрдкреЛрдЬрд╝ рдХреЗ рд╕реНрдерд╛рдкрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛?

рдЕрдВрдд рдореЗрдВ, рдореБрдЭреЗ рдпрд╣ рднреА рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдореЗрд░реЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЛ рдХрд╡рд░ рдХрд░реЗрдЧрд╛, рд╢рд╛рдпрдж рдЖрдк рдореЗрдВ рд╕реЗ рдХреБрдЫ рдореБрдЭреЗ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдореБрдЭреЗ рдЗрд╕рдХрд╛ рдкреАрдЫрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдирд╣реАрдВред рдореИрдВ рд╕реНрдерд╛рдиреАрдп рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдб-рдЯрд╛рдЗрдо рдХреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬреЛ рдмрд┐рд▓реНрдб рдХреЗ рдмреАрдЪ рдЬреАрд╡рд┐рдд рд░рд╣рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдкрд░ рдХреЗрд╡рд▓ рдирдП рд▓реЛрдЧреЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рдкрдбрд╝реЗред рдЗрд╕рд▓рд┐рдП рдореИрдВ RUN --mount=type=cache,target=/deps рдХреЛ Dockerfile рдореЗрдВ рдЬреЛрдбрд╝реВрдВрдЧрд╛ рдФрд░ рдирд┐рд░реНрднрд░рддрд╛ рдкреНрд░рдмрдВрдзрдХ рдХреЗ рдХреИрд╢реЗ рдХреЛ /deps рдкрд░ рд╕реЗрдЯ рдХрд░реВрдВрдЧрд╛ред

рдбреЙрдХрд░ рдХрдВрдкреЛрдЬрд╝ рдХреЗ рд▓рд┐рдП https://github.com/docker/compose/pull/6865 рджреЗрдЦреЗрдВ , рдЬреЛ рдХрд┐ рдХрдВрдкреЛрдЬрд╝ рдХреЗ рдЖрдЧрд╛рдореА рд░рд┐рд▓реАрдЬрд╝ рдЙрдореНрдореАрджрд╡рд╛рд░ рдореЗрдВ рд╣реЛрдЧрд╛

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИ ... рдореИрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП binfmt рдХреЗ рд╕рд╛рде x86_64 рд╣реЛрд╕реНрдЯ рдкрд░ рдЖрд░реНрдо рдХреЗ рд▓рд┐рдП рдХрдВрдЯреЗрдирд░ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ /usr/bin рдореЗрдВ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реНрдерд┐рд░ qemu cpu рдПрдореБрд▓реЗрдЯрд░ рд╣реЛред

рдореЗрд░рд╛ рд╡рд░реНрддрдорд╛рди рд╕рдорд╛рдзрд╛рди рдХрдВрдЯреЗрдирд░ рдореЗрдВ qemu-arm-static рдХреЛ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рд╣реИ:

FROM arm32v7/alpine:3.10
COPY qemu-arm-static /usr/bin/qemu-arm-static
RUN apk update && apk upgrade
RUN apk add alpine-sdk cmake
...

рдЖрд╕рд╛рди рдЙрдкрд╛рдп рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рдореЗрд░реА рдлрд╛рдЗрд▓ рдХреЛ рдХреЗрд╡рд▓ рддрднреА рдорд╛рдЙрдВрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдП рдЬрдм рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ рдЬрд░реВрд░рдд рд╣реЛ:
docker build -v /usr/bin/qemu-arm-static:/usr/bin/qemu-arm-static -t test:arm32v7 .
рдпрд╣ рдбреЙрдХрд░ рд░рди рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдХрдВрдЯреЗрдирд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдпрд╛рдж рдЖрддреА рд╣реИред

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

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

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

@aleha рдХреНрдпрд╛ рдЖрдкрдХреЛ рдЕрднреА рднреА рдХрдВрдЯреЗрдирд░ рдХреЗ рднреАрддрд░ рд╕реНрдерд┐рд░ рдХреНрдпреВрдореВ рдПрдореБрд▓реЗрдЯрд░ рдмрд╛рдЗрдирд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ?

@cybe рдЕрдм рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдпрджрд┐ F -flag рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЬреЛ рдХрд┐ linuxkit/binfmt рдкреИрдХреЗрдЬ рдХрд░рддрд╛ рд╣реИ)ред рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдпрд╣рд╛рдБ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдХреНрдпрд╛ рдХреЛрдИ рдмрд┐рд▓реНрдбрдХрд┐рдЯ рдХреЛ рдЖрдЬрдорд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рдордХрд╛рдЬреА рд╕реЗрдЯрдЕрдк рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реИ? рдореИрдВ рдЗрд╕реЗ рдЙрдмрдВрдЯреВ рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рдореЗрд░рд╛ рд╕реЗрдЯрдЕрдк рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

cat /etc/docker/daemon.json

{
  "experimental": true
}

Dockerfile

# syntax=docker/dockerfile:experimental

FROM ruby:2.6.3

RUN --mount=type=cache,target=/bundle/vendor

sudo docker -v

рдбреЙрдХрд░ рд╕рдВрд╕реНрдХрд░рдг 19.03.1, рдмрд┐рд▓реНрдб 74b1e89

DOCKER_BUILDKIT=1 sudo docker build .

рдбреЗрдореЙрди рд╕реЗ рддреНрд░реБрдЯрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛: рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдкрд╛рд░реНрд╕ рддреНрд░реБрдЯрд┐ рдкрдВрдХреНрддрд┐ 12: рдЕрдЬреНрдЮрд╛рдд рдзреНрд╡рдЬ: рдорд╛рдЙрдВрдЯ

sudo рдЗрд╕рдХреЗ рд╕рд╛рде env vars рдирд╣реАрдВ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдЖрдк рдЗрд╕реЗ sudo -E рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдмрддрд╛рддреЗ рдпрд╛ рд╕реБрдбреЛ рдХреЗ рднреАрддрд░ рдЪрд░ рдШреЛрд╖рд┐рдд рдирд╣реАрдВ рдХрд░рддреЗред

рдореИрдВрдиреЗ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╢рдмреНрдж рд▓рд┐рдЦреЗ рдФрд░ рдХреИрд╢ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рджрд┐рдЦрд╛рддреЗ рд╣реБрдП рдХреБрдЫ рдиреНрдпреВрдирддрдо рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдП

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдиреАрдЪреЗ рджреЗрдЦреЗрдВ

@ cpuguy83 рдзрдиреНрдпрд╡рд╛рдж!

@thisismydesign рдЖрдкрдХреЗ рдЙрддреНрд╕рд╛рд╣ рдХреЛ рдмрд░реНрдмрд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк --cache node_modules рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рдпрд╣ рдЕрдВрддрд┐рдо рдЫрд╡рд┐ рдореЗрдВ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХрд╛ рдРрдк рдЯреВрдЯ рдЧрдпрд╛ рд╣реИред

@glensc рдЕрд░реЗ рддреБрдо рд╕рд╣реА рд╣реЛ .. рдХреНрдпрд╛ рдЕрдВрддрд┐рдо рдЫрд╡рд┐ рдХрд╛ рдмрд┐рд▓реНрдб-рдЯрд╛рдЗрдо рдХреИрд╢ рд╣рд┐рд╕реНрд╕рд╛ рдмрдирд╛рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ?

рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рдЗрд╕реЗ рд╡рд┐рдЬреНрдЮрд╛рдкрд┐рдд рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдорд╛рдирд╛ рдЬрд╛рдПрдЧрд╛

рдмрд┐рд▓реНрдб рдХрдВрдЯреЗрдирд░ рдХреЛ рдХрдВрдкрд╛рдЗрд▓рд░ рдФрд░ рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреИрд╢ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп ~/.npm рдореИрдк рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПтАж https://docs.npmjs.com/files/folders.html#cache

@рдпрд╣ рдореЗрд░реА рдбрд┐рдЬрд╛рдИрди рд╣реИ

рдЖрдк рдХрд┐рд╕реА рдЕрдиреНрдп рдЫрд╡рд┐ рдХреЛ рдХреИрд╢ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╛ рддреЛ рдЗрд╕реЗ рдЕрдкрдиреЗ Dockerfile рдореЗрдВ рдмрдирд╛рдХрд░ рдпрд╛ рдХрд┐рд╕реА рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдПрдХ рд╢рд╛рдмреНрджрд┐рдХ рдЫрд╡рд┐ рдФрд░ COPY --from рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ

FROM example/my_node_modules:latest AS node_modules

FROM nodejs AS build
COPY --from=/node_modules node_modules 
...

рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдк рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЙрд╣ рдореБрдЭреЗ рдЗрд╕реЗ рд▓рд╛рдиреЗ рдФрд░ рдпрд╣рд╛рдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рд╕реЗ рдирдлрд░рдд рд╣реИ (рд╣рд╛рдп рджреЛрд╕реНрддреЛрдВ рднреА)

рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИред


рдХреНрдпрд╛ рдХреЛрдИ рдЕрдЪреНрдЫреА рдЬрдЧрд╣ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдореИрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реВрдВ рдпрд╛ рдХреЛрдИ рдХреЙрд▓ рдпрд╛ рд╕реВрдЪреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдореИрдВ рдпрд╣рд╛рдВ рдбрд╛рдЗрдЬреЗрд╕реНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реВрдВ?

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрдЧрд░ рд╣рдореЗрдВ рдЗрд╕ рдкрд░ рдХреБрдЫ рд╕рдВрд╕рд╛рдзрди рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдХреА рдЬрд░реВрд░рдд рд╣реИ рддреЛ рдореЗрд░реЗ рдкрд╛рд╕ 1 рдХреНрд░рд┐рд╕ рдиреЛрд╡рд╛ рдФрд░ рдПрдХ рдЫреЛрдЯреА рд╕реА рдЯреАрдо рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рд╢рд╛рдпрдж рдЗрд╕реЗ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╛рдЬреА рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

TLDR рдХреНрдпрд╛ рдореИрдВ рдЗрд╕реЗ рдХреГрдкрдпрд╛ рдХреЛрдб рдХрд░ рд╕рдХрддрд╛ рд╣реВрдБ? рдХреНрдпрд╛ рдХреЛрдИ рд╣реИ рдЬрд┐рд╕рд╕реЗ рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

_TLDR_ рдХреНрдпрд╛ рдореИрдВ рдЗрд╕реЗ рдХреГрдкрдпрд╛ рдХреЛрдб рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ? рдХреНрдпрд╛ рдХреЛрдИ рд╣реИ рдЬрд┐рд╕рд╕реЗ рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

рдореИрдВ рдбреЙрдХрд░ рдХреЗ рд▓рд┐рдП рдмрд╛рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рд▓реЗрдХрд┐рди рдореЗрд░реА рдзрд╛рд░рдгрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╡реЗ рдмрд┐рд▓реНрдб рдореЗрдВ рд╡реЙрд▓реНрдпреВрдо рдорд╛рдЙрдВрдЯрд┐рдВрдЧ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреБрд▓реЗ рдирд╣реАрдВ рд╣реИрдВ (рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╢рд╛рдпрдж рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП)

рдмрд┐рд▓реНрдбрдЯрд╛рдЗрдо -v рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдЕрдм рдмрд┐рд▓реНрдбрдХрд┐рдЯ рджреНрд╡рд╛рд░рд╛ рдХрд╡рд░ рдХрд┐рдП рдЧрдП рд╣реИрдВред рдЗрд╕рдиреЗ рдХрдо рд╕реЗ рдХрдо рдореЗрд░реЗ рд▓рд┐рдП рдЗрд╕реЗ рд╣рд▓ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИред

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

рдзрдиреНрдпрд╡рд╛рдж @unilynx

+1 рд╕реЗ @unilynx рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдкрд░, рдмрд┐рд▓реНрдбрдХрд┐рдЯ рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдмрд┐рд▓реНрдб рдЯрд╛рдЗрдо рд╡реЙрд▓реНрдпреВрдо рдХреЗ рдореБрджреНрджреЛрдВ рдХреЛ рднреА рд╣рд▓ рдХрд┐рдпрд╛ред

рдореИрдВ рд╢рд░реНрдд рд▓рдЧрд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдЕрдЧрд░ рдХрд┐рд╕реА рдиреЗ рдХреБрдЫ рд▓рд┐рдВрдХ рдЫреЛрдбрд╝реЗ рдФрд░ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣рдо рдЕрдкрдиреЗ рджреЛрд╕реНрддреЛрдВ рдХреЛ рдЪрдордХрджрд╛рд░ рдХреНрд▓реЛрдЬ рдмрдЯрди рджрдмрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдордирд╛ рд╕рдХрддреЗ рд╣реИрдВред


(рдореБрдЭреЗ рднреА рдЙрдирд╕реЗ рд▓рд╛рдн рд╣реЛрдЧрд╛)

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

рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЕрдкрдиреЗ рд╕рднреА рдирд┐рд░реНрдорд╛рдг рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреЛ build рд╕рдордп рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЕрд╕реНрдерд╛рдпреА рд╡реЙрд▓реНрдпреВрдо рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ рдФрд░ рдКрдкрд░ рдмрддрд╛рдП рдЧрдП рдЗрд╕ рдмреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд┐рдЫрд▓реЗ рдХреИрд╢ рдХреЗ рд╕рд╛рде рдЫрд╡рд┐ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕рдВрдЧрдард┐рдд рдХрд░рддрд╛ рд╣реВрдВред

рдореИрдВ рдЕрдкрдиреА рдЫрд╡рд┐ рдХреЛ рдЦреБрдж рдХреЗ рдКрдкрд░ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ рдЬреИрд╕реЗ рдХрд┐ рдУрд╡рд░рд▓реЗ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдиреЗ рдХреЗрд╡рд▓ рдПрдХ рдЫреЛрдЯрд╛ рдбреЗрд▓реНрдЯрд╛ рдкрдХрдбрд╝рд╛ред

рдореИрдВ рдирд┐рд░реНрдорд╛рдг рд╕рдордп рдкрд░ рдЕрдиреНрдп рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╡реЙрд▓реНрдпреВрдо рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рднреА рд╕рдХреНрд╖рдо рдерд╛ред


рдХреНрдпрд╛ рдЕрдиреНрдп рд▓реЛрдЧ рдРрд╕рд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИрдВ?

(рдХреИрд╢) рдорд╛рдЙрдВрдЯ "рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ" рдлрд╝реНрд░рдВрдЯ-рдПрдВрдб рдореЗрдВ рд╣реИрдВ; https://github.com/moby/buildkit/blob/master/frontend/dockerfile/docs/experimental.md рдореЗрдВ рд╡рд░реНрдгрд┐рдд (рдПрдХ рдмреИрдардХ рдореЗрдВ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рд▓рд┐рдВрдХ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ)

рдзрдиреНрдпрд╡рд╛рдж @thaJeztah LMK рдЕрдЧрд░ рдореИрдВ рдпрд╣рд╛рдБ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реВрдБ :)

https://github.com/moby/moby/issues/14080#issuecomment -547662701

@thisismydesign рдЖрдкрдХреЗ рдЙрддреНрд╕рд╛рд╣ рдХреЛ рдмрд░реНрдмрд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк --cache node_modules рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рдпрд╣ рдЕрдВрддрд┐рдо рдЫрд╡рд┐ рдореЗрдВ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХрд╛ рдРрдк рдЯреВрдЯ рдЧрдпрд╛ рд╣реИред

@thaJeztah рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЙрдкрд░реЛрдХреНрдд рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИред рдХреБрдЫ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓рдирд╛ рдкрд╕рдВрдж рдХрд░реЗрдВрдЧреЗ рдЬрд╣рд╛рдБ рдХреИрд╢ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ рдЬреИрд╕реЗ npm install рдирд┐рд░реНрдорд╛рдг рд╕рдордп рдХреЗ рджреМрд░рд╛рди рдЬреЛ рдкрд░рд┐рдгрд╛рдореА рдЫрд╡рд┐ рдХреЛ рдХреИрд╢реНрдб рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред

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

@thaJeztah рдХреИрд╢ рдорд╛рдЙрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рдпрд╣рд╛рдВ рджрд┐рдП рдЧрдП рд╣реИрдВ рдЬреЛ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдЕрдВрддрд┐рдо рдЫрд╡рд┐ рдореЗрдВ рдорд╛рдЙрдВрдЯ рдХреИрд╕реЗ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдФрд░ рдЗрд╕рдореЗрдВ рдмрд┐рд▓реНрдб-рдЯрд╛рдЗрдо рдХреИрд╢рд┐рдВрдЧ рдХреЗ рдХрдИ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓реЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

рдПрдирдкреАрдПрдо рдХреЗ рд▓рд┐рдП: рдХреНрдпрд╛ рдХреЛрдИ рдПрдирдкреАрдПрдо рдХреИрд╢ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдХреИрд╢ рдорд╛рдЙрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ (рджреЗрдЦреЗрдВ https://docs.npmjs.com/cli-commands/cache.html, рдЖрдорддреМрд░ рдкрд░ ~/.npm )?

@ankon рдпрд╣ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВ рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛ рджреВрдВрдЧрд╛ред рдПрдХ рдФрд░ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдмрдВрдбрд▓рд░ рдФрд░ рд░реВрдмреА рд╣реИред

рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ (рдЕрднреА рддрдХ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ) рдмрдВрдбрд▓рд░ рдХреЗ рд▓рд┐рдП рдЖрдк рдХрдо рд╕реЗ рдХрдо $BUNDLE_PATH рдкрд░ рдмрд┐рд▓реНрдб рд╡реЙрд▓реНрдпреВрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдФрд░ рдлрд┐рд░ рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди рдиреЗрдЯрд╡рд░реНрдХ рдирд┐рд░реНрднрд░рддрд╛ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ

bundle install
bundle package
bundle install --standalone --local

рдЗрд╕рдХрд╛ рдореВрд▓ рд░реВрдк рд╕реЗ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреИрд╢реНрдб рдмрдВрдбрд▓ рдЗрдВрд╕реНрдЯреЙрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╣реИ, рд╡рд╣рд╛рдВ рд╕реЗ рдЖрдк рд░рддреНрдиреЛрдВ рдХреЛ ./vendor/cache рдореЗрдВ рдкреИрдХреЗрдЬ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ ./bundle рдореЗрдВ рдкреБрдирдГ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдпрд╣ рд░рддреНрдиреЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдордп рдирд╣реАрдВ рд▓рдЧрд╛рддрд╛ рд╣реИ, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд┐рд▓реНрдб рдЪрд░рдг рдХреЛ рд▓рдВрдмрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

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

рдзрдиреНрдпрд╡рд╛рдж, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдЕрднреА рднреА рдПрдХ рдХрд╛рдордХрд╛рдЬ рд╣реИ рдХреНрдпреЛрдВрдХрд┐

  • рдЖрдкрдХреЛ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдХрд░рдиреА рд╣реЛрдЧреА
  • рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдмрд┐рд▓реНрдб рдФрд░ рд░рди рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рдмреАрдЪ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдВ рд╣реИрдВ (рдЖрдк рдЙрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдЖрдкрдиреЗ рдмрд┐рд▓реНрдб рдХреЗ рджреМрд░рд╛рди рд╡реЙрд▓реНрдпреВрдо рдорд╛рдЙрдВрдЯ рдХрд┐рдпрд╛ рд╣реИ, рд╣реИ рдирд╛?) рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реЗрдЯрдЕрдк рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ

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

@thisismydesign рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЬреЛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рд╡рд╣ рдмрд┐рд▓реНрдб рдФрд░ рд░рди рдХреЗ рдмреАрдЪ рдХреИрд╢ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рд╣реИ?

рдмрд┐рд▓реНрдбрдХрд┐рдЯ рдХреЗрд╡рд▓ рдПрдХ рд▓рд┐рдирдХреНрд╕ рд╕рдорд╛рдзрд╛рди рд╣реИ, рд╣рдо рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ рдХреНрдпрд╛ рдХрд░рддреЗ рд╣реИрдВ?

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

рдмрд┐рд▓реНрдбрдХрд┐рдЯ рдХреЗрд╡рд▓ рдПрдХ рд▓рд┐рдирдХреНрд╕ рд╕рдорд╛рдзрд╛рди рд╣реИ, рд╣рдо рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ рдХреНрдпрд╛ рдХрд░рддреЗ рд╣реИрдВ?

рдЖрдк рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ рдмрд┐рд▓реНрдбрдХрд┐рдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

https://docs.docker.com/develop/develop-images/build_enhancements/

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

рдЖрдкрдХреЗ рд▓рд┐рдВрдХ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ @nigelgbanks :

Only supported for building Linux containers

рдУрд╣ рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ рд▓рд┐рдирдХреНрд╕ рдХрдВрдЯреЗрдирд░ рдмрдирд╛ рд░рд╣реЗ рдереЗред

@thisismydesign рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЬреЛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рд╡рд╣ рдмрд┐рд▓реНрдб рдФрд░ рд░рди рдХреЗ рдмреАрдЪ рдХреИрд╢ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рд╣реИ?

рдпрд╣ рдХреИрд╢рд┐рдВрдЧ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдореЗрд░реЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЛ рд╣рд▓ рдХрд░реЗрдЧрд╛, рд╣рд╛рдВред

рдЗрд╕реЗ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рд╕реЗ CI рдореЗрдВ рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рд▓рд╛рдЦреЛрдВ рдкреБрди: рдбрд╛рдЙрдирд▓реЛрдб рдХреЛ рдмрдЪрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдкреНрд░рддрд┐ рд╡рд░реНрд╖ рдмрдирд╛рддрд╛ рд╣реИред

рдХреНрдпрд╛ рдХреЛрдИ рд╕реАрдЖрдИ рд╕реЗрд╡рд╛рдПрдВ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рдмрд┐рд▓реНрдбрдХрд┐рдЯ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИрдВ?

рд╢рдирд┐рд╡рд╛рд░, 13 рдЬреВрди, 2020, рджреЛрдкрд╣рд░ 2:08 рдмрдЬреЗ Csaba Apagyi [email protected] рдиреЗ рд▓рд┐рдЦрд╛:

@thisismydesign https://github.com/thisismydesign рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХреНрдпрд╛
рдЖрдк рдмрд┐рд▓реНрдб рдФрд░ рд░рди рдХреЗ рдмреАрдЪ рдХреИрд╢ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?

рдпрд╣ рдХреИрд╢рд┐рдВрдЧ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдореЗрд░реЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЛ рд╣рд▓ рдХрд░реЗрдЧрд╛, рд╣рд╛рдВред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/moby/moby/issues/14080#issuecomment-643657987 , рдпрд╛
рд╕рджрд╕реНрдпрддрд╛ рд╕рдорд╛рдкреНрдд
https://github.com/notifications/unsubscribe-auth/AAAMNS6IEQDCO5F3LNHJK5TRWO6AJANCNFSM4BJB2OOA
.

рдХреНрдпрд╛ рдХреЛрдИ рд╕реАрдЖрдИ рд╕реЗрд╡рд╛рдПрдВ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рдмрд┐рд▓реНрдбрдХрд┐рдЯ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИрдВ?

рдХреНрдпрд╛ рдЙрдиреНрд╣реЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рд╣реИ? рдореИрдВ рдмрд┐рд▓реНрдбрдХрд┐рдЯ рдХреЗ рд╕рд╛рде рдЧрд┐рдЯрд▓реИрдм-рд╕реАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдпрд╣ рд╕рд┐рд░реНрдл рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЖрдЦрд┐рд░рдХрд╛рд░, рдпрд╣ 'рдбреЙрдХрд░ рдмрд┐рд▓реНрдб' рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЕрд▓рдЧ рддрд░реАрдХрд╛ рд╣реИред

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

рдорд▓реНрдЯреА-рд╕реНрдЯреЗрдЬ рдмрд┐рд▓реНрдб рдХреЗ рдирд╛рдорд┐рдд рдЪрд░рдг рд╕реЗ рдХреЙрдкреА рдХрд░рдирд╛ рдПрдХ рдФрд░ рд╕рдорд╛рдзрд╛рди рд╣реИ

FROM golang:1.7.3 AS builder
COPY --from=builder

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

рд░рдирд░реНрд╕ рдХреЛ рдЕрдзрд┐рдХ рдЪрд┐рдкрдЪрд┐рдкрд╛ рд╣реЛрдиреЗ рдФрд░ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ (рдордзреНрдпрд╡рд░реНрддреА) рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рддрд╛рдХрд┐ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ (рдмрд╛рд░-рдмрд╛рд░-рдЕрдВрдбрд░рдлрдВрдбреЗрдб) рдкреИрдХреЗрдЬ рд░реЗрдкреЛ рдХреЛ рдХрдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред

рдореИрдВрдиреЗ рдЕрднреА-рдЕрднреА buildkit рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреЗрд╡рд▓ рдореЗрд░реЗ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдореЗрдВ рдорд╛рдореВрд▓реА рд╕реБрдзрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ "рд╡рд╛рд╕реНрддрд╡рд┐рдХ" рд╡реЙрд▓реНрдпреВрдо рдпрд╛ рд╣реЛрд╕реНрдЯ рдХреЛ рдмрд╛рдЗрдВрдб рдорд╛рдЙрдВрдЯ рджреНрд╡рд╛рд░рд╛ 100% рдорджрдж рдХрд░реЗрдЧрд╛ред

рдореИрдВ рдкреБрд░рд╛рдиреЗ glibc рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рдХреНрд░реЙрд╕-рдХрдВрдкрд╛рдЗрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП docker build рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЬреЛ рддрдм рдирдП рдмрд┐рд▓реНрдб рдХрдВрдЯреЗрдирд░реЛрдВ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЗрди glibc s рдХреЛ рдЕрдВрдбрд░ рдФрд░ рд▓рд┐рдВрдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред

рдЕрдм рдмрд╛рд░-рдмрд╛рд░ glibc рд╕реНрд░реЛрдд рдбрд╛рдЙрдирд▓реЛрдб рдХреЛ рдмрд╛рдЗрдВрдб рдорд╛рдЙрдВрдЯ ( buildkit рд╕реЗ) рджреНрд╡рд╛рд░рд╛ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдХреЗрд╡рд▓ рдкрдврд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреЛрдИ рдмрд╛рдд рдирд╣реАрдВред рд▓реЗрдХрд┐рди рдЕрд╕рдлрд▓ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рдж рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдб рдбреАрдЖрдИрдЖрд░ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХрд╛ рдореЗрд░реЗ рдкрд╛рд╕ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХрдВрдЯреЗрдирд░ рддреНрд░реБрдЯрд┐ рдкрд░ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддрд╛ рд╣реИред (рдпрджрд┐ рдореИрдВ рдЗрд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рдмрд┐рд▓реНрдб рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЗрд╕рд╕реЗ рдорджрдж рдирд╣реАрдВ рдорд┐рд▓рддреА рд╣реИ)ред

рд╕рд╛рде рд╣реА, рдореИрдВ рдпрд╣ рджреЗрдЦрдиреЗ рдореЗрдВ рдЕрд╕рдлрд▓ рд░рд╣рд╛ рдХрд┐ рдореБрдЭреЗ рдЕрдкрдиреЗ рдмрд┐рд▓реНрдб рдбреАрдЖрдИрдЖрд░ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрд░рд╛рдиреЗ рд╕реЗ рдПрдХ рдирдпрд╛ рдХрдВрдЯреЗрдирд░ рдмрдирд╛рдиреЗ рдЬреИрд╕реЗ рд╣реБрдкреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреНрдпреЛрдВ рдХреВрджрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд╣рд╛рдВ рдмрд┐рд▓реНрдб рдбреАрдЖрдИрдЖрд░ рдкрд╣рд▓реЗ рд╕реНрдерд╛рди рдкрд░ рдПрдХ рдорд╛рдЙрдВрдЯ рд╣реЛрддрд╛, рддреЛ рдпрд╣ рд╣реЛрддрд╛ рдЗрддрдирд╛ рдЖрд╕рд╛рдиред (рдмрд┐рд▓реНрдб рдХреЗ рдмрд╛рдж рдмрд╕ make install рдХрд░реЗрдВ рдФрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдмрд┐рдирд╛ рдмрд┐рд▓реНрдб рдбреАрдЖрдИрдЖрд░ рдФрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЧрдП рд╕реНрд░реЛрддреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдПрдХ рд╕рд╛рдл рдХрдВрдЯреЗрдирд░ рд╣реИ)ред

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

рд▓реЗрдХрд┐рди рдЕрд╕рдлрд▓ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рдж рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдб рдбреАрдЖрдИрдЖрд░ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХрд╛ рдореЗрд░реЗ рдкрд╛рд╕ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ

рдмрд┐рд▓реНрдбрдХрд┐рдЯ рдХреЗ рд▓рд┐рдП рдлреАрдЪрд░ рдЕрдиреБрд░реЛрдз рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдЬреНрдЮрд╛рдд рд▓рд╛рдкрддрд╛ рдЯреБрдХрдбрд╝рд╛ рд╣реИред

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

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

рдХреНрдпрд╛ рдЖрдк рдпрд╣рд╛рдВ рдЬреЛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ/рдЙрдореНрдореАрдж рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЙрд╕реЗ рдФрд░ рд╕рдордЭрд╛ рд╕рдХрддреЗ рд╣реИрдВ?

рдХреНрдпрд╛ рдЖрдк рдпрд╣рд╛рдВ рдЬреЛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ/рдЙрдореНрдореАрдж рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЙрд╕реЗ рдФрд░ рд╕рдордЭрд╛ рд╕рдХрддреЗ рд╣реИрдВ?

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рд╕рд┐рд░реНрдл 2 рдкрдХреНрд╖рд┐рдпреЛрдВ рдХреЛ 1 рдкрддреНрдерд░ рд╕реЗ рдорд╛рд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ:

  • рдореЗрдЬрдмрд╛рди рд╕реЗ рдордзреНрдпрд╡рд░реНрддреА рдкрд░рд┐рдгрд╛рдореЛрдВ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХрд╛ рдПрдХ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИ (рдпрд╣рд╛рдВ "рдбреАрдЖрдИрдЖрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдмрдирд╛рдПрдВ")
  • рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдпрд╣ рд╕рдВрдЧреНрд░рд╣рдг рд╕реНрдерд╛рди рдирд╡рдирд┐рд░реНрдорд┐рдд рдЫрд╡рд┐ рдХреЛ рдкреНрд░рджреВрд╖рд┐рдд рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ

рдЗрд╕рдХреЗ рдмрд╛рдж рд╕реЗ, рдФрд░ рдЕрдиреНрдп рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЬрд╣рд╛рдВ рдмрд┐рд▓реНрдб рдХрдВрдЯреЗрдирд░ (рд╕рд╛рде рд╣реА "рдХрдВрдЯреЗрдирд░ рдмрд┐рд▓реНрдб") рдХреЛ рднрд╡рди рдХреЛ рдпрдерд╛рд╕рдВрднрд╡ рджрд░реНрдж рд░рд╣рд┐рдд рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреЗрд╡рд▓ -v рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рдХреЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рдврдВрдЧ рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реИ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рдкреНрд░рддрд┐рд░реЛрдз рдХреЛ рд╕рдордЭрдиреЗ рдореЗрдВ рдХрдард┐рди рд╕рдордпред "рдХреИрд╢-рдЕрд╡реЗрдпрд░" рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рдЕрд▓рд╛рд╡рд╛ buildkit рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдСрдлрд╝рд░ рдХрд░рддрд╛ рд╣реИ, рдореИрдВ рдЗрд╕реЗ рдХреЗрд╡рд▓ рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЬрдЯрд┐рд▓ рдФрд░ рдмреЛрдЭрд┐рд▓ рддрд░реАрдХреЗ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ, рдФрд░ рдХреЗрд╡рд▓ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдЙрд╕ рдкрд░ред (рдФрд░ рдХрдИ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЬрд╣рд╛рдВ рдХреИрд╢рд┐рдВрдЧ рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдп рд╣реИ, рдЗрд╕реЗ -v рджреНрд╡рд╛рд░рд╛ рднреА рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдорд╛рдЙрдВрдЯреЗрдб рд╡реЙрд▓реНрдпреВрдо рдХреЛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рд▓реЙрдХ рдХрд░рдиреЗ рдХреА рдХреАрдордд рдкрд░ рдЬрдм рддрдХ рдпрд╣ рдЪрд▓рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреИрд╢ рдХреЗ рд╕рд╛рде buildkit рдкрд░ рд╕рдорд╛рди рдкреНрд░рддрд┐рдмрдВрдз рд▓рд╛рдЧреВ рд╣реИрдВред)

рдХреНрдпрд╛ рдЖрдк рдпрд╣рд╛рдВ рдЬреЛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ/рдЙрдореНрдореАрдж рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЙрд╕реЗ рдФрд░ рд╕рдордЭрд╛ рд╕рдХрддреЗ рд╣реИрдВ?

рдореИрдВ рдПрдХ рдмрд╣реБ-рдЪрд░рдг рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЬрд╣рд╛рдВ рдирд┐рд░реНрдорд╛рдг рдкрд░реНрдпрд╛рд╡рд░рдг рд╕реНрд╡рдпрдВ рдХрдВрдЯреЗрдирд░реАрдХреГрдд рд╣реИ, рдФрд░ рдЕрдВрддрд┐рдо рдкрд░рд┐рдгрд╛рдо рдПрдХ рдЫрд╡рд┐ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХреЗрд╡рд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ рд░рдирдЯрд╛рдЗрдо рдкрд░реНрдпрд╛рд╡рд░рдг (рдмрд┐рдирд╛ рдирд┐рд░реНрдорд╛рдг рдЙрдкрдХрд░рдг рдХреЗ) рд╣реЛрддрд╛ рд╣реИред

рдореИрдВ рдЬреЛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рд╡рд╣ рдЕрдВрддрд░рд┐рдо рдбреЙрдХрд░ рдмрд┐рд▓реНрдб рдХрдВрдЯреЗрдирд░ рдХреЗ рд▓рд┐рдП рдЖрдЙрдЯрдкреБрдЯ рдпреВрдирд┐рдЯ рдЯреЗрд╕реНрдЯ рдФрд░ рдХреЛрдб рдХрд╡рд░реЗрдЬ рдкрд░рд┐рдгрд╛рдо рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдПрдХ рд╕рдлрд▓ рдмрд┐рд▓реНрдб рдФрд░ рдЕрд╕рдлрд▓ рдмрд┐рд▓реНрдб рджреЛрдиреЛрдВ рдХреА рдШрдЯрдирд╛рдУрдВ рдореЗрдВ рд╣реЛрд╕реНрдЯ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдмрд┐рд▓реНрдб рдЖрдЙрдЯрдкреБрдЯ рдЫрд╡рд┐ рдореЗрдВ рдкрд╛рд╕ рдХрд┐рдП рдмрд┐рдирд╛ рд╣реЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред рдирд┐рд╖реНрдХрд░реНрд╖рдг рдХреЗ рд▓рд┐рдП (рдХреНрдпреЛрдВрдХрд┐ рдкреВрд░реА рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реЙрд░реНрдЯ-рд╕рд░реНрдХрд┐рдЯ рд╣реИ рдпрджрд┐ рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг рдкрд╣рд▓реЗ рдЪрд░рдг рдореЗрдВ рдкрд╛рд╕ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдЫрд╡рд┐ рдирд╣реАрдВ рд╣реЛрдЧреА, рдФрд░ рдЬрдм рд╣рдореЗрдВ рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ) . рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рд╣реЛрд╕реНрдЯ рд╡реЙрд▓реНрдпреВрдо рдХреЛ рдбреЙрдХрд░ рдмрд┐рд▓реНрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдЖрдВрддрд░рд┐рдХ рдкрд░реАрдХреНрд╖рдг рдХрдорд╛рдВрдб рдЕрдкрдиреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдорд╛рдЙрдВрдЯреЗрдб рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

@mcattle
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рд╕рдорд╛рди (рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ) рдореБрдЭреЗ рдЪрд╛рд╣рд┐рдПред
рдХреБрдЫ рджрд┐рдиреЛрдВ рдкрд╣рд▓реЗ buildah рдкрд░ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рд╕реЗ рдореБрдЭреЗ рд╣рд░ рд╡рд╣ рдХрд╛рд░реНрдп рдорд┐рд▓рд╛ рдЬрд┐рд╕рдХреА рдореБрдЭреЗ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА рдФрд░ рдмрд╣реБрдд рдХреБрдЫред рдореЗрд░реЗ рдмрд┐рд▓реНрдб рдХрдВрдЯреЗрдирд░ рдХреЛ рдбрд┐рдмрдЧ рдХрд░рдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд╕рдВрднрд╡ рд╣реЛрддрд╛, рдмрд┐рдирд╛ рд▓рдЪреАрд▓реЗ рдврдВрдЧ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рд╡рд╛рд▓реЗ рдХрдВрдЯреЗрдирд░ рдФрд░ рд╣реЛрд╕реНрдЯ рдХреЗ рд▓рд┐рдВрдХ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рдмрд┐рдирд╛ред рдЕрдм рдореИрдВ рдПрдХ рдЦреБрд╢ рдЯреВрд░рд┐рд╕реНрдЯ рд╣реВрдВред (рдореБрдЭреЗ "рдкреНрд░рддрд┐рдпреЛрдЧреА" рдХреЗ рд╕рд╛рде рдкрд╛рд░реНрдЯреА рдХреЛ рдХреНрд░реИрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИ, рдЕрдЧрд░ рдЕрдкрд░рд╛рдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдореИрдВ рдЦреБрд╢реА рд╕реЗ рдЗрд╕ рдЯрд┐рдкреНрдкрдгреА рдХреЛ рд╣рдЯрд╛ рджреВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдЗрд╕ рдзрд╛рдЧреЗ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЗрддрдирд╛ рдкреНрд░рднрд╛рд╡реА рд╕рдорд╛рдзрд╛рди рдерд╛ рдХрд┐ рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдореБрдЭреЗ рдЗрд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП) .

рдпрд╣ рдХрд╣рдиреЗ рдореЗрдВ рдХреЛрдИ рдЕрдкрд░рд╛рдз рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреЛрдИ рдЕрдиреНрдп рдЙрдкрдХрд░рдг рдЖрдкрдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдЕрдиреБрд░реВрдк рдмреЗрд╣рддрд░ рд╣реИред

рдЕрдЧрд░ рдХреБрдЫ рдЖрдкрдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИред

рдбреЙрдХрд░ рдФрд░ рдмрд┐рд▓реНрдбрдХрд┐рдЯ рдмрд┐рд▓реНрдбрд░ рджреЛрдиреЛрдВ рдореЗрдВ v1 рдмрд┐рд▓реНрдбрд░ рдХреА рдХрдорд┐рдпреЛрдВ рдХреЛ рдЗрд╕ рд╕рдВрджрд░реНрдн рдореЗрдВ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдордЭрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рдмрд╛рдЗрдВрдб рдорд╛рдЙрдВрдЯ рдХрд╛ рд╕рд╣рд╛рд░рд╛ рд▓рд┐рдП рдмрд┐рдирд╛, рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рд╕рдВрдмреЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред
GitHub рд╕реВрдЪрдирд╛рдПрдВ @github.com рдиреЗ рд▓рд┐рдЦрд╛:
"@mcattle
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рд╕рдорд╛рди (рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ) рдореБрдЭреЗ рдЪрд╛рд╣рд┐рдПред
рдХреБрдЫ рджрд┐рдиреЛрдВ рдкрд╣рд▓реЗ рдмрд┐рд▓реНрдбрд╣ рдореЗрдВ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рд╕реЗ рдореБрдЭреЗ рд╡рд╣ рд╣рд░ рдлрдВрдХреНрд╢рди рдорд┐рд▓рд╛ рдЬрд┐рд╕рдХреА рдореБрдЭреЗ рдЬрд░реВрд░рдд рдереА рдФрд░ рднреА рдмрд╣реБрдд рдХреБрдЫред рдореЗрд░реЗ рдмрд┐рд▓реНрдб рдХрдВрдЯреЗрдирд░ рдХреЛ рдбрд┐рдмрдЧ рдХрд░рдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд╕рдВрднрд╡ рд╣реЛрддрд╛, рдмрд┐рдирд╛ рд▓рдЪреАрд▓реЗ рдврдВрдЧ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рд╡рд╛рд▓реЗ рдХрдВрдЯреЗрдирд░ рдФрд░ рд╣реЛрд╕реНрдЯ рдХреЗ рд▓рд┐рдВрдХ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рдмрд┐рдирд╛ред рдЕрдм рдореИрдВ рдПрдХ рдЦреБрд╢ рдЯреВрд░рд┐рд╕реНрдЯ рд╣реВрдВред (рдореБрдЭреЗ "рдкреНрд░рддрд┐рдпреЛрдЧреА" рдХреЗ рд╕рд╛рде рдкрд╛рд░реНрдЯреА рдХреЛ рдХреНрд░реИрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИ, рдЕрдЧрд░ рдЕрдкрд░рд╛рдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдореИрдВ рдЦреБрд╢реА рд╕реЗ рдЗрд╕ рдЯрд┐рдкреНрдкрдгреА рдХреЛ рд╣рдЯрд╛ рджреВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдЗрд╕ рдзрд╛рдЧреЗ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЗрддрдирд╛ рдкреНрд░рднрд╛рд╡реА рд╕рдорд╛рдзрд╛рди рдерд╛ рдХрд┐ рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдореБрдЭреЗ рдЗрд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП) ред"

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ, рдпрд╛ рд╕рджрд╕реНрдпрддрд╛ рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВред

рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рдмрд╛рдЗрдВрдб рдорд╛рдЙрдВрдЯ рдХрд╛ рд╕рд╣рд╛рд░рд╛ рд▓рд┐рдП рдмрд┐рдирд╛ред

рдпрд╣рд╛рдВ рдореИрдВ рд╕рдордЭрд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдмрд┐рд▓реНрдб рдЯрд╛рдЗрдо -v рд╡рд┐рдХрд▓реНрдк рдмрд┐рд▓реНрдб рд╕рдордп рдкрд░ рдиреЗрдЯрд╡рд░реНрдХ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд┐рд╕реА рднреА рдЕрдзрд┐рдХ рдкреНрд░рдЬрдирди рдХреНрд╖рдорддрд╛ рдХрд╛ рд╕рд╣рд╛рд░рд╛ рдпрд╛ рддреНрдпрд╛рдЧ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред

https://github.com/moby/moby/issues/14080#issuecomment -484314314 :

рдХреЙрдкреА || REMOTE_FETCH || рдкрдврд╝рдирд╛()

  • рдЗрдирдореЗрдВ рд╕реЗ рдХреМрди рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИрдВ?

рдореИрдВ рдмрд┐рд▓реНрдбрд╣ рдХреЗ рд╕рд╛рде рдмрд┐рд▓реНрдб рдЯрд╛рдЗрдо -v (рдФрд░ cgroupsv2) рдХреЗ рд▓рд┐рдП рднреА рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред

@mcattle рдореБрдЭреЗ рдПрдХ рд╣реА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕реЗ рд▓реЗрдмрд▓рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рд╣рд▓ рдХрд┐рдпрд╛ред

рдореИрдВ рдмрд┐рд▓реНрдбрд╣ рдХреЗ рд╕рд╛рде рдмрд┐рд▓реНрдб рдЯрд╛рдЗрдо -v (рдФрд░ cgroupsv2) рдХреЗ рд▓рд┐рдП рднреА рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред

рдореИрдВ "-v" рд╕рдорд░реНрдерди рдХреЗ рдХрд╛рд░рдг рд╣рдорд╛рд░реЗ рдмрд┐рд▓реНрдб рд╕рд░реНрд╡рд░ рдкрд░ рдЙрдмрдВрдЯреВ (рдЬрд┐рд╕рдореЗрдВ рд╕рд┐рд░реНрдл рдбреЙрдХрдЯрд░ рд╣реИ) рд╕реЗ рдлреЗрдбреЛрд░рд╛ (рдЬреЛ рдкреЙрдбрдореИрди/рдмрд┐рд▓реНрдбрд╛рд╣ рдХреЗ рд╕рд╛рде рдбреЙрдХ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИ) рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдкрд░ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВред рдкреЙрдбрдореИрди рд░реВрдЯрд▓реЗрд╕ рдореЛрдб рдХрд╛ рднреА рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЕрдм рддрдХ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдбреЙрдХрд░ рд╕рдВрдЧрдд рд▓рдЧ рд░рд╣рд╛ рд╣реИ (--user/USER рдкреНрд░рднрд╛рд╡ рдФрд░ рдЫрд╡рд┐ рдХреИрд╢рд┐рдВрдЧ рдореЗрдВ рдЕрдВрддрд░ рдХреЛ рдЫреЛрдбрд╝рдХрд░, рдЬреЛ рд░реВрдЯрд▓реЗрд╕ рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЖрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдбреЙрдХрд░ рдбреЗрдорди рдХрд░рддрд╛ рд╣реИ)ред

рдкреБрдирд╢реНрдЪ. рдЬрдмрдХрд┐ рд░реВрдЯрд▓реЗрд╕ рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП cgroups v2 рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдбреЙрдХрдЯрд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдВрдЯреЗрдирд░ рд░рдирдЯрд╛рдЗрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╣реИред рдпрджрд┐ рдЖрдк рд░рдирд╕реА (рдЬреИрд╕реЗ рдлреЗрдбреЛрд░рд╛ рдХрд░рддрд╛ рд╣реИ) рдХреЗ рдмрдЬрд╛рдп рд╕реАрдЖрд░рдпреВрдПрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ cgroups v2 рд╕рдорд░реНрдерди рд╣реЛрдЧрд╛ред рд░рдирд╕реА рдХреЗ рдкрд╛рд╕ рдЧрд┐рдЯ рдореЗрдВ рдХреБрдЫ v2 рдФрд░ рд░реВрдЯрд▓реЗрд╕ рд╕рдорд░реНрдерди рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ рдлреЗрдбреЛрд░рд╛ (31) рдкрд░ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╕рдордп рдореБрдЭреЗ рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдПрдВ рдереАрдВред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдЙрдмрдВрдЯреВ рдореЗрдВ рдЧреНрд░реЛрд╡реА рдореЗрдВ рдкреЙрдбрдореИрди/рдмрд┐рд▓реНрдбрд╣/рдЖрджрд┐ рд╣реИ, рдмрд╕ рдирд╡реАрдирддрдо 20.04 рдПрд▓рдЯреАрдПрд╕ рдореЗрдВ рдирд╣реАрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдбреЗрдмрд┐рдпрди рдЕрд╕реНрдерд┐рд░ рд╕реЗ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕реЗ рдПрд▓рдЯреАрдПрд╕ рдореЗрдВ рдмреИрдХрдкреЛрд░реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХрдо рд╕реЗ рдХрдо рдЕрднреА рддрдХ рддреЛ рдирд╣реАрдВред рдЬрдмрдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ 2018 рд╕реЗ рдлреЗрдбреЛрд░рд╛ рдореЗрдВ рд╣реИред

@ рдИрд░реЛ-рдЯреА рд╢рд╛рдпрдж рдЖрдк рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓реЗ рдХрд╛ рд╡рд░реНрдгрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЙрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рдХреНрдпрд╛ рдЧреБрдо рд╣реИ рдЬреЛ BuildKit рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЙрдирдХреЗ рд▓рд┐рдП рд╕рдВрдмреЛрдзрд┐рдд рдирд╣реАрдВ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

kunyan picture kunyan  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

lvthillo picture lvthillo  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

gndgnd picture gndgnd  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

gg7 picture gg7  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

dbanck picture dbanck  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ