Moby: рдирдИ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЕрдиреБрд░реЛрдз: Dockerfile рдореЗрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ RUN рдХрдорд╛рдВрдб рдХреЗ рд▓рд┐рдП рдХреИрд╢рд┐рдВрдЧ рдХреЛ рдЪреБрдирд┐рдВрджрд╛ рд░реВрдк рд╕реЗ рдЕрдХреНрд╖рдо рдХрд░реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 24 рд╕рд┐рддре░ 2013  ┬╖  245рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: moby/moby

#1384 рд╕реЗ рдЪрд░реНрдЪрд╛ рдХреЛ рдЕрд▓рдЧ рдХрд░рддреЗ рд╣реБрдП :

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

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

arebuilder kinfeature

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

Dockerfile рдореЗрдВ CACHE ON рдФрд░ CACHE OFF рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрджреЗрд╢ рдмрд╛рдж рдХреЗ рдЖрджреЗрд╢реЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░реЗрдЧрд╛ред

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

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

рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдпрд╣ рдХреИрд╢реНрдб рдФрд░ рдЧреИрд░-рдХреИрд╢реНрдб рдХрдорд╛рдВрдб рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдЗрдВрдЯрд░рд▓реАрд╡ рдХрд░рдиреЗ рдХреА рд╕реАрдорд╛ рдирд╣реАрдВ рд╣реЛрдЧреА?

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

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

рдХреНрдпрд╛ рдпрд╣ рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реЛрдЧрд╛ ?

Dockerfile рдореЗрдВ CACHE ON рдФрд░ CACHE OFF рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрджреЗрд╢ рдмрд╛рдж рдХреЗ рдЖрджреЗрд╢реЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░реЗрдЧрд╛ред

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

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

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

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

рдПрдХ рдмреЗрд╣рддрд░реАрди рдлреАрдЪрд░ рд╣реЛрдЧрд╛ред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдореИрдВ RUN a=a some-command рдЬреИрд╕реА рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рдЪреАрдЬреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдлрд┐рд░ рдХреИрд╢ рдХреЛ рддреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП RUN a=b some-command

рдХреИрд╢ рдкрд░ рдмреЗрд╣рддрд░ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рд╕реЗ рд╕реАрдЖрдИ рд╕реЗ рдбреЙрдХрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЦреБрд╢ рд╣реЛрдЧрд╛ред

@shykes

рдПрдХ рдмреВрд▓ рд╕реЗ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ --no-cache рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рд╣реИ рдФрд░ рдХреНрдпрд╛ рдпрд╣ рдПрдХ рд░реЗрдЧреЗрдХреНрд╕ рд▓реЗрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдбреЙрдХрд░ рдореЗрдВ рд╣рдо рдХреИрд╢ рдХреЛ рдмрд╕реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?

docker build --no-cache "apt-get install" .

рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ рдФрд░ рдЖрдИрдЖрд░рд╕реА рдкрд░ рдЗрд╕ рд╕рдЯреАрдХ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рд╣реИред

рд╕рд┐рд╡рд╛рдп рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд░рд┐рд╡рд░реНрд╕ рд╕рдВрдЧрддрддрд╛ рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдПрдХ рдирдпрд╛ рдзреНрд╡рдЬ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП ("--unache" рдХрд╣реЗрдВ) рддрд╛рдХрд┐ рд╣рдо --cached рдХреЛ рдПрдХ (рдмрд╣рд┐рд╖реНрдХреГрдд) рдмреВрд▓ рдзреНрд╡рдЬ рдХреЗ рд░реВрдк рдореЗрдВ рд░рдЦ рд╕рдХреЗрдВ рдЬреЛ "--uncache .*" рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред

рд╢реБрдХреНрд░, 7 рдлрд░рд╡рд░реА, 2014 рдХреЛ рд╕реБрдмрд╣ 9:17 рдмрдЬреЗ, рдорд╛рдЗрдХрд▓ рдХреНрд░реЙрд╕реНрдмреА рд╕реВрдЪрдирд╛рдПрдВ @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

@shykes
рдПрдХ рдмреВрд▓ рд╕реЗ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ --no-cache рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рд╣реИ рдФрд░ рдХреНрдпрд╛ рдпрд╣ рдПрдХ рд░реЗрдЧреЗрдХреНрд╕ рд▓реЗрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдбреЙрдХрд░ рдореЗрдВ рд╣рдо рдХреИрд╢ рдХреЛ рдмрд╕реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?

docker build --no-cache "apt-get install" .

рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ:
https://github.com/dotcloud/docker/issues/1996#issuecomment -34474686

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

рдореИрдВ рдЖрдЬ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реВрдВ рдЕрдЧрд░ рдХрд┐рд╕реА рдФрд░ рдиреЗ рд╢реБрд░реВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ?

рдореИрдВрдиреЗ рдЗрд╕ рдкрд░ рдХрд╛рдо рд╢реБрд░реВ рдХрд░

  • noCache рдХреЗ рдХреНрд╖реЗрддреНрд░ buildfile рдПрдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ *regexp.Regexp ред

    • рдПрдХ nil рдореВрд▓реНрдп рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ utilizeCache = true рдХреНрдпрд╛ рдХрд░рддрд╛ рдерд╛ред

  • рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ docker build --no-cache рдЕрдм рд╕рд░реНрд╡рд░ рдХреЛ рдПрдХ рдорд╛рдиреНрдп рд░реЗрдЧреЗрдХреНрд╕ рд╕реНрдЯреНрд░рд┐рдВрдЧ рднреЗрдЬрддрд╛ рд╣реИред
  • рдмрд╕ --no-cache рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ .*
  • рдлрд┐рд░ рд░реЗрдЧреЗрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рдирдИ рд╡рд┐рдзрд┐ buildfile.utilizeCache(cmd []string) bool рдХреИрд╢ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЖрджреЗрд╢реЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

рдПрдХ рдмрд╛рдд: рдЬрд╣рд╛рдБ рддрдХ рдореИрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдБ, рдлрд╝реНрд▓реИрдЧ/mflag рдкреИрдХреЗрдЬ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдореВрд▓реНрдп рдХреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдлрд╝реНрд▓реИрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ --no-cache рдФрд░ --no-cache some-regex рджреЛрдиреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдлрд╝рд┐рдбрд▓рд┐рдВрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА

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

рд╡реИрд╕реЗ рднреА, IANTM (рдореИрдВ рдореЗрдВрдЯреЗрдирд░ рдирд╣реАрдВ рд╣реВрдВ) рддреЛ рдпреЗ рд╕рд┐рд░реНрдл рдореЗрд░реЗ рдирд┐рдЬреА рд╡рд┐рдЪрд╛рд░ рд╣реИрдВред :)

@tianon --no-cache рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдмреВрд▓ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХреЗрд╡рд▓ рдореМрдЬреВрджрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИред

  • docker build --no-cache - рдкрд╣рд▓реЗ рдЬреИрд╕рд╛ рд╣реА рд╡реНрдпрд╡рд╣рд╛рд░: рдХреИрд╢ рдХреА рдЙрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ
  • docker build --no-cache someRegex - someRegex рдореЗрд▓ рдЦрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА RUN рдпрд╛ ADD рдЖрджреЗрд╢реЛрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рддрд╛ рд╣реИ

рдареАрдХ рд╣реИ, рдпрд╣ рд╕рдм рдареАрдХ рд╣реИред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ --no-cache рдПрдХ рдмреВрд▓ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореМрдЬреВрджрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣реИ:

  • --no-cache=true - рдХреИрд╢реЗ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдХреНрд╖рдо рдХрд░реЗрдВ
  • --no-cache=false - рдХреИрд╢реЗ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ
  • --no-cache - --no-cache=true рд▓рд┐рдП рдЖрд╢реБрд▓рд┐рдкрд┐

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

@tianon рд╣рд╛рдБ рддреБрдо рд╕рд╣реА рд╣реЛред рдЬрд▓реНрджреА рд╕реЗ рджреЗрдЦрд╛ рдФрд░ рд▓реЛрдЧ =рд╕рдЪ/рдЧрд▓рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╕реБрдЭрд╛рд╡ рджреЗрддреЗ рд╣реИрдВ, рдирдпрд╛ рдЭрдВрдбрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкреАрдЖрд░ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реБрдИ , рдЕрдиреБрд░рдХреНрд╖рдХ рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реИрдВ (

@wagerlabs рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд▓рд┐рдП +1

@crosbymichael , @timruffles рдХреНрдпрд╛ рдпрд╣ рдмреЗрд╣рддрд░ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдпрджрд┐ Dockerfile рдХреЗ рд▓реЗрдЦрдХ рдпрд╣ рдирд┐рд░реНрдгрдп рд▓реЗрдВ рдХрд┐ рдХреМрди рд╕рд╛ рдмрд┐рд▓реНрдб рдЪрд░рдг рдХреИрд╢ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдХреМрди рд╕рд╛ рдирд╣реАрдВ? рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдмрдирд╛рдиреЗ рд╡рд╛рд▓рд╛ рд╡реНрдпрдХреНрддрд┐ рдЬрд░реВрд░реА рдирд╣реАрдВ рдХрд┐ рдЫрд╡рд┐ рдмрдирд╛рдиреЗ рд╡рд╛рд▓рд╛ рд╣реА рд╣реЛред рдирд┐рд░реНрдгрдп рдХреЛ рдбреЙрдХрд░ рдмрд┐рд▓реНрдб рдХрдорд╛рдВрдб рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрд╕ рд╡реНрдпрдХреНрддрд┐ рд╕реЗ рд╡рд┐рд╕реНрддреГрдд рдЬреНрдЮрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬреЛ рдХреЗрд╡рд▓ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред

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

@wagerlabs рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд▓рд┐рдП +1

+1 @wagerlabs рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд▓рд┐рдП рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдФрд░ рднреА рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╕рдордп рдЕрдВрддрд░рд╛рд▓ рдкрд░ рднреА рдмрд╕реНрдЯ рдХреЛ рдХреИрд╢ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реЛ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП

CACHE [interval | OFF]
RUN apt-get update
CACHE ON

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

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

FROM ubuntu:13.10
ADD ./files/cachebusters/per-day /root/cachebuster
...
ADD ./files/cachebusters/per-build /root/cachebuster
RUN git clone [email protected]:cressie176/my-project.git /root/my-project

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

рдЗрд╕рдХреЗ рдЖрд╕-рдкрд╛рд╕ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдореЗрд░реА рд╡рд░реНрддрдорд╛рди рдпреЛрдЬрдирд╛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ RUN echo 2014-04-17-00:15:00 рдЬреИрд╕реЗ рдЖрджреЗрд╢реЛрдВ рдХреЛ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдирд╛ рд╣реИ, рдЬрдм рдЧреЛрд▓рд╛рдХрд╛рд░ рд╕рдВрдЦреНрдпрд╛ рдХреВрджрддреА рд╣реИ рддреЛ рдХреИрд╢ рддрддреНрд╡реЛрдВ рдХреЛ рдЕрдорд╛рдиреНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЗрдирд░реЗрдЯ рдХреА рдЧрдИ рд▓рд╛рдЗрди рдХреЛ рдкрд┐рдЫрд▓реЗ 15 рдорд┐рдирдЯ рддрдХ рдЧреЛрд▓рд╛рдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд░ 15 рдорд┐рдирдЯ рдореЗрдВ рдЕрд▓рд╛ред рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рд╣рд░ рдмрд╛рд░ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рд╡рд╛рд▓реА рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЙрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧреАред

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

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

@hiroprotagonist рдЖрдкрдХреЗ ENTRYPOINT git pull рд╣реЛрдиреЗ рд╕реЗ рдорджрдж рдорд┐рд▓ рд╕рдХрддреА рд╣реИ?

@amarnus рдореИрдВ рдЗрд╕реЗ рд╡рд┐рдЪрд╛рд░ @tfoote рдерд╛ рдХреЗ рд▓рд┐рдП рдЗрд╕реА рддрд░рд╣ рд╕рдорд╛рдзрд╛рди рдХрд░ рд▓рд┐рдпрд╛ рд╣реИред рдореИрдВ рдЬреЗрдирдХреАрдВрд╕ рдЬреЙрдм рд╕реЗ рдмрд┐рд▓реНрдб рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рд╕реАрдзреЗ рдбреЙрдХрд░ рдмрд┐рд▓реНрдб рдХрдорд╛рдВрдб рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЬреЙрдм рдПрдХ тАЛтАЛрдмрд┐рд▓реНрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реЗ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЧрд┐рдЯ рдХрдорд╛рдВрдб рдХреЗ рдКрдкрд░ 'рд░рди рдЗрдХреЛ рдХрд░рдВрдЯрдорд┐рд▓реАрдЬ' рд▓рд╛рдЗрди рдЬреЛрдбрд╝рддрд╛ рд╣реИред рд╕реЗрдб рдФрд░ рдкрд╛рдЗрдкреНрд╕ рдХреА рдмрджреМрд▓рдд рдпрд╣ рдХреБрдЫ рд╣реА рдорд┐рдирдЯреЛрдВ рдХреА рдмрд╛рдд рдереАред рд╡реИрд╕реЗ рднреА, рдореИрдВ рдЕрднреА рднреА рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред

@wagerlabs рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ +1 рдЬреЛрдбрд╝рдирд╛ред рд╕реАрдЖрдИ рдХреЗ рд╕рд╛рде рднреА рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдореИрдВ рдЕрднреА рдХреЗ рд▓рд┐рдП рдПрдХ рдЧрддрд┐рд╢реАрд▓ рдЗрдХреЛ рд░рди рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдкрд╕рдВрдж рдЖрдПрдЧреАред

рдХреИрд╢ рдСрди/рдСрдл рдХреЗ рд▓рд┐рдП +1ред рдореЗрд░рд╛ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рд╕реАрдЖрдИ рд╕реНрд╡рдЪрд╛рд▓рди рднреА рд╣реИред

+1, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдПрдХ рд░рди рдХрдорд╛рдВрдб рдХреИрд╢ рдЕрдВрддрд░рд╛рд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЬреИрд╕реЗ @ cressie176 рдЙрджрд╛рд╣рд░рдг

"рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд░реЗрдкреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдпрд╛ рд░рд┐рдореЛрдЯ рдлрд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛"

+1

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

echo "Using build $BUILD_NUMBER for docker cachebusting"
sed -i s/cachebust_[0-9]*/cachebust_"$BUILD_NUMBER"/g Dockerfile

рдХреИрд╢ рдСрди/рдСрдл рдХреЗ рд▓рд┐рдП +1

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

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

рдореИрдВ рдЖрджреЗрд╢реЛрдВ рдХреЗ рдЙрдкрд╕рд░реНрдЧ рдХреЗ рд▓рд┐рдП рднреА рдЕрдзрд┐рдХ рд╣реВрдВ, рдЬреИрд╕реЗ ALWAYS рдпрд╛ CACHE 1 WEEK ADD ...

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

From ubuntu:14.04

RUN apt-get -yqq update
RUN apt-get -yqq install git
RUN git clone https://github.com/coreos/fleet
ADD http://www.random.org/strings/?num=10&len=8&digits=on&upperalpha=on&loweralpha=on&unique=on&format=plain&rnd=new uuid
RUN cd fleet && git pull

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

@wagerlabs рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ +1

рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ +1ред рдЗрд╕ рдмреАрдЪ @cruisibesarescondev рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ

рд╕реБрд╡рд┐рдзрд╛ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ +1ред рдФрд░ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП @cruisibesarescondev рдХреЛ рдзрдиреНрдпрд╡рд╛рдж

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

рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдЪреАрдпрд░реНрд╕ @cruisibesarescondev ред

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

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

@{
import time
def cache_buster(seconds):
    ts = time.time()
    return ts - ts % seconds
}@

рдЬрд╣рд╛рдВ рдореИрдВ рдПрдХ рдкреБрди: рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ:

RUN echo @(cache_buster(60))

рдЬреЛ Dockerfile рдореЗрдВ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ

RUN echo 1407705360.0

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

+1 рд╣рдореЗрд╢рд╛ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд▓рд┐рдПред рдХреИрд╢ рдСрди/рдХреИрд╢ рдСрдл рдХреЗ рд▓рд┐рдП +.5ред

+1 рд╣рдореЗрд╢рд╛ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд▓рд┐рдПред

рд╣рд╛рдВ, ALWAYS рд╕рд┐рдВрдЯреИрдХреНрд╕ рдмрд╣реБрдд рд╕рд╣рдЬ рджрд┐рдЦрддрд╛ рд╣реИред

рдореБрдЭреЗ CACHE ON/OFF рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд▓рд╛рдЗрдиреЗрдВ "рд╕реНрд╡рдпрдВ рдирд┐рд╣рд┐рдд" рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдФрд░ Dockerfiles рдореЗрдВ рдмреНрд▓реЙрдХ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдмрд╣реБрдд рд╕рд╛рд░реА "рдкрд░реЗрд╢рд╛рдиреА" рд╣реЛрдЧреА (рдЬреИрд╕реЗ рдХрд┐ "рдХреНрдпрд╛ рдпрд╣ рд▓рд╛рдЗрди рдХреИрд╢ рджреНрд╡рд╛рд░рд╛ рдХрд╡рд░ рдХреА рдЧрдИ рд╣реИ?" рд╡рд┐рд▓рдп рдХрд░рддреЗ рд╕рдордп .. ред)

@kuon рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрдИ рдХрдорд╛рдВрдб рд╣реИрдВ рдЬреЛ рдмрд╛рдж рдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ USER рдФрд░ WORKDIR

рд╣рд╛рдБ, рдпрд╣ рд╕рдЪ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрд╕реА рдХрд╛рд░рдг рд╕реЗ рдирд╣реАрдВ рдХрд░рддрд╛ред рдореИрдВ рд╣рдореЗрд╢рд╛ RUN cd ... && рдпрд╛ RUN su -c ...&& рдХрд░рддрд╛ рд╣реВрдВред

рдореИрдВ рдПрдХ рдмреНрд▓реЙрдХ рдиреЛрдЯреЗрд╢рди рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛:

CACHE OFF {
    RUN ...
}

рдпрд╣ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдФрд░ рдЧрд▓рддреА рд╕реЗ CACHE OFF рд▓рд╛рдЗрди рдбрд╛рд▓рдиреЗ рд╕реЗ рдмрдЪреЗрдВ (рдпрд╣ рдПрдХ рд╕рд┐рдВрдЯреИрдХреНрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░реЗрдЧрд╛)ред

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

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдПрдХ рдирдП Dockerfile рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЕрд╡рд╕рд░ рд╣реЛред

рдореИрдВрдиреЗ рдЕрднреА рдЬреЛ рдХрд╣рд╛, рдЙрд╕ рдкрд░ рд╡рд╛рдкрд╕ рдЖрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдореИрдВрдиреЗ рдкрдврд╝рд╛ рдХрд┐ @shykes рдиреЗ рдПрдХ рдЕрдиреНрдп рдЕрдВрдХ рдореЗрдВ рдХреНрдпрд╛ рдХрд╣рд╛ https://github.com/docker/docker/pull/2266 рдФрд░ рдореИрдВ рднреА рдЙрд╕рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ (Dockerfile рдХреЛ рднрд╛рд╖рд╛ рдХреА рддрд░рд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд░рд▓ рдЕрд╕реЗрдВрдмрд▓реА рд░рд╣рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ)ред

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

NOIMAGE ALWAYS RUN USER:jon  apt-get update

рдЬреЛ рд╣рдореЗрд╢рд╛ рдХрдорд╛рдВрдб (рдХреЛрдИ рдХреИрд╢реЗ рдирд╣реАрдВ) рдЪрд▓рд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдПрдХ рдЫрд╡рд┐ рднреА рдирд╣реАрдВ рдмрдирд╛рдПрдЧрд╛ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬреЙрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред

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

рдХреНрдпрд╛ рдпрд╣ рдЖрд╕рд╛рдиреА рдХреЗ рд▓рд┐рдП RUN! рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдХреГрдкрдпрд╛?

рдЗрд╕ рдкрд░ рдХреЛрдИ рд╕реНрдЯреЗрдЯрд╕ рдЕрдкрдбреЗрдЯ?

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

рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдереЛрдбрд╝рд╛ рдКрдкрд░ рдЙрдард╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдРрд╕реА рдЪреАрдЬ рд╣реИ рдЬрд┐рд╕рдХреА рд╣рдореЗрдВ рдмрд╣реБрдд рдЬрд░реВрд░рдд рд╣реИред

рдЕрднреА рднреА рдЖрд╢реНрд╡рд╕реНрдд ALWAYS рд╕рд┐рдВрдЯреИрдХреНрд╕ рдЖрджрд░реНрд╢ рд╣реИред

рдХреИрд╕реЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг BREAK рдХрдерди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред

@ cpuguy83 рдЬреЛ рдореЗрд░реЗ рд╡рд┐рд╢реЗрд╖ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рднреА рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

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

BREAK рд▓рд┐рдП рд╕рдорд░реНрдерди рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд╡рдЬреВрдж рдореБрдЭреЗ @CheRuisiBesares рдХреЗ рд╕реБрдЭрд╛рд╡ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдореЗрд░реЗ рд╡рд░реНрддрдорд╛рди рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рд╕рд╛рде рдлреАрдЪрд░ рд╕рдорд╛рдирддрд╛ рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛ред

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

@orrery рдЖрдк рдЙрд╕ рдмрд┐рд▓реНрдб-рд╕реНрдЯреЗрдк рд╕реЗ рдкрд╣рд▓реЗ COPY _before_ рдЬреЛрдбрд╝рдХрд░ рдХреИрд╢ рдХреЛ "рдмрд╕реНрдЯ" рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдХреЙрдкреА рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓ (рдлрд╛рдЗрд▓реЗрдВ) рдЕрд▓рдЧ рд╣реИрдВ, рддреЛ рдЙрд╕рдХреЗ рдмрд╛рдж рдХреЗ рд╕рднреА рдЪрд░рдгреЛрдВ рдореЗрдВ рдХреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП ( рдЗрд╕ рдЕрдиреБрднрд╛рдЧ рдХреЛ рджреЗрдЦреЗрдВ)ред рдЧрдВрджреА рдЪрд╛рд▓, рд▓реЗрдХрд┐рди рдЖрдкрдХреЗ рдорд╛рдорд▓реЗ рдХреЛ рд╕реБрд▓рдЭрд╛ рд╕рдХрддреА рд╣реИред

ALWAYS (рдпрд╛ рд╕рдорд╛рди рдЕрд╡рдзрд╛рд░рдгрд╛рдПрдВ рдЬреИрд╕реЗ EVERY # DAYS ) рдХреА рдХреБрдВрдЬреА рд╕рдВрд▓рдЧреНрди рдХрдорд╛рдВрдб рдХреЗ рдмрд╛рдж рдХреИрд╢ рддреБрд▓рдирд╛ рд╣реИред рдореЗрд░реЗ рд▓рд┐рдП (рдФрд░ рдореИрдВ рдХрдИ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЛ рдорд╛рдирддрд╛ рд╣реВрдВ), рд▓рдХреНрд╖реНрдп рдкреНрд░рддрд┐ рдХреИрд╢ рдХреЛ рдмрд╕реНрдЯ рдХрд░рдирд╛ рдирд╣реАрдВ рд╣реИред

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

рдпрд╣ @hellais рджреНрд╡рд╛рд░рд╛ рдЯрд┐рдкреНрдкрдгреА рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдмрд╛рдж рдХреЗ рдЖрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рдХреИрд╢ рдХрд╛ рд▓рд╛рдн рдЙрдард╛ рд╕рдХрддреЗ рд╣реИрдВ ... рдпрджрд┐ рдФрд░ рдХреЗрд╡рд▓ рдЕрдЧрд░ ALWAYS рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдХреИрд╢реНрдб рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ (рдпрд╣ рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдордп рд╣реЛ рд╕рдХрддрд╛ рд╣реИ)ред

рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдПрдХ рд╣реА рддрд░реНрдХ _could_ рдХреЛ CACHE ON/OFF рдореЙрдбрд▓ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХреИрд╢ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдмрд╛рдж рдХреЗ рд╕рднреА рдЖрджреЗрд╢реЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╕рд╕реНрддрд╛ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдорд╣рдВрдЧрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдХреИрд╢ рдСрди/рдСрдл рдмреНрд▓реЙрдХ рдХрд┐рд╕реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдСрдл рдмреНрд▓реЙрдХ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрдорд╛рдВрдб рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рддрд╛ рд╣реИ (рдРрд╕рд╛ рдХреБрдЫ рдЬреЛ ALWAYS рд╕рд╛рде рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛), рддреЛ рдпрд╣ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдВрддрд░ рдореЗрдВ рдпреЛрдЧрджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдореИрдВ рдмрд┐рд▓реНрдХреБрд▓ рдЙрд╕реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реВрдВ рдЬреИрд╕реЗ

EVERY рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд▓рд┐рдП +1ред ALWAYS рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╕реЗ рднреА рдХрд╛рдо рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

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

@mkoval , рдЖрдк ALWAYS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рдордп рдХреЗ рд░реВрдк рдореЗрдВ _creating _ рдЫрд┐рдкреЗ рд╣реБрдП рд░рд╛рдЬреНрдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫрд╛ рдмрд┐рдВрджреБ рд▓рд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдХреИрд╢ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдореЗрд░реЗ рддрд░реНрдХ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЛ рдареЛрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП (рдпрджрд┐ рдХреБрдЫ рд╣рдж рддрдХ рддреБрдЪреНрдЫ рд╣реИ), рдПрдХ рдХрдорд╛рдВрдб рдЬреЛ рдХрд┐рд╕реА рддреГрддреАрдп рдкрдХреНрд╖ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рддрд╛ рд╣реИ:

  • рдПрдХ рдЫрд┐рдкреА рд╣реБрдИ рд╕реНрдерд┐рддрд┐ рдмрдирд╛рддрд╛ рд╣реИ ( ALWAYS рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ) рдФрд░
  • рд╡рд░реНрддрдорд╛рди рдХрдВрдЯреЗрдирд░ рдХреЛ рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИ

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

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

@claytondaley рдЖрдкрдХрд╛ рд╕рдорд╛рдзрд╛рди рдореЗрд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рд╣реА рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рдФрд░ рдХреБрд╢рд▓ рд▓рдЧрддрд╛ рд╣реИред рдЕрдЧрд░ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдореИрдВ рдмрд╣реБрдд рдЖрднрд╛рд░реА рд░рд╣реВрдВрдЧрд╛ред :+1: :рдСрдХреНрдЯреЛрдкрд╕:

+1 рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП ALWAYS рдФрд░ рд╣рд░ X рд╕реБрдЭрд╛рдП рдЧрдП рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдПред рдХреИрд╢ рдСрди/рдСрдл рдореБрдЭреЗ рдереЛрдбрд╝рд╛ рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реВрдВрдЧрд╛ред рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ @claytondaley рдХреЗ рдХреИрд╢ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рднреА рдкрд╕рдВрдж рд╣реИ рдЬрд╣рд╛рдБ рд╕рдВрднрд╡ рд╣реЛред

+1 рд╣рдореЗрд╢рд╛ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд▓рд┐рдПред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЧрд┐рдЯ рд░реЗрдкреЛ рд╕реЗ рдХреЛрдб рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдПред

+1 рдЗрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рднреА рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдПред

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

рд╕реБрдЭрд╛рд╡реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореЗрд░реА рд╕рдордЭ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рд╣рдореЗрд╢рд╛ рдХрджрдо рдХреЛ рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдХрдорд╛рдВрдб рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ "ALWAYS" рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП "RUN ALWAYS git clone https://example.com/myrepo.git " рд╣рдореЗрд╢рд╛ рдЪрд▓реЗрдЧрд╛ (рдЬрд┐рд╕рд╕реЗ рд╣рдореЗрд╢рд╛ рд░реЗрдкреЛ рдХреА рдХреНрд▓реЛрдирд┐рдВрдЧ рд╣реЛрддреА рд╣реИ)ред рдлрд┐рд░ @claytondaley рдЬреЛ рд╕реБрдЭрд╛рд╡ рджреЗ рд░рд╣рд╛ рд╣реИ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕ рдЖрджреЗрд╢ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдбреЙрдХрд░ рдХреИрд╢ рдХреЗ рд╡рд┐рд░реБрджреНрдз рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЪреЗрдХрд╕рдо рд╕рдорд╛рди рд╣реИ (рдЕрд░реНрдерд╛рдд рдпрджрд┐ рдХреНрд▓реЛрди рдХрд┐рдП рдЧрдП рд░реЗрдкреЛ рдореЗрдВ рдХреЛрдИ рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ, рддреЛ рдирд╡реАрдирддрдо рдкрд░рдд рдХреИрд╢ рдореЗрдВ рд╕рдорд╛рди рдкрд░рдд рдХреЗ рд╕рдорд╛рди рд╣реИ), рд╣рдо рдХреИрд╢ рдХреЛ рдЪрд╛рд▓реВ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рд╕рд╣реА рдХрд╣ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдПрдХ рдмрд╛рд░ рдХреИрд╢ рдЕрдорд╛рдиреНрдп рд╣реЛ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдмрд╛рдж рдХреЗ рд╕рднреА рдЪрд░рдг рдХреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпреЗ рд╕реБрдЭрд╛рд╡ рдХреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдм рдХрд░рдирд╛ рд╣реИ, рдЗрд╕ рдкрд░ рдирд┐рдпрдВрддреНрд░рдг рдХреА рдЕрдзрд┐рдХ рдЧреНрд░реИрдиреНрдпреБрд▓реИрд░рд┐рдЯреА рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЬрд╣рд╛рдВ рд╕рдВрднрд╡ рд╣реЛ рд╡рд╣рд╛рдВ рдХреИрд╢ рд╕реЗ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рд╕реНрдорд╛рд░реНрдЯ рд╣реИрдВред

@curtiszimmerman... рдмрд┐рд▓реНрдХреБрд▓

@duglin ... рдпрджрд┐ рд╣рдо рдЧрдгрд┐рддреАрдп рдкреНрд░реЙрдХреНрд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╡рд┐рдЪрд╛рд░ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдХреИрд╢ (рдЗрд╕ рд╕рдВрджрд░реНрдн рдореЗрдВ) action B рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреА рд╕реНрдореГрддрд┐ рдорд╛рддреНрд░ рд╣реИ рдЬрдм рдЗрд╕реЗ state A рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЗрд╕реЗ рдкреБрди: рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдорд╛рди рд▓реЗрдВ, рдореИрдВ рдЖрджреЗрд╢реЛрдВ рдХрд╛ рдПрдХ рдХреНрд░рдо рдЪрд▓рд╛рддрд╛ рд╣реВрдВ:

  • 6
  • рд╣рдореЗрд╢рд╛ * x рдЪрд▓рд╛рдПрдВ рдЬрд╣рд╛рдВ x рдХрд╛ рдореВрд▓реНрдп рдЧрд┐рдЯ рд░реЗрдкреЛ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИ)
  • + 12 рдЪрд▓рд╛рдПрдВ

рдкрд╣рд▓реА рдмрд╛рд░ рдЬрдм рдореИрдВ рдХрдорд╛рдВрдб рдЪрд▓рд╛рддрд╛ рд╣реВрдВ, рддреЛ x 8 рд╣реИ рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдирд┐рдореНрди рдЕрдиреБрдХреНрд░рдо (рдФрд░ рдХреИрд╢) рдорд┐рд▓рддрд╛ рд╣реИ:

  • 6
  • 48 (рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд░реВрдк * x рдХреЗ рд▓рд┐рдП рдЖрд╡реЗрджрди рдХрд┐рдпрд╛ 6 )
  • 60 (рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд░реВрдк + 12 рдХреЗ рд▓рд┐рдП рдЖрд╡реЗрджрди рдХрд┐рдпрд╛ 48 )

рдпрджрд┐ рдореЗрд░реА рдорд╢реАрди рдХрднреА рднреА 48 рдлрд┐рд░ рд╕реЗ (рдХрд┐рд╕реА рднреА рдХреНрд░рдо рд╕реЗ) рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкрд╣реБрдБрдЪрддреА рд╣реИ ... рдФрд░ рдЙрд╕реЗ рдЖрджреЗрд╢ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ + 12 , рддреЛ рдореБрдЭреЗ рдлрд┐рд░ рд╕реЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдореЗрд░рд╛ рдХреИрд╢ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдЖрджреЗрд╢ рдХрд╛ рдкрд░рд┐рдгрд╛рдо 60 ред

рдХрдард┐рди рд╣рд┐рд╕реНрд╕рд╛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╣реИ рдХрд┐ рдЖрдк рдлрд┐рд░ рд╕реЗ рдЙрд╕реА рд╕реНрдерд┐рддрд┐ ( 48 ) рдореЗрдВ рд╣реИрдВред

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

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

рдореБрдЭреЗ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рджреЗрдВ .... рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдХрдВрдЯреЗрдирд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдЬреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╣реИ рдпрджрд┐ рдЖрдк рдХреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ) рдЖрдк рдХреИрд╢ рдореЗрдВ рдПрдХ рдХрдВрдЯреЗрдирд░ рдХреИрд╕реЗ рдвреВрдВрдв рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЗрд╕рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ рдЬреЛ рд╕рднреА рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рддрд╛ рд╣реИ рдХрдВрдЯреЗрдирд░?

@claytondaley @duglin рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдХрд┐ рдХреНрдпрд╛ "рдХреЛрдИ рдХреИрд╢ рдирд╣реАрдВ" рдСрдкрд░реЗрд╢рди рдХреЛ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдмрджрд▓рд╛рд╡ рдХреЗ рдХреИрд╢ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рд╣реИ, рдПрдХ рдХрдард┐рди рд╕рдорд╕реНрдпрд╛ рд╣реИред рдпрд╣ рдХрдбрд╝рд╛рдИ рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдиреЗ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдЕрдЪреНрдЫрд╛-рд╕реЗ-рдЕрдзрд┐рдХ рд╣реИред

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

RUN install_stuff_take_forever
RUN always_do_it   #will not run every time
RUN more_stuff

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

RUN install_stuff_take_forever
NOCACHE
RUN always_do_it
RUN more_stuff

@pikeas рдореБрдЭреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрдХ NOCACHE рдХрдорд╛рдВрдб рдорд┐рд▓рддреА рд╣реИ рдФрд░ рдпрд╣ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред рдЬреЛ рдореБрдЭреЗ рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╡рд╣ рдПрдХ рдХрдорд╛рдВрдб рд╣реИ рдЬреЛ рдЗрд╕реЗ w/o diffing/hashing/рдЬреЛ рднреА рд╕рдВрдкреВрд░реНрдг рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд╡рд╛рдкрд╕ рдХрд░ рджреЗрддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдбреЙрдХрд░ рдХреА

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

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

рдпрд╣ рднреА рд╕рдВрднрд╡ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рдВрдкреВрд░реНрдг рд╣реЛрдиреЗ рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рд╣реИ) рдХреЗрд╡рд▓ рдирдИ рдкрд░рдд рдХреА рддреБрд▓рдирд╛ рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреА рдЬрд╛рддреА рд╣реИ:

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

рдмреЗрд╢рдХ, рдЖрдк рдкрд┐рдЫрд▓реЗ рд╕рднреА рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдкрд░ рдПрдХ рд╣реИрд╢ рдЬрд╛рдВрдЪ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ... рдЗрд╕рдХреЗ рдмрд╛рдж рдПрдХ рдкреВрд░реНрдг рдлрд╝рд╛рдЗрд▓ рдЬрд╛рдВрдЪ... рдмрд┐рдирд╛ рдУрд╡рд░рд╣реЗрдб рдХреЗ рдкреВрд░реНрдг рд╕рдорд░реНрдерди рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рдпрджрд┐ рдЖрдк https://github.com/docker/docker/pull/9934 рдХреЗ рдиреАрдЪреЗ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк Dockerfile рдХрдорд╛рдВрдб рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЪрд░реНрдЪрд╛ рджреЗрдЦреЗрдВрдЧреЗред рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдХреЛрдИ --no-cache рд╡рд┐рдХрд▓реНрдк рд╕рднреА (рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдХреЗрд╡рд▓ RUN) рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реЛ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рдЗрд╕ рдЖрджреЗрд╢ рдХреЗ рд▓рд┐рдП "рдХреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ"? рдЙрджрд╛рд╣рд░рдг:
RUN --no-cache apt-get install -y my-favorite-tool
рдпрд╣ рддрдм рд╢реЗрд╖ рдЖрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдХреИрд╢ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЕрдХреНрд╖рдо рдХрд░ рджреЗрдЧрд╛ (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ)ред
рдХреНрдпрд╛ рдЗрд╕рд╕реЗ рдорд╕рд▓рд╛ рд╣рд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛?

"рд╣рдореЗрд╢рд╛ рдЪрд▓рд╛рдПрдВ" рдФрд░ "рд░рди --рдиреЛ-рдХреИрд╢" рдХреЗ рдмреАрдЪ рдЬреЛ рд╢рдмреНрджрд╛рд░реНрде рд░реВрдк рд╕реЗ рд╕рдорд╛рди рд╣реИрдВ, рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рд╛рдХреГрддрд┐рдХ рджрд┐рдЦрдиреЗ рд╡рд╛рд▓реЗ "рд╣рдореЗрд╢рд╛ рдЪрд▓рд╛рдПрдВ" рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ред рдореИрдВ рдЙрд╕ рдкреАрдЖрд░ рдкрд░ рдЖрдЦрд┐рд░реА рдЯрд┐рдкреНрдкрдгреА рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ: рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ - рд╡рд┐рдХрд▓реНрдк рдкрдардиреАрдпрддрд╛ рдХреЛ рддреЛрдбрд╝рддрд╛ рд╣реИ рдФрд░ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдХреЛ рдмрджрд╕реВрд░рдд рдмрдирд╛ рджреЗрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдХрдорд╛рдВрдбреЛрдВ рдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрдорд╛рдВрдбреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрд▓рдЧ рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдЬреЛ рдЙрдирдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддреЗ рд╣реИрдВред рдЬрдЯрд┐рд▓ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП "RUN --no-cache myapp --enable-cache" рдЬреИрд╕реЗ рдХреБрдЫ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдЬреЛ рдЙрд╕ рддрд░рд╣ рдХреЗ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рдЦреБрдж рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рд╡реНрдпрдХреНрдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдЧрд╛ред

@curtiszimmerman рдЖрдкрдХрд╛ рдЙрджрд╛рд╣рд░рдг рдореЗрд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рд╣реИред --no-cache RUN рдХреЗ рд▓рд┐рдП рд╣реИ рдЬрдмрдХрд┐ --enable-cache myapp рдХреЗ рд▓рд┐рдП рд╣реИред рдкреНрд▓реЗрд╕рдореЗрдВрдЯ рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рджреЗрдЦреЗрдВ:
рдбреЙрдХрд░ рд░рди -рдЯреА рдЙрдмрдВрдЯреВ рдПрд▓рдПрд╕ -рд▓рд╛
рд▓реЛрдЧ рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ -ti 'рд░рди' рдХреЗ рд▓рд┐рдП рд╣реИ рдЬрдмрдХрд┐ '-la' 'ls' рдХреЗ рд▓рд┐рдП рд╣реИред рдпрд╣ рдПрдХ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд▓реЛрдЧ рд╕рд╣рдЬ рдорд╣рд╕реВрд╕ рдХрд░рддреЗ рд╣реИрдВред
рд╣рдореЗрд╢рд╛ рд░рди рдЬреИрд╕реА рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд┐рд▓рд┐рдЯреА рд╣реИред рд╣рдореЗрдВ рдПрдХ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рд╕рднреА рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдХрдорд╛рдВрдб рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд╕рдХреЗ рдФрд░ рд╡реИрд▓реНрдпреВ рдкрд╛рд╕рд┐рдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░ рд╕рдХреЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд▓реЛрдЧреЛрдВ рдиреЗ рдХреБрдЫ рдЖрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП USER рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд╡реНрдпрдХреНрдд рдХреА рд╣реИред
рд░рди USER=foo myapp
рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ myapp рдХреЗ рдЦреЛрд▓ рдХреЗ рднреАрддрд░ рдПрдХ env var USER рдХреЛ 'foo' рдкрд░ рд╕реЗрдЯ рдХрд░ рд░рд╣рд╛ рд╣реИред рддреЛ рд╣рдо рдпрд╣рд╛рдБ рдЕрд╕реНрдкрд╖реНрдЯ рд╣реИрдВред
рдЬрдмрдХрд┐: RUN --user=foo myapp рдореЗрдВ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред
рд╣реИ: рд░рди var=foo myapp
'var' рдпрд╛ рдХреБрдЫ рд░рди рд╡рд┐рдХрд▓реНрдк рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рдЯрд╛рдЗрдкреЛ рдирд╛рдордХ var рдХреЛ рд╕реЗрдЯ рдФрд░ env рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реИ?
IOW, рдПрдХ рдореМрдЬреВрджрд╛ рд╡реИрдз рдХрдорд╛рдВрдб, IMO рдХреЗ рд╕рд╛рде рдУрд╡рд░рд▓реИрдк рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдмрд╣реБрдд рдХрдо рд╣реЛрддреА рд╣реИ рдЬрдм рд╣рдо рдЪреАрдЬреЛрдВ рдХреЛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ - рдХреЗрд╡рд▓ рдПрдХ рд╢рдмреНрдж рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд░рд┐рд╡рд░реНрд╕ рдЕрдиреБрдХреНрд░рдо рдХреА рд╡рдХрд╛рд▓рдд рдХрд░рддрд╛ рд╣реВрдВ, EVERY <options> COMMAND ред рдХрдИ рдХрд╛рд░рдг:

  • "рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛" рдФрд░ "рдХреИрд╢" (рдХрдо рд╕реЗ рдХрдо) рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╡реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ рдЬреЛ рдХрд┐рд╕реА рднреА COMMAND рдХреЛ рд▓рдкреЗрдЯ рд╕рдХрддреЗ рд╣реИрдВ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡реЗ рджреВрд╕рд░реЛрдВ рдХреЛ рднреМрддрд┐рдХ рд░реВрдк рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред
  • рд╕рд┐рдВрдЯреИрдХреНрд╕ RUN ALWAYS рдЕрд░реНрде рд╣реИ RUN рдХрдорд╛рдВрдб рджреБрднрд╛рд╖рд┐рдпрд╛ рдХреЛ рдмрджрд▓рдирд╛, рдЬреЛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд▓рдЧрддрд╛ рд╣реИред
  • рдпрд╣ рд╕рдорд╕реНрдпрд╛ RUN EVERY 5 days рд╕рд╛рде рдФрд░ рднреА рдмрджрддрд░ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╕реЗ рдЬреБрдбрд╝реЗ рд╡рд┐рдХрд▓реНрдк рдФрд░ рднреА рдЕрдзрд┐рдХ рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рдкреИрджрд╛ рдХрд░рддреЗ рд╣реИрдВред EVERY 5 days RUN рд╡рд┐рдХрд▓реНрдк рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЖрджреЗрд╢ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд╣реИред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ RUN USER usr рдмрдирд╛рдо USER usr RUN рд╕рд╛рде рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред рдЬрдм рддрдХ рдпрд╛ рддреЛ (1) рдХрдорд╛рдВрдб рдХреАрд╡рд░реНрдб рдХрднреА рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реЛрддреЗ рдпрд╛ (2) рдЙрдирд╕реЗ рдмрдЪрдиреЗ рдХрд╛ рдПрдХ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИред

рдореИрдВ рдЙрдирдХреЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ ( ALWAYS AS user RUN ... ) рдХреЗ рд╕рд╛рде рдХрдорд╛рдВрдб рдХреЛ рдкреНрд░реАрдлрд╝рд┐рдХреНрд╕ рдХрд░рдХреЗ рдмреЛрд░реНрдб рдкрд░ рдЖ рд╕рдХрддрд╛ рдерд╛ред рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреАрдПрдирдпреВ-рд╕реНрдЯрд╛рдЗрд▓ рд▓реЙрдиреНрдЧреЙрдкреНрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд┐рдд рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдкреБрд░рд╛рдиреА рдпрд╛ рдЪрдордХрджрд╛рд░ рдЖрдВрдЦреЛрдВ рд╕реЗ рдмрд╣реБрдд рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реИрдВред рдореИрдВ рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ 20 рдШрдВрдЯреЗ рдХреЗ рдмрд╛рдж wtf рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рдпрд╣ рд╕реЛрдЪрдХрд░ рдореИрдВ рдЦреБрдж рдХреЛ рдПрдХ рдЬрдЯрд┐рд▓ Dockerfile рдХрдорд╛рдВрдб рдХреЛ рдШреВрд░ рд░рд╣рд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди рдореИрдВ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рддрд╛ рд╣реВрдВ --рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рд╣реЛрдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред

рд▓реЗрдХрд┐рди рдореИрдВ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рддрд╛ рд╣реВрдВ --рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рд╣реЛрдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред

рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рдЕрднреА рдХреБрдЫ рднреА рддрдп рдирд╣реАрдВ рд╣реИ; рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ @duglin рд╕реБрдЭрд╛рд╡ рджреЗ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдПрдХ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд▓рд┐рдП рдПрдХ _рдХрд╛рдЙрдВрдЯрд░ рдкреНрд░рд╕реНрддрд╛рд╡_ рд╣реИ рдЬрд┐рд╕реЗ рдкрд╣рд▓реЗ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд/рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдХреГрдкрдпрд╛ #9934 рдкрдврд╝реЗрдВред

рд╕рд╛рде рд╣реА, @duglin рд╡рд╣ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рд╡рд╛рд▓рд╛ рд╡реНрдпрдХреНрддрд┐ _not_ рд╣реИ (рдХрдо рд╕реЗ рдХрдо, рдЕрдХреЗрд▓реЗ рдирд╣реАрдВ)ред рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдард╛рдП рдЬрд╛ рд░рд╣реЗ рдХреБрдЫ рдмрд┐рдВрджреБрдУрдВ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рджреВрд╕рд░реЗ рд╕реВрддреНрд░ рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

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

рдкрдардиреАрдпрддрд╛ рдХреЗ рд▓рд┐рдП рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдХреЛ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░рдХреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рджреВрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕реНрд╡рд░реВрдкрд┐рдд рд╣реЛрдиреЗ рдкрд░ рдкрдардиреАрдпрддрд╛ рдПрдХ рдЪрд┐рдВрддрд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг/рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдФрд░ рдЙрджрд╛рд╣рд░рдг рд▓рд┐рдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

рдФрд░, рд╣рд╛рдБ, рдЙрд╕ рдкрд░ рдЖрдкрдХреЗ рдЗрдирдкреБрдЯ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред

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

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

@tianon -1 рдкрд░ +1 (рддрд╛рдХрд┐ рдпрд╣ -1 рд╣реЛ!), рдФрд░ рдЪрд░рдг N рдкрд░ рддреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдзреНрд╡рдЬ рдЬреЛрдбрд╝рдирд╛ рдЙрдЪрд┐рдд рд▓рдЧрддрд╛ рд╣реИред рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдПрдХ рдмрд╛рд░ рдХреИрд╢ рдЯреВрдЯ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рдмрд╛рдХреА Dockerfile рдХреЗ рд▓рд┐рдП рд╡реИрд╕реЗ рднреА рдЯреВрдЯ рдЬрд╛рддрд╛ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

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

рдбрдмреНрд▓реНрдпреВ/рдУ рдХрд╣ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдореИрдВ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреИрд╕рд╛ рдорд╣рд╕реВрд╕ рдХрд░рддрд╛ рд╣реВрдВ - рдЕрднреА рддрдХ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ, рдИрдорд╛рдирджрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП - рдЖрдк рд▓реЛрдЧ рдЪрд░рдг рдПрди рдкрд░ рд░реБрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдХреЛ ("рдбреЙрдХрд░ рдмрд┐рд▓реНрдб" рд╕реЗ) рдХрд╣рдиреЗ рдХреА рдХрд▓реНрдкрдирд╛ рдХреИрд╕реЗ рдХрд░рддреЗ рд╣реИрдВ? рдЬрдм рдЖрдЬ рдЪрд░рдг N, рдХрд▓ рдЪрд░рдг N+1 рд╣реЛрдЧрд╛, рддреЛ рдПрдХ рдкреНрд░рдХрд╛рд░ рд╕реЗ рднрдВрдЧреБрд░ рд▓рдЧрддрд╛ рд╣реИред
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдХреЗ рднреАрддрд░ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ "рд▓реЗрдмрд▓" рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рд▓реЛрдЧ рдЙрд╕ рд▓реЗрдмрд▓ рдХреЛ рдмрд┐рд▓реНрдб рд╕реАрдПрдордбреА рд▓рд╛рдЗрди рд╕реЗ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░ рд╕рдХреЗрдВред
рдЕрдЧрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд╣ рдерд╛ рддреЛ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЗрд╕рдХреЗ рдмреАрдЪ рдмрд╣реБрдд рдЕрдВрддрд░ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ рдФрд░ "STOP-CACHING" рдХрдорд╛рдВрдб рдЬреЛрдбрд╝рдиреЗ рд╕реЗ Dockerfile рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред
Dockerfile cmd рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрджрд╛рд╣рд░рдг рдХреНрдпрд╛ рд╣реИ рдЬреЛ рд╣рд░ рдмрд╛рд░ рдХреИрд╢ рдХреЛ рдмрдВрдж рдХрд░ рджреЗрдЧрд╛?

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

рдЯрд┐рдпрд╛рдВрди рдЧреНрд░реЗрд╡реА рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛:

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

рдЕрдкрдиреЗ рдкрд╣рд▓реЗ рдХреЗ рд╕реБрдЭрд╛рд╡ рдХреЛ рджреЛрд╣рд░рд╛рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рдХрд┐ рд╣рдореЗрд╢рд╛/рдХреИрд╢-рдмреНрд░реЗрдХрд┐рдВрдЧ
"рд░рди" рдмрд╕ "рд░рди!" рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред 1 рд╢рдмреНрдж рдХрдорд╛рдВрдб рд╕рдВрд░рдЪрдирд╛ (?) рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдПред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЪрд░рдг рдкрд░ рдХреИрд╢ рдХреЛ рддреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдбреЙрдХрд░рдлрд╛рдЗрд▓ (рдХреБрдЫ рдРрд╕рд╛ рдЬреЛрдбрд╝рдХрд░ рдЬреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рд╣реИ) рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд▓рдЧрддрд╛ рд╣реИред рдореИрдВ рдПрдХ docker build рд╕реАрдПрд▓рдЖрдИ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ рдЬреЛ рд╣рдореЗрд╢рд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдХрджрдо рдЪрд▓рд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреВрд░реА рддрд░рд╣ рд╕реЗ @duglin рд╕реЗ рд╕рд╣рдордд рд╣реИ рдХрд┐ рдХрдорд╛рдВрдб рдХреЛ рдЦрд┐рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рд▓рд╛рдЗрди рдирдВрдмрд░ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдирд╛ рднрд╛рд░реА рд╣реИред рдореИрдВ рдЕрдкрдиреЗ git clone рд╕реЗ рдареАрдХ рдкрд╣рд▓реЗ рдбреЙрдХрд░реАрдлрд╛рдЗрд▓ рдореЗрдВ рдХреБрдЫ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╡рд░реНрдг (!)

@curtiszimmerman рдореИрдВрдиреЗ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ (!) рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рддрд╛рддреНрдХрд╛рд▓рд┐рдХрддрд╛ рдХреЗ рд╕рдорд╛рди рдХреБрдЫ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред ("рддреБрдореНрд╣реЗрдВ рдпрд╣ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП!")

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

рд░рди рдкрд░ рдлреЛрдХрд╕ рдХреНрдпреЛрдВ? рдХрд┐рд╕реА рднреА рдХрдорд╛рдВрдб рдХреЗ рд▓рд┐рдП рдХреИрд╢реЗ рдХрд╛ рднрдВрдбрд╛рдлреЛрдбрд╝ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реЛрдиреЗ рджреЗрддреЗ?
рдПрдХ рдЬреЛрдбрд╝рдиреЗ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ:
рдмрд╕реНрдЯ-рдХреИрд╢
Dockerfile рдХрдорд╛рдВрдб рдХрд╛ рдкреНрд░рдХрд╛рд░ рдХрд╣реАрдВ рдЕрдзрд┐рдХ рд▓рдЪреАрд▓рд╛ рд╣реЛрдЧрд╛ред рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд▓рдЪреАрд▓рд╛рдкрди рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдзреНрд╡рдЬ рдХреА рдЕрдиреБрдорддрд┐ рджреЗ рд╕рдХрддрд╛ рд╣реИ:
рдмрд╕реНрдЯ-рдХреИрд╢ $doit
рдЬрд╣рд╛рдВ рдпрд╣ рдХреЗрд╡рд▓ рддрднреА рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ рдЬрдм $doit рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдлрд┐рд░ рдпрджрд┐ рд╣рдо рдмрд┐рд▓реНрдб рдкрд░ -e рд╡рд┐рдХрд▓реНрдк рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ ( https://github.com/docker/docker/pull/9176 ) рддреЛ рд▓реЛрдЧ рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рдбреЙрдХрд░ рдмрд┐рд▓реНрдб-рдИ рдбреВрдЗрдЯ = рд╕рдЪ ...

@zamabe рдУрд╣, рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ RUN! рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛, рдХреНрд╖рдорд╛ рдХрд░реЗрдВред рдпрд╣рд╛рдБ рдореИрдВ рдпрд╣ рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП (!) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛ "рдпрд╣ рдЕрд╕рд╛рдорд╛рдиреНрдп рд╣реИ!" рд╣рд░ рдмрд╛рд░ рдЬрдм рдореИрдВ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЪрд░рдг рдкрд░ рдХреИрд╢ рдХреЛ рддреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рддреЛ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдореИрдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрджрдо рд╕реЗ рдкрд╣рд▓реЗ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдХреЗ рдЕрдВрджрд░ рдХреИрд╢ рдХреЛ рдмрд╕реНрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ (рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬреАрдд рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдХреИрд╢-рдмрд╕реНрдЯрд┐рдВрдЧ рдХрдорд╛рдВрдб рдХреЗ рдмрд╛рдж рдХрд╛ рдЪрд░рдг рдХреИрд╢ рдореЗрдВ рдХреНрдпрд╛ рд╣реИ, рддреЛ рдХреИрд╢ рд╕реЗ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╕реНрдорд╛рд░реНрдЯ рдмрдиреЗрдВ ) BUST-CACHE рдпрд╛ ALWAYS RUN (рдпрд╛ RUN ALWAYS ) рдпрд╛ RUN! ... рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдИ рднреА рддрдВрддреНрд░, рдореИрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ред

@ рдбрдЧрд▓рд┐рди рдХреНрд╖рдорд╛ рдХрд░реЗрдВ? рдмрдЧ рд╢реАрд░реНрд╖рдХ RUN рдХрд╣рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдирд╛ рдЖрд╕рд╛рди рд╣реИред

@curtiszimmerman рдЖрд╣ред

рд╕реНрд╡рдЧрдд рдХрдерди рдХреЗ рд░реВрдк рдореЗрдВ; рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреИрд╢ рдкреБрдирд░реНрд╡реИрдзреАрдХрд░рдг (?) рдХреИрд╢ рдЕрдорд╛рдиреНрдпрддрд╛ рд╕реЗ рдереЛрдбрд╝рд╛ рдЖрдЧреЗ рд╣реИ, рдпрд╣ рдмрдЧ рдвреВрдВрдв рд░рд╣рд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдореБрдЭреЗ рд╡рд╣ рдкрд╕рдВрдж рд╣реИ рдЬреЛ рдЖрдк рд╕реБрдЭрд╛рд╡ рджреЗ рд░рд╣реЗ рд╣реИрдВ, рдореИрдВ рдХреИрд╢-рдмрд╕реНрдЯрд┐рдВрдЧ рдХрдорд╛рдВрдб рдХреЛ рдпрдерд╛рд╕рдВрднрд╡ рдЕрдВрдд рдХреЗ рдХрд░реАрдм рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░реВрдВрдЧрд╛ред рдпрд╣ рдПрдХ _possible_ рдХреИрд╢ рд╣рд┐рдЯ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд▓рд╛рднреЛрдВ рдХреЛ рдирдХрд╛рд░ рджреЗрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдк _always_ рдЖрд╡рд╢реНрдпрдХ рдЧрдгрдирд╛/рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рд╕рдВрднрд╡рддрдГ Dockerfile рдмрд┐рд▓реНрдб рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рднрд╛рд░реА рдЬреБрд░реНрдорд╛рдирд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХреИрд╢-рдмрд╕реНрдЯрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧ рд╢рд╛рдпрдж рдХреИрд╢ рдорд┐рд╕ рдХреА рдЙрдореНрдореАрдж/рдЙрдореНрдореАрдж рдХрд░ рд░рд╣реЗ рд╣реИрдВред

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

рдЧрд┐рдЯ рд░реЗрдкреЛ рд╕реЗ рдкреБрд▓ рдХреЛрдб рдХреЗ рд▓рд┐рдП +1

+1

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

рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдкреАрдЖрд░ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛: https://github.com/docker/docker/pull/10682 ред
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдХреИрд╢рд┐рдВрдЧ рдХреЛ рд╡рд╛рдкрд╕ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЖрдЬ рдпрд╣ рд╕рдВрднрд╡ рд╣реИред

+1

рдореИрдВ Dockerfile рдореЗрдВ рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдЙрддреНрдкрдиреНрди рдХрд░ рд░рд╣рд╛ рд╣реВрдБ рдФрд░ рдпрд╣ рдХреИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ ...
NOACACHERUN рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд▓рд┐рдП +1

+1
рдХреБрдЫ рд░рди рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд╣рдореЗрдВ рд╣рд░ рдмрд╛рд░ рд╕рдм рдХреБрдЫ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд┐рдП рдмрд┐рдирд╛ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ

рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ git clone рдХреИрд╢ рд╕реЗ рдЯрдХрд░рд╛рдПрдЧрд╛ рд▓реЗрдХрд┐рди go get -d рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рдХреНрдпреЛрдВ?

@LK4D4 @calavera @jfrazelle @crosbymichael @tiborvass_ рдХреЗ рд╕рд╛рде рд╕рд╛рдореВрд╣рд┐рдХ рд╕рдореАрдХреНрд╖рд╛

рдЗрд╕реЗ рдмрдВрдж рдХрд░рдирд╛ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдпрд╣ рдирд╣реАрдВ рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдХрдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рд╣реИрдВ (рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рд╕рдВрдмрдВрдзрд┐рдд #10682 рджреЗрдЦреЗрдВ)ред

рд░рди рдХреЗ рд▓рд┐рдП +1ред рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

+1

docker 1.9 рдмрд┐рд▓реНрдб-рдЯрд╛рдЗрдо рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрддрд╛ рд╣реИ; рдХреИрд╢ рдХреЛ рддреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ (рдЧрд▓рдд) рд╕рдВрднрд╡ рд╣реИ; рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рджреЗрдЦреЗрдВ https://github.com/docker/docker/issues/15182

рдпрд╣ рдЕрднреА рддрдХ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреИрд╕реЗ рдирд╣реАрдВ рд╣реИ?

@ hacksaw6 рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣рд╛рдВ рдХреНрдпрд╛ рдХрд╣рд╛ рдЧрдпрд╛ рдерд╛: https://github.com/docker/docker/pull/10682

+1

+1

+1 рдХреИрд╕реЗ рдпрд╣ рдЕрднреА рддрдХ рдПрдХ рдмрд╛рдд рднреА рдирд╣реАрдВ рд╣реИ !????!

+1 рд╣рдореЗрдВ рднрд╡рди рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдмрд╛рд░реАрдХ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

+1

+1

+1

+1

+1 рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА
(рдЕрднреА рдХреЗ рд▓рд┐рдП @timruffles рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ)

+1

+1

+1

рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд▓реЛрдЧреЛрдВ рдиреЗ рдХреЗрд╡рд▓ +1 рдХреЗ рдмрдЬрд╛рдп рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧрдХреЗрд╕ рдкреЛрд╕реНрдЯ рдХрд┐рдП рддрд╛рдХрд┐ рд▓реЛрдЧ рджреЗрдЦ рд╕рдХреЗрдВ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреНрдпреЛрдВ рд╣реИред

+1, рдХреИрд╢реНрдб рдЧрд┐рдЯ рдХреНрд▓реЛрди рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреА рддрд▓рд╛рд╢ рдореЗрдВ Google рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдпрд╣рд╛рдВ рдкрд╣реБрдВрдЪрд╛ред

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

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

рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг, рдЖрдИрдПрдордПрдЪрдУ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо "рдлреАрдЪрд░" рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛрдирд╛ рдмрджрддрд░ рд╣реИред

рдПрдХ рдирдпрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ: FORCE RUN git clone .... ?

рдЕрднреА рдореИрдВ рдХреИрд╢ рдХреЛ рдЕрдорд╛рдиреНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП RUN _=$(date) git clone ... рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

@ c9s рдХреНрдпрд╛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдХрд░рддрд╛ рд╣реИред

@duglin рд╕реЗрдЯрд┐рдВрдЧ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред "рдлреЛрд░реНрд╕ рд░рди" рд╕рд┐рд░реНрдл рдПрдХ рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИ:]

@ c9s рдореИрдВ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рдХрд┐ env var рдХреИрд╕реЗ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрдВрдЯреЗрдирд░ рдХреЗ рдЦреЛрд▓ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рди рдХрд┐ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧред рдЬрдм рдореИрдВ RUN _=$(date) echo hi рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рджреВрд╕рд░реЗ рдирд┐рд░реНрдорд╛рдг рдкрд░ рдХреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

@duglin рдЖрдк рд╕рд╣реА рдХрд╣ рд░рд╣реЗ рд╣реИрдВ: | рдпрд╣ рдХреИрд╢ рдХреЛ рдЕрдорд╛рдиреНрдп рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ

@c9s рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЗрд╕реЗ рдЖрдЬрдорд╛рдПрдВ

FROM foo
ARG CACHE_DATE=2016-01-01
RUN git clone ...
docker build --build-arg CACHE_DATE=$(date) ....

@thaJeztah рдзрдиреНрдпрд╡рд╛рдж! рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИрдВ!

+1 рдХреНрд▓реЛрдирд┐рдВрдЧ рдЧрд┐рдЯ рд░реЗрдкреЛ (рдХреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ)

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

+1 рдХреНрд▓реЛрдирд┐рдВрдЧ рдЧрд┐рдЯ рд░реЗрдкреЛ (рдпрд╣ рдмрд╣реБрдд рдкрд░реЗрд╢рд╛рди рд╣реИ рдХрд┐ рдЫрд╡рд┐ рдХреЛ рд╣рд░ рдмрд╛рд░ рдПрдХ рдЧрд┐рдЯ рд░реЗрдкреЛ рдореЗрдВ рдПрдХ рдЫреЛрдЯрд╛ рд╕рдВрдкрд╛рджрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЦрд░реЛрдВрдЪ рд╕реЗ рдмрдирд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ)

@Vingtoft рдпрджрд┐ рдЖрдк рд░реЗрдкреЛ рдореЗрдВ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдЖрдкрдХрд╛ рдХреИрд╢ рдЕрдорд╛рдиреНрдп рд╣реИред

@itsprdp рдореБрдЭреЗ рдпрд╣ рдирд╣реАрдВ рдкрддрд╛ рдерд╛, рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

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

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

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

@RyanHartje рднреНрд░рдо рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВред рдпрджрд┐ рднрдВрдбрд╛рд░ рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╣реИ рддреЛ рдЗрд╕реЗ рдХреИрд╢ рдХреЛ рдЕрдорд╛рдиреНрдп рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ @Vingtoft рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдХреИрд╢ рдХрд░рдирд╛ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдмрджрд▓реА рдЧрдИ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рд╣реИред рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЬрдЯрд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

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

+1, рдЧрд┐рдЯ рдХреНрд▓реЛрди рдХреЗ рджреМрд░рд╛рди рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдХреИрд╢ :(

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

рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдореЗрдВ:

ARG CACHEBUST=1
RUN git clone https://github.com/octocat/Hello-World.git

рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░:

docker build -t your-image --build-arg CACHEBUST=$(date +%s) .

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

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдЬреЛ, рдЙрд╣, рд╡рд╣реА рд╣реИ рдЬреЛ @thaJeztah рдиреЗ рдХрд╣рд╛ рдерд╛ред рдореИрдВ рдЗрд╕реЗ рдЙрд╕рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рд╡рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЫреЛрдбрд╝ рджреВрдБрдЧрд╛ред

@ рд╢реЗрди-рд╕реНрд╡рдпрдВрд╕рд┐рджреНрдз CACHEBUST рдХреЗ рдореВрд▓реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдЧрд┐рдЯ рдкреНрд░рддрд┐рдмрджреНрдз рд╣реИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреИрд╕реЗ?

export CACHEBUST=`git ls-remote https://[email protected]/username/myRepo.git | grep refs/heads/develop | cut -f 1` && \
echo $CACHEBUST && \
docker build -t myDockerUser/myDockerImage \
   --build-arg blah=blue \
   --build-arg CACHEBUST=$CACHEBUST \
   .

http://stackoverflow.com/questions/15677439/how-to-get-latest-git-commit-hash-command#answer -15679887 рд╕реЗ рд╕реБрд░рд╛рдЧ рдХреЗ рдЖрдзрд╛рд░ рдкрд░

@pulkitsinghal рдЧрд┐рдЯ рд░реЗрдкреЛ рдХреЗ рд▓рд┐рдП рдХреИрд╢ рдХреЛ

рдХреИрд╢ рдСрди рдХреЗ рд▓рд┐рдП +1 | рдмрдВрдж

+1

+1

@CheRuisiBesares aproach рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╛рдж рд░рдЦреЗрдВ, рдЖрдк рдХреИрд╢ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рд╣рдореЗрд╢рд╛ ADD https://www.random.org/strings/?num=16&len=16&digits=on&upperalpha=on&loweralpha=on&unique=on&format=plain&rnd=new uuid рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓рд╛ рдкреЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ....

COPY package.json /usr/src/
RUN npm install

рд╣рдорд╛рд░реЗ package.json рд╣рдо рдЖрдорддреМрд░ рдкрд░ рд╣рдорд╛рд░реЗ рдХреБрдЫ рдирд┐рдЬреА рдЬреАрдердм рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд▓рд┐рдП master рдЯреИрдЧ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░реЗрдВрдЧреЗред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рддрдХ рд╣рдо package.json рдлрд╝рд╛рдЗрд▓ рдХреЛ рдирд╣реАрдВ рдмрджрд▓рддреЗ рд╣реИрдВ, рддрдм рддрдХ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╡реАрдирддрдо master рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ (рдЖрдорддреМрд░ рдкрд░ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдХреЗрд╡рд▓ - рдФрд░ рдлрд┐рд░ рдкрд░реАрдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди рдЗрд╕реЗ рд╣рдЯрд╛ рджреЗрдВ)ред

RUN NO CACHE RUN рдХреА рдЬрдЧрд╣ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рд╣реЛрдЧрд╛ред

+1

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

рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдореИрдВ docker рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреИрд╢ рдкреНрд░рддрд┐ рд░рди рдХрдорд╛рдВрдб рдХреЛ рдЕрдХреНрд╖рдо рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

@brycereynolds @mmobini рдХреИрд╢ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП https://github.com/docker/docker/issues/1996#issuecomment -172606763 рджреЗрдЦреЗрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, _not_ рд╕рдВрдХреБрд▓ рдХреЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдЬрд┐рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЕрднреНрдпрд╛рд╕ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЗ Dockerfile (рдФрд░ рд╕реНрд░реЛрдд рдХреЛрдб) рдХрд╛ рдЕрдВрддрд┐рдо рдкрд░рд┐рдгрд╛рдо рдЕрдм рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реЛрдиреЗ рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рд╣реИ (рдпрд╛рдиреА, рдпрд╣ рдЖрдЬ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдмрдирд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ 'рдХрд▓ рдирд╣реАрдВ, рдХреНрдпреЛрдВрдХрд┐ рдкреИрдХреЗрдЬреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛)ред рдореИрдВ рдЗрд╕реЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди "рдареАрдХ" рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЙрддреНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП (рдФрд░ рдбреЙрдХрд░ рд╣рдм рдкрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдирд┐рд░реНрдорд╛рдг), рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЙрди рд╕рдЯреАрдХ рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдЫрд╡рд┐ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

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

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

@ctrimble рдХреИрд╢ рдХреЛ рдЕрдорд╛рдиреНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк --no-cache , рдпрд╛ --build-arg рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЖрдк рд╕рднреА рдХреИрд╢реЗрдмрд▓ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдПрдХ рдЖрдзрд╛рд░ рдЫрд╡рд┐ рдмрдирд╛рдХрд░ --no-cache рдХреЗ рдкреНрд░рднрд╛рд╡ рдХреЛ рдХрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

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

  1. рдЕрдЧрд░ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рд╕рдорд╛рди рд╣реИ рддреЛ рдРрд╕реА рдЪреАрдЬреЗрдВ рдХрд░реЗрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдХреИрд╢ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
  2. рдРрд╕рд╛ рдХрд╛рдо рдХрд░реЗрдВ рдЬреЛ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдЙрд╕рдХреЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдиреЗ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИ
  3. рдХреБрдЫ рдФрд░ рдЪреАрдЬреЗрдВ рдХрд░реЗрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдХреИрд╢ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдкрд┐рдЫрд▓реЗ рдЪрд░рдг рдиреЗ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реИ

рдпрд╣ рдкреИрдЯрд░реНрди рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдмрд┐рд▓реНрдб рдореЗрдВ рдмрд╛рд░-рдмрд╛рд░ рд╕рд╛рдордиреЗ рдЖрдПрдЧрд╛ред Dockerfile рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╢рдмреНрджрд╛рд░реНрде рд╣реЛрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

@ctrimble рдХреИрд╢ рдХреЛ рдПрдХ рдЪрд░рдг рдкрд░

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

рдпрд╣рд╛рдВ рдХрд╛рдлреА рдЪрд░реНрдЪрд╛ рд╣реБрдИ рд╣реИ, рдХреНрд╖рдорд╛ рдХрд░реЗрдВ рдпрджрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реБрдЭрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдРрд╕рд╛ рдХреБрдЫ рдерд╛ рддреЛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛:

CHECK [FILE_PATH]

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

рдореИрдВ рд╢рд╛рдпрдж рдХреБрдЫ рдРрд╕рд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ:

CHECK Gemfile
CHECK package.json
CHECK composter.json
CHECK project.json

рдПрдХ рд╕рдордп рдЕрд╡рдзрд┐ рдХреЗ рдмрд╛рдж рдХреБрдЫ рдХреИрд╕реЗ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣ рднреА рдПрдХ рдЪреЗрдХ рд╕рдХреНрд╖рдо рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред apt рдкреНрд▓рдЧрдЗрди рдХреЗ рд▓рд┐рдП Ansible рдХрд╛ cache_valid_time рдкреИрд░рд╛рдореАрдЯрд░ рдХреБрдЫ рдкреНрд░реЗрд░рдгрд╛ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реИ: http://docs.ansible.com/ansible/apt_module.html

рдЙрд╕рдХреЗ рд▓рд┐рдП, рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рд╣реЛрдЧрд╛:

EXPIRE 1234567 
RUN apt-get update
RUN bundle install

рдбреЙрдХрд░ рдЕрдВрддрд┐рдо-рд░рди рд╕рдордп рдХреЛ рдЬрд╛рдиреЗрдВрдЧреЗ рдФрд░ рдЧрдгрдирд╛ рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдХреНрдпрд╛ рд╕рдордп "рдЕрднреА" рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмреАрдд рдЧрдпрд╛ рдерд╛ред

@atrauzzi рд╣рдо 1.13 рдореЗрдВ рдЕрднреА рдирд┐рд░реНрдорд╛рдг рдкрд░ --squash рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ (рдХреЗрд╡рд▓ рдЕрднреА рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ)ред

@ cpuguy83 рдХреНрдпрд╛ рдХрд╣реАрдВ рднреА --squash рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдпрд╛ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рдкрдврд╝ рд╕рдХрддрд╛ рд╣реВрдВ? рд╢реБрд░реВ рдореЗрдВ рдирд╛рдо рд╕реЗ рдРрд╕рд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рд╡рд╣реА рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдБред рд▓реЗрдХрд┐рди рдореИрдВ (рдФрд░ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ) рдЧрд▓рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ!

@atrauzzi рд╣рд╛рдБ, рдирд┐рд░реНрдорд╛рдг рд╕рдВрджрд░реНрдн рдореЗрдВред

рдореВрд▓ рд░реВрдк рд╕реЗ, --squash рджреЛрдиреЛрдВ рдкрд░рдд рдХреИрд╢ рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдПрдХ рджреВрд╕рд░реА рдЫрд╡рд┐ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рдХрд┐ Dockerfile рдореЗрдВ рд╕рдм рдХреБрдЫ рдПрдХ рд╣реА рдкрд░рдд рдореЗрдВ рд╣реБрдЖ рд╣реИред

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

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

рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк/рдЕрд╡рдзрд┐ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИ рдХреНрдпрд╛ рдЙрд╕рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк/рдЕрд╡рдзрд┐ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИ рдХреНрдпрд╛ рдЙрд╕рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

рдмрд┐рд▓реНрдб-рдЖрд░реНрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ;

ARG expire_after=never
RUN do some thing
docker build --build-arg expire_after=2016-12-01 -t foo .

рдХреИрд╢ рдХреЛ рдмрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдб рдЖрд░реНрдЧ рдХреЛ рдмрджрд▓реЗрдВ

рдПрдХ рд╕реНрд╡рдЪреНрдЫ рддрд░реАрдХреЗ рдХреЗ рд▓рд┐рдП +1

рдПрдХ рд╕реНрд╡рдЪреНрдЫ рддрд░реАрдХреЗ рдХреЗ рд▓рд┐рдП +1

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

+1

рдХреНрдпрд╛ рдореИрдВ рдмрд┐рд▓реНрдб рдХрдорд╛рдВрдб рдХреЛ рд╕реНрдЯреЗрдк рдирдВрдмрд░ рдкрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗ рд╕рдХрддрд╛ рд╣реВрдВ?

рдХреБрдЫ рдЗрд╕ рддрд░рд╣:
docker build --step 5 .

рдпрд╣ рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди рдЪрд░рдг 5 рдХреЗ рдмрд╛рдж рдФрд░ рд╕рд╣рд┐рдд рд╕рднреА рдХреИрд╢ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░ рджреЗрдЧрд╛ред

+1
рдХреГрдкрдпрд╛ред

рдХреИрд╢ рдСрди|рдСрдл +1

рдЗрди CACHE ON|OFF рдЖрджреЗрд╢реЛрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдХреИрд╢ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рдХрд┐рд╕реА рднреА рдЪрд░рдг рдореЗрдВ, рдЖрдЧреЗ рдХреЗ рдЪрд░рдгреЛрдВ рдХреЛ рдХреИрд╢ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред рдПрдХрдорд╛рддреНрд░ рд╕рдордЭрджрд╛рд░ рдЖрджреЗрд╢ ENDCACHE ред

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

+1

+1 рдореЗрдВ рд╕реБрд╡рд┐рдзрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП

рдХреИрд╢ рдСрди|рдСрдл +1 . рдХреЗ рд▓рд┐рдП рд╕рд╣рдордд

+1 рдЕрджреНрднреБрдд рд╣реЛрдЧрд╛ред

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

ALWAYS рдХреАрд╡рд░реНрдб рд░рдЦрдирд╛ рдкрд╕рдВрдж рдХрд░реЗрдВрдЧреЗред

рдпрд╣ рдХреИрд╕реЗ рдмрдВрдж рд╣реИ?

рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЙрдкрд╛рдп рдХреНрдпрд╛ рд╣реИ?

рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА https://github.com/moby/moby/issues/1996#issuecomment -185872769 рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░ рдЧрдпрд╛
рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдореЗрдВ:

ARG CACHEBUST=1
RUN git clone https://github.com/octocat/Hello-World.git

рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░:

docker build -t your-image --build-arg CACHEBUST=$(date +%s)

рд░рди рдХреЗ рд╕рдорд╛рди рдПрдХ рдирдпрд╛ рдХрдорд╛рдВрдб рдХреНрдпреЛрдВ рди рдмрдирд╛рдПрдВ рд▓реЗрдХрд┐рди рд░рди рдиреЛ рдХреИрд╢ рдХреЗ рд▓рд┐рдП рдХрднреА рднреА рд░рди рдХреЛ рдХреИрд╢ рди рдХрд░реЗрдВ?

рдореИрдВ рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, @habeebr (https://github.com/moby/moby/issues/1996#issuecomment-295683518) - рдореИрдВ рдЗрд╕реЗ https://github.com/moby/moby/issues/1996# рдХреЗ рд╕рдВрдпреЛрдЬрди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ

+1

RUNNC рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ!

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

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

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

рдпрд╣ рдХрдард┐рди рдирд╣реАрдВ рд╣реИ: https://github.com/moby/moby/pull/10682
рдЖрд╕рд╛рди рд╕рдорд╛рдзрд╛рди, рдЖрд╕рд╛рди UXред рдпрд╣ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдирд╣реАрдВ, рдЗрд╕ рдкрд░ рдХреЛрдИ рд╕реНрдкрд╖реНрдЯ рд╕рд╣рдорддрд┐ рдирд╣реАрдВ рд╣реИред

рд╡рд╛рд╣ рд╕рд┐рд░реНрдл рд╡рд╛рд╣...

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

+1

рд╕рдордЭрджрд╛рд░ рд╕реБрд░рдХреНрд╖рд╛ рдФрд░ рдмреЗрд╣рддрд░ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП +1

+1

+1

+1

+1

+1

+1

рдХреНрдпрд╛ рдЖрдк рд▓реЛрдЧ +1 рдХреЛ рд╕реНрдкреИрдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдЕрдкрд╡реЛрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рд░реНрдл рд░рд┐рдПрдХреНрд╢рди рдлреАрдЪрд░ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗрдВред

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

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1

рдЗрд╕реЗ рдХреНрдпреЛрдВ рдмрдВрдж рдХрд░реЗрдВ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реИ

+1

+1

+1

рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдПрдХ рдкрд░рдд (рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд) рдХреЗ рд▓рд┐рдП рдХреИрд╢ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИ:

рдбреЙрдХрд░рдлрд╛рдЗрд▓

ARG CACHE_DATE
RUN wget https://raw.githubusercontent.com/want/lastest-file/master/install.sh -O - | bash

рдФрд░ рдЬрдм рдЖрдк рдЫрд╡рд┐ рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ --build-arg рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ

docker build  --build-arg CACHE_DATE="$(date)"

рдлрд┐рд░ рдХреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рд╣рд░ рдмрд╛рд░ рдЬрдм рдЖрдк рдЫрд╡рд┐ рдмрдирд╛рддреЗ рд╣реИрдВ рддреЛ wget рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

RUNNC рдпрд╛ CACHE OFF рдЕрдЪреНрдЫрд╛ рд░рд╣реЗрдЧрд╛

рдЗрд╕ рдмреАрдЪ, рдпрд╣ рдЖрд╢рд╛рдЬрдирдХ рд▓рдЧ рд░рд╣рд╛ рд╣реИ:
http://dev.im-bot.com/docker-select-caching/

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

screenshot 2018-05-26 19 03 09

рдореИрдВ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдБ рд╢рд╛рдВрдд рд░рд╣реЛ рдФрд░ рдЭреБрдВрдб рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛ рдЬрд╛рдУ:

+1

рд╣рд╛рдБ рдореБрдЭреЗ рдЖрджреЗрд╢реЛрдВ рдкрд░ рдЪреБрдирд┐рдВрджрд╛ рдХреИрд╢рд┐рдВрдЧ рдЪрд╛рд╣рд┐рдПред рдореЗрд░рд╛ COPY 80% рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдпрджрд┐ рдореИрдВ рдХреЗрд╡рд▓ рдПрдХ рд╢рдмреНрдж рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдмрджрд▓рддрд╛ рд╣реВрдВред рдореИрдВ рдЕрдкрдиреЗ COPY рдХреЛ рдХрднреА рднреА рдХреИрд╢ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд▓реЗрдХрд┐рди рдмрд╛рдХреА рд╕рдм рдХреБрдЫ рдХреИрд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред CACHE ON рдФрд░ CACHE OFF рд╣реЛрдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

RUN X
RUN X
CACHE OFF
COPY /config /etc/myapp/config
CACHE ON

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

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

@shadycuz @curtiszimmerman рд╣рд╛рдВ, рд╣рдо рдХреЗрд╡рд▓ CACHE OFF рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди CACHE ON , рдХреНрдпреЛрдВрдХрд┐ рдпрджрд┐ рдПрдХ рдкреВрд░реНрд╡ рдкрд░рдд рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рддреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рддрдХрдиреАрдХреА рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ CACHE ON рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред рдпрд╣ рдЗрд░рд╛рджреЗ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╡реНрдпрдХреНрдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд┐рди рдкрд░рддреЛрдВ рдХреЛ рдЕрдорд╛рдиреНрдп рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд╣реИред

рдПрдХ рдЕрдзрд┐рдХ рд▓рдЪреАрд▓рд╛ рд╕рдорд╛рдзрд╛рди рдХрдорд╛рдВрдб рдХреЗ рд╕рдорд╛рди рд╣реЛрдЧрд╛ RUN рдЬрд┐рд╕рдиреЗ рдХреБрдЫ рд╢реЗрд▓ рдХреЛрдб рдХреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА рдХрд┐ рдХреНрдпрд╛ рдХреИрд╢ рдХреЛ рдЕрдорд╛рдиреНрдп рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред 0 рдХреЗ рдирд┐рдХрд╛рд╕ рдХреЛрдб рдХрд╛ рдЕрд░реНрде "рдХреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ" рдФрд░ 1 "рдЕрдорд╛рдиреНрдп рдХреИрд╢" рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдХреЛрдИ рд╢реЗрд▓ рдХреЛрдб рдирд╣реАрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдпрд╣рд╛рдВ рд╕реЗ рдХреИрд╢ рдХреЛ рдЕрдорд╛рдиреНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рдХреЛ INVALIDATE рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕реЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЯрд┐рдкреНрдкрдгреА рдХреЗ рдмрдВрдж рдХреНрдпреЛрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛?

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдереА, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдЬреАрдердм рджреНрд╡рд╛рд░рд╛ рдЫрд┐рдкрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛
https://github.com/moby/moby/issues/1996#issuecomment -93592837

+1

рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдЕрднреА рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдЬреАрд╡рди рд░рдХреНрд╖рдХ рд╣реЛрдЧреАред

+1

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

212 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рдФрд░ рдЧрд┐рдирддреА, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдХреЛрдИ рдлрд╛рдпрджрд╛ рдирд╣реАрдВ рд╣реБрдЖ? рдХрд╛рдлреА рдЕрдЬреНрдЮрд╛рдиреА рд▓рдЧрддрд╛ рд╣реИред

+1

+1

+1

+1

+1

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

+1

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

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

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

@jaromil рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдЪ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕реНрд╡рдпрдВ-рд╣реЛрд╕реНрдЯ рдХрд┐рдП рдЧрдП рднрдВрдбрд╛рд░реЛрдВ рдкрд░ рднреА рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред

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

@jaromil рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реИред DockerHub рдХреЗ рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ (рд╕рд╛рде рд╣реА рднреБрдЧрддрд╛рди рд╡рд╛рд▓реЗ, рд╡реЗ рдмрд┐рд▓реНрдб рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП рд╢реБрд▓реНрдХ рдирд╣реАрдВ рд▓реЗрддреЗ рд╣реИрдВ) рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд░рдЦрдирд╛ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рд╣реЛрдЧрд╛ред рдмрд╛рд░-рдмрд╛рд░ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рд╛рде CI/CD рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ, рдпрд╣ рдФрд░ рднреА рдЦрд░рд╛рдм рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

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

рд╕реНрд╡рдпрдВ-рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдЖрдкрдХреЛ рдЖрд╢реНрдЪрд░реНрдп рд╣реЛрдЧрд╛ред рдореИрдВ @bluzi рдЯрд┐рдкреНрдкрдгреА рдХреЛ рд╕рдордЭрддрд╛

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

TLDR: рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдбреЙрдХрд░ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдХреБрдЫ рд╕реБрдзрд╛рд░ рдмрд╣реБрдд рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдХреИрд╢рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛рдУрдВ/рднреНрд░рдо рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдореИрдВ рдпрд╣рд╛рдВ рд╕рдорд╛рдкреНрдд рд╣реБрдЖред рдпрд╣рд╛рдВ рдФрд░ https://github.com/moby/moby/pull/10682 рдореЗрдВ рд╕рднреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдЕрдкрдиреЗ рд╡рд┐рд╢реЗрд╖ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛ред рдлрд┐рд░ рднреА рдХрд┐рд╕реА рддрд░рд╣ рдореИрдВ рдЕрднреА рднреА рдЗрд╕ рдкрд░ рдбреЙрдХрд░ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдирд┐рд░рд╛рд╢ рдорд╣рд╕реВрд╕ рдХрд░ рд░рд╣рд╛ рдерд╛, рдФрд░ рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдХрдИ рдЕрдиреНрдп рд▓реЛрдЧ рднреА рдРрд╕рд╛ рд╣реА рдорд╣рд╕реВрд╕ рдХрд░рддреЗ рд╣реИрдВред

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

рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рдмреАрдЪ рдкрдврд╝рдирд╛, рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдЕрдиреБрд░реЛрдз рдкрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╢реБрд░реБрдЖрддреА рдЯрд┐рдкреНрдкрдгреАрдХрд╛рд░ рдРрд╕реЗ рд╕рдорд╛рдзрд╛рди рд╕реЗ рдЦреБрд╢ рд╣реЛрдВрдЧреЗ рдЬреЛ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдореЗрдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдмрд┐рдВрджреБ рдкрд░ рдХреИрд╢ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП docker image build рдЕрддрд┐рд░рд┐рдХреНрдд рддрд░реНрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдбреЙрдХрд░ рдХрд╛ рд╡рд░реНрддрдорд╛рди рд╕рдорд╛рдзрд╛рди (https://github.com/moby/moby/issues/1996#issuecomment-172606763 рдореЗрдВ рд╡рд░реНрдгрд┐рдд) рдЗрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрд╕рд╕реЗ рдЦреБрд╢ рд╣реИрдВ . (рдпрджрд┐ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИ рдЬрд╣рд╛рдВ рд╡реЗ docker image build рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рддрд░реНрдХ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдорд╛рдзрд╛рди рдЕрднреА рднреА рдЕрдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рддреЛ рд╢рд╛рдпрдж рдпрд╣ рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ рдХрд┐ рдпрд╣ рдЕрдкрд░реНрдпрд╛рдкреНрдд рдХреНрдпреЛрдВ рд╣реИред)

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

рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рдмреАрдЪ рдлрд┐рд░ рд╕реЗ рдкрдврд╝рдирд╛, рдореБрдЭреЗ рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдпреЗ рд╕рднреА рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдпрд╛ рддреЛ рдЙрди рд╕реЗрд╡рд╛рдУрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдУрд░ рд╕реЗ docker image build рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рдпрд╛ Dockerfiles рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ рдЬреЛ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдЬреЛ рддрдм docker image build рдЪрд▓рд╛рддреЗ рд╣реИрдВ docker image build рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рддрд░реНрдХ рдкрд╛рд░рд┐рдд рдХрд░рдирд╛ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рддреЛ рд╢рд╛рдпрдж рдпрд╣ рдЖрдкрдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрддрд╛рддреЗ рд╣реБрдП рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред)

рдЗрдирдореЗрдВ рд╕реЗ рдХрдИ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдбреЙрдХрд░реАрдлрд╛рдЗрд▓ рдореЗрдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдмрд┐рдВрджреБ рдкрд░ рдХреИрд╢рд┐рдВрдЧ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ (рдЬреЛ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдЕрдиреБрд░реЛрдз рдХрд╛ рдореВрд▓ рдмрд┐рдВрджреБ рдерд╛)ред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ docker image build рдХреЗ "--no-cache" рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рд╕реЗ рдкрд╣рд▓реЗ Dockerfile рдореЗрдВ рдореИрдиреНрдпреБрдЕрд▓ рд╕рдВрд╢реЛрдзрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛, Dockerfile рдХреЗ рднреАрддрд░ рд╕реЗ рдХреИрд╢рд┐рдВрдЧ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╕реЗ рдЦреБрд╢ рд╣реЛрдВрдЧреЗред рдирд┐рд░реНрдорд╛рдгред (рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╕рдордп, рд╢рд╛рдпрдж рдпрд╣ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реЗрдЧреА рдХрд┐ рдХреНрдпрд╛ рдЖрдВрд╢рд┐рдХ рдХреИрд╢рд┐рдВрдЧ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдпрд╛ рдХреИрд╢ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдХреНрд╖рдо рдХрд░рдирд╛ рдЖрдкрдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛ред)

рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЬрд╣рд╛рдВ рдХреЛрдИ рд╕реЗрд╡рд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдУрд░ рд╕реЗ docker image build рдЪрд▓рддреА рд╣реИ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдбреЙрдХрд░ рдРрд╕реА рд╕рднреА рд╕реЗрд╡рд╛рдУрдВ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдпрд╛ рддреЛ рдмрд┐рдирд╛ рд╢рд░реНрдд рдХреИрд╢ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░ рджреЗрдВ рдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдХреИрд╢ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рджреЗрдВред https://github.com/moby/moby/pull/10682#issuecomment-73777822 рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдбреЙрдХрд░ рд╣рдм рдмрд┐рдирд╛ рд╢рд░реНрдд рдХреИрд╢ рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░ рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рдХреЛрдИ рд╕реЗрд╡рд╛ рдкрд╣рд▓реЗ рд╕реЗ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рддреА рд╣реИ, рддреЛ рдбреЙрдХрд░ рдиреЗ https://github.com/moby/moby/pull/10682#issuecomment-159255451 рдиреЗ рд╕реЗрд╡рд╛ рдкреНрд░рджрд╛рддрд╛ рдХреЛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╢рд┐рдХрд╛рдпрдд рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рд╣реИред

рдпрд╣ рдореБрдЭреЗ рдбреЙрдХрд░ рдХреЗ рд▓рд┐рдП docker image build рдЪрд▓рд╛рдиреЗ рд╡рд╛рд▓реА рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдПрдХ рдЙрдЪрд┐рдд рд╕реНрдерд┐рддрд┐ рдкреНрд░рддреАрдд рд╣реЛрддреА рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реНрдерд╛рди рдкрд░ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдкреНрд░рд▓реЗрдЦрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╕реЗрд╡рд╛ рдкреНрд░рджрд╛рддрд╛ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреЛрдиреЛрдВ рдЬрд╛рди рд╕рдХреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЙрдореНрдореАрдж рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред рдРрд╕рд╛ рдкреНрд░рддреАрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реНрдерд┐рддрд┐ рдпрд╛ рдбреЙрдХрд░ рд╣рдм рдХреИрд╢рд┐рдВрдЧ рд╡реНрдпрд╡рд╣рд╛рд░ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЙрди рдСрдл-рдж-рдХрдл рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд╣реАрдВ рднреА рдкреНрд░рд▓реЗрдЦрд┐рдд рд╣реИ рдЬреЛ рдЙрд╕ рд╡рд┐рд╢рд╛рд▓/рдкреНрд░рд╛рдЪреАрди/рдмрдВрдж рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХреЗ рдЕрдВрджрд░ рдЧрд╣рд░реЗ рджрдмреЗ рд╣реБрдП рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХреЛрдИ рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╕реЗрд╡рд╛ рдкреНрд░рджрд╛рддрд╛ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреЛрдиреЛрдВ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдпрд╣ рдЧрд▓рдд рд╣реЛ рдЬрд╛рдУред рд╢рд╛рдпрдж docker build рд╕рдВрджрд░реНрдн рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдмрд┐рд▓реНрдб рд╕реЗрд╡рд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдХреИрд╢рд┐рдВрдЧ рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдбреЙрдХрд░ рдХреА рд░рд╛рдп рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдФрд░ рдбреЙрдХрд░ рд╣рдм рдХреИрд╢рд┐рдВрдЧ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдбреЙрдХрд░ рд╣рдм рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдмрд┐рд▓реНрдб рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╕рдорд╛рдкреНрдд рд╣реЛ рд╕рдХрддреА рд╣реИ?

рдЙрди рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд╣рд╛рдВ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдЬреЛ рддрдм docker image build рд╕реНрд╡рдпрдВ рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рдХреБрдЫ рд▓реЛрдЧреЛрдВ рдиреЗ рддрд░реНрдХ рджрд┐рдпрд╛ рд╣реИ рдХрд┐ рд╕рд░рд▓ docker build . рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ (рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЕрддрд┐рд░рд┐рдХреНрдд рддрд░реНрдХ рдХреЗ) рдЗрддрдирд╛ рдЖрдо рд╣реИ рдХрд┐ рдпрд╣ рд╣реЛрдЧрд╛ Dockerfile рдмрд┐рд▓реНрдбрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рддрд░реНрдХ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЬрдмрдХрд┐ рдЕрдиреНрдп рд▓реЛрдЧ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: https://github.com/moby/moby/issues/1996#issuecomment-72238673 https://github.com/moby/moby/pull /10682#issuecomment-73820913 https://github.com/moby/moby/pull/10682#issuecomment-73992301) рдиреЗ рддрд░реНрдХ рджрд┐рдпрд╛ рд╣реИ рдХрд┐ Dockerfile рдореЗрдВ рд╣рд╛рд░реНрдб-рдХреЛрдбрд┐рдВрдЧ рдХреИрд╢ рдУрд╡рд░рд░рд╛рдЗрдб рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдХреИрд╢рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдмрд┐рдирд╛ рд╢рд░реНрдд рд░реЛрдХрдирд╛ рдЕрдиреБрдЪрд┐рдд рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рд▓рд┐рдП рд╡рд┐рд╕реНрддреГрдд/рд╕рдореНрдореЛрд╣рдХ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдбреЙрдХрд░ рдиреЗ рдХреИрд╢рд┐рдВрдЧ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рддрд░реНрдХреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрдХрд╛рд░реА рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдирд┐рд░рд╛рд╢рд╛ рдХрд╛ рд╕реНрд░реЛрдд рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред (рдпрджрд┐ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдЗрд╕рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдПрдХ рд╕рдореНрдореЛрд╣рдХ рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИ, рддреЛ рд╢рд╛рдпрдж рдЗрд╕реЗ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╕рдордЭрд╛рддреЗ рд╣реБрдП рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реЗрдЧреАред)

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдбреЙрдХрд░ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЕрддрд┐рд░рд┐рдХреНрдд рддрд░реНрдХ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА docker build . рдЪрд▓рд╛рдиреЗ рдХреА рдЖрджрдд рдХреЛ рддреЛрдбрд╝рдХрд░ рд╕рднреА рдХреЛ рдЦреБрд╢ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдХрд┐рд╕реА рднреА рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдбреЙрдХрд░ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ рдХреИрд╢рд┐рдВрдЧ рд╡реНрдпрд╡рд╣рд╛рд░ рдФрд░ "--рдиреЛ-рдХреИрд╢" рддрд░реНрдХ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдЬреИрд╕реЗ рдпрд╣ рдпрд╛ рдпрд╣
рдпрд╛ рдпрд╣ )ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬрдмрдХрд┐ docker build рдкреНрд░рд▓реЗрдЦрди "--no-cache" рддрд░реНрдХ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдЗрд╕рдХреЗ рдорд╣рддреНрд╡ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдЗрд╕ рддрдереНрдп рдХреЛ рдЙрдЬрд╛рдЧрд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрдИ рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред (рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ docker image build рдкреНрд░рд▓реЗрдЦрди рдЦрд╛рд▓реА рд╣реИред рдЗрд╕реЗ рдХрдо рд╕реЗ рдХрдо docker build рдкреНрд░рд▓реЗрдЦрди рдХрд╛ рд╕рдВрджрд░реНрдн рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред) рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдХреЗрд╡рд▓ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рд╕рдВрджрд░реНрдн рдФрд░ рд╕рд░реНрд╡реЛрддреНрддрдо рдЕрднреНрдпрд╛рд╕ рджрд╕реНрддрд╛рд╡реЗрдЬ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреИрд╢рд┐рдВрдЧ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рднреВрдорд┐рдХрд╛ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддреЗ рд╣реИрдВред "--no-cache" рддрд░реНрдХ рдХрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрди рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЛ рдХреЗрд╡рд▓ рдЙрдиреНрдирдд Dockerfile рд▓реЗрдЦрдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рдкрдврд╝реЗ рдЬрд╛рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпрд╣ рдХреЛрдИ рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреЗрд╡рд▓ рдЙрдиреНрдирдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реА "--рдиреЛ-рдХреИрд╢" рддрд░реНрдХ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ, рдФрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗрд╡рд▓ docker build . рдмрд┐рдирд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рддрд░реНрдХреЛрдВ рдХреЗ рд╣реА рдЪрд▓реЗрдВрдЧреЗ рдФрд░ рдЬрдм рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рддреЛ рднреНрд░рдорд┐рдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ рд╡реЗ рдпрд╛ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рд▓реЗрдЦрдХ рдХреИрд╕реЗ рдЕрдкреЗрдХреНрд╖рд╛/рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╢рд╛рдпрдж "--no-cache" рддрд░реНрдХ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдФрд░ docker build рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдФрд░ рдЗрд╕рдХрд╛ рдорд╣рддреНрд╡ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ?

+1

+1

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

+1

+1

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

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

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

рдореИрдВ рдЗрд╕ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдЗрди рдЕрдиреБрднрд╛рдЧреЛрдВ рдХреЛ рджреВрд╕рд░реА рдЫрд╡рд┐ рдореЗрдВ рдЦреАрдВрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рддрдм рдЖрдзрд╛рд░ рдЫрд╡рд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рддрдм рдЕрдЬреАрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдХрд┐рд╕реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рджреНрд╡рд╛рд░рд╛ рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреИрд╕реЗ package.json, require.txt, Gemfile, рдЖрджрд┐ред . рдЙрд╕ рдЖрдзрд╛рд░ рдЫрд╡рд┐ рдХреЛ рднреА рд▓рдЧрд╛рддрд╛рд░ рд▓рдЧрд╛рддрд╛рд░ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЗрд╕ рд▓рд╛рдЗрди рдирд┐рд░реНрджреЗрд╢ рд╕реЗ +1 рд╕реЗ CACHE OFF - рдореИрдВ рд╕рдЪрдореБрдЪ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдЗрд╕рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

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

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

--build-arg PASSWORD=<wrong> --build-arg PASSWORD=<correct> рддреБрд▓рдирд╛ рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рдкрд░рд┐рдгрд╛рдо рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкреИрдХреЗрдЬ рд╕реВрдЪреА рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рджреЗрдЦрдХрд░ рдЙрд╕рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдмрд┐рд▓реНрдбрд░ рд╕реНрд╡рдпрдВ рдпрд╣ рдЕрдиреБрдорд╛рди рдирд╣реАрдВ рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЪрд▓рд╛рдП рдЬрд╛ рд░рд╣реЗ рдЪрд░рдгреЛрдВ рдкрд░ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреА рд╕реЗрдЯрд┐рдВрдЧ/рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдХреНрдпрд╛ рдкреНрд░рднрд╛рд╡ рдкрдбрд╝реЗрдЧрд╛ ( make DEBUG=1 foo рдФрд░ make DEBUG=0 foo рд╕рдорд╛рди рд╣реИрдВ?) рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдПрдХрдорд╛рддреНрд░ рдЕрдкрд╡рд╛рдж xx_PROXY рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреЗ рд▓рд┐рдП рд╣реИ, рдЬрд╣рд╛рдВ рдпрд╣ рдзрд╛рд░рдгрд╛ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ рдХрд┐ рдиреЗрдЯрд╡рд░реНрдХ-рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░реЙрдХреНрд╕реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдЕрд▓рдЧ рдкреНрд░реЙрдХреНрд╕реА рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рд╕реЗ рдПрдХ рд╣реА рдкрд░рд┐рдгрд╛рдо рдЙрддреНрдкрдиреНрди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рддреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреИрд╢рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЕрдирджреЗрдЦрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ (/ рдирд┐рд░реНрдорд╛рдг рддрд░реНрдХ) рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рдХрд┐рд╕реА рднреА рддрд░реАрдХреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ BuildKit рдХреЗ рдкрд╛рд╕ рдЕрдм RUN --mount=type=secret рдФрд░ RUN --mount=type=ssh рд▓рд┐рдП рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд╕рдорд░реНрдерди рд╣реИ, рдЬреЛ рд░рд╣рд╕реНрдпреЛрдВ/рдкреНрд░рдорд╛рдг-рдкрддреНрд░реЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣рд╛рдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╡реЗ рд░рд╣рд╕реНрдп рдмрджрд▓рддреЗ рд╣реИрдВ рддреЛ рднреА рдХреИрд╢ рдХреЛ рдЕрдорд╛рдиреНрдп рдХрд░ рд╕рдХрддрд╛ рд╣реИ (рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ; рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдмрд┐рд▓реНрдбрдХрд┐рдЯ рдЗрд╢реНрдпреВ рдЯреНрд░реИрдХрд░ рдореЗрдВ рд▓рд╛рдПрдВ https://github.com/moby/buildkit/issues)ред

рдореБрдЭреЗ рдбреЙрдХрд░ рд╣рдм/рдбреЙрдХрд░ рдХреНрд▓рд╛рдЙрдб рдкрд░ рдХреИрд╢ рдЕрдХреНрд╖рдо рдХрд░рдирд╛ рдкрдбрд╝рд╛ рд╣реИ

рдХреНрдпрд╛ рдбреЙрдХрд░ рд╣рдм/рдХреНрд▓рд╛рдЙрдб рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ _use_ рдХреИрд╢рд┐рдВрдЧ рдХрд░рддрд╛ рд╣реИ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд╣рд╛рдВ рдХреЛрдИ рдХреИрд╢рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐; рдпрд╣ рдХреНрд╖рдгрд┐рдХ рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ)

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

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

рдореИрдВ рдмрд╣реБрдд рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдкреНрд░рд╛рд░рдВрднрд┐рдХ git clone && make build рдХреЛ рдХреИрд╢ рдХрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ рдлрд┐рд░ рдХреЗрд╡рд▓ рдПрдХ рдмрд╣реБрдд рдЫреЛрдЯрд╛ рдХреЛрдб рдЕрдкрдбреЗрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП NO CACHE рдПрдХ git pull && make build рдЪрд░рдг рдкрд░ рдХрд░реЗрдВ + рдирд┐рд░реНрднрд░рддрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдВрддрд┐рдо рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реИ рдкрд░рдд, рдЬрд┐рд╕рд╕реЗ рди рдХреЗрд╡рд▓ рдмрд┐рд▓реНрдб рдХреЗ рд▓рд┐рдП, рдмрд▓реНрдХрд┐ рдЙрди рд╕рднреА рдХреНрд▓рд╛рдЗрдВрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдЫрд╡рд┐ рдХреЗ рдмрдбрд╝реЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рдХреИрд╢рд┐рдВрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рдЕрднреА рд╣рд░ рдмрд╛рд░ рд╕реИрдХрдбрд╝реЛрдВ рдПрдордмреА рдкрд░рддреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдмреЗрд╣рдж рдЕрдХреНрд╖рдо рд╣реИред

рдЖрдХрд╛рд░ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рд╣реЛрддреА рд╣реИрдВ, рдЙрджрд╛ред рд╕рд┐рд╕реНрдЯрдо рдкреИрдХреЗрдЬ + рдкрд░реНрд▓ рд╕реАрдкреАрдПрдПрди рдореЙрдбреНрдпреВрд▓ + рдкрд╛рдпрдерди рдкреАрдИрдкреАрдЖрдИ рдореЙрдбреНрдпреВрд▓ рдЗрддреНрдпрд╛рджрд┐ред

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

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

рдореИрдВ рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓рд┐рдП рдПрдЖрд░рдЬреА рдмрджрд▓рдиреЗ рдЬреИрд╕реА рдЪрд╛рд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛ (рдПрдХ рд╡рд┐рдЪрд╛рд░ рдЬреЛ рдореБрдЭреЗ http://dev.im-bot.com/docker-select-caching/ рдЬреИрд╕реЗ рдмреНрд▓реЙрдЧреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЦреЛрдЬрдиреЗ рд╕реЗ рдорд┐рд▓рд╛):

рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдореЗрдВ:

ARG NOCACHE=0

рдлрд┐рд░ рдбреЙрдХрд░ рдмрд┐рд▓реНрдб рдХреЛ рдЗрд╕ рддрд░рд╣ рдЪрд▓рд╛рдПрдВ:

docker build --build-arg NOCACHE=$(date +%s) ...

рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдбреЙрдХрд░ рдХреНрд▓рд╛рдЙрдб рдореЗрдВ рдпрд╣ рд╕рдВрднрд╡ рд╣реИред

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

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

--build-arg PASSWORD=<wrong> --build-arg PASSWORD=<correct> рддреБрд▓рдирд╛ рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рдкрд░рд┐рдгрд╛рдо рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкреИрдХреЗрдЬ рд╕реВрдЪреА рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рджреЗрдЦрдиреЗ рд╕реЗ рдЙрд╕рдХреЗ рд▓рд┐рдП рдХрд╛рдо рд╣реЛрдЧрд╛

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

рд╣рд╛рдВ, рдореИрдВ docker build --force-cache-build-arg SECRET=supersecret рдЬреИрд╕рд╛ рдХреБрдЫ рдЪрд┐рддреНрд░рд┐рдд рдХрд░ рд░рд╣рд╛ рдерд╛ред рдпрд╣ рдмрд╣реБрдд рднрджреНрджрд╛ рд╣реИ, рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдХреЛрдИ рдХреБрдЫ рдмреЗрд╣рддрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

@HariSekhon рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓рд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореЗрд░реЗ рд╡рд┐рдкрд░реАрдд рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣реИ рдирд╛? рдЖрдк рдХреИрд╢ рдХреЛ рдЪреБрдирд┐рдВрджрд╛ рд░реВрдк рд╕реЗ рдмрд▓рдкреВрд░реНрд╡рдХ рд╣рд┐рдЯ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЪреБрдирд┐рдВрджрд╛ рд░реВрдк рд╕реЗ рдХреИрд╢ рдХреЛ рдорд┐рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?

рдЗрд╕реЗ рдЬреЛрдбрд╝рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛:

ADD http://date.jsontest.com/ /tmp/bustcache

рд▓реЗрдХрд┐рди рд╡рд╣ рд╕рд╛рдЗрдЯ рдЕрднреА рдбрд╛рдЙрди рд╣реИред рдпрд╣ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП

ADD http://api.geonames.org/timezoneJSON?formatted=true&lat=47.01&lng=10.2&username=demo&style=full /tmp/bustcache

@itdependsnetworks

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

рдореИрдВрдиреЗ рдпрд╣ рдХреЛрд╢рд┐рд╢ рдХреА рдереА рдФрд░ рдЗрд╕реА рддрд░рд╣ рдХреА рдЕрдиреНрдп рд╡рд┐рд╢реЗрд╖ рдлрд╛рдЗрд▓реЗрдВ рд╣рд░ рдмрд╛рд░ рдмрджрд▓рдиреА рдЪрд╛рд╣рд┐рдП

COPY /dev/random ...

рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛, рднрд▓реЗ рд╣реА RUN ls -l -R /etc рдиреЗ рджрд┐рдЦрд╛рдпрд╛ рдХрд┐ рдРрд╕реА рдлрд╛рдЗрд▓реЗрдВ рдореМрдЬреВрдж рдереАрдВ, рд╡реЗ рд╣рдореЗрд╢рд╛ рдирд╣реАрдВ рдорд┐рд▓реАрдВ, рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рд╡рд┐рд╢реЗрд╖ рдлрд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЦрд┐рд▓рд╛рдл рдХреБрдЫ рд╕реБрд░рдХреНрд╖рд╛ рд╣реИред

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

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

рдкрд╣рд▓рд╛ рдЕрдкрдирд╛ рджреИрдирд┐рдХ рдХреЛрдЯрд╛ рд╣рд░ рд╕рдордп рддреЛрдбрд╝рддрд╛ рд╣реИ рдФрд░ рджреВрд╕рд░рд╛ рдЕрдм рдпрд╣ рддреНрд░реБрдЯрд┐ рджреЗ рд░рд╣рд╛ рд╣реИ

{"status": {
  "message": "the daily limit of 20000 credits for demo has been exceeded. Please use an application specific account. Do not use the demo account for your application.",
  "value": 18
}}

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

рдЙрджрд╛рд╣рд░рдг рдЙрдкрдпреЛрдЧ рд╣реЛрдЧрд╛:

FROM something
... 
CACHE_BUST git ls-remote my-git-repo HEAD
RUN git clone --depth=1 my-git-repo ...
...
CMD ["my-cmd"]

рдКрдкрд░ рджрд┐рдП рдЧрдП CACHE_BUST рдирд┐рд░реНрджреЗрд╢ рдореЗрдВ рдХрдорд╛рдВрдб рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд░реЗрдкреЛ рдХреЗ HEAD рд╕реЗ SHA рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░реЗрдЧрд╛, рдЗрд╕ рддрд░рд╣ рдореЗрд░рд╛ dockerfile рдпрд╣ рдЬрд╛рди рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд░реЗрдкреЛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреНрд▓реЛрди рдХрд░рдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред

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

рдореЗрд░рд╛ рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:

ARG SHA_TO_BUILD
RUN echo SHA_TO_BUILD
RUN git clone ...
...everything else reliant on that clone
$> ./build-my-image.sh $(get-latest-sha)

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

рдЗрддрдиреА рдмрдбрд╝реА рд╡рд┐рд╢реЗрд╖рддрд╛, рдЕрднреА рднреА рд▓рдВрдмрд┐рдд рдХреНрдпреЛрдВ рд╣реИ?

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

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдореЗрд░реЗ рдкрд╛рд╕ COPY file.txt . рдФрд░ рдореИрдВ file.txt рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдбреЙрдХрд░ рдЕрднреА рднреА рдХреИрд╢реНрдб рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред

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

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

@brennancheung рдЕрдЧрд░ рдРрд╕рд╛ рд╣реИ, рддреЛ рдпрд╣ рдПрдХ рдмрдЧ рд╣реИред рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдЪрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджрд╛ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЦреНрдп рдмрд┐рдВрджреБ рдХреНрдпрд╛ рд╣реИ @ рдмреНрд░реЗрдирдирдЪреЗрдЙрдВрдЧ
https://github.com/brennancheung рдХрд╣ рд░рд╣рд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдЖрдк
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рд▓реЛрдб рдХрд░рдирд╛ (рдпрд╛ рдХреБрдЫ рд╕рдорд╛рди)ред рдЖрдкрдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ
рд╕рдВрдкреВрд░реНрдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ, рдмрд╕ рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ рдЖрджреЗрд╢реЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ
рдЗрд╕рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝реЗ, рдбреЙрдХрд░ рдФрд░ рд╡реЙрдпрд▓рд╛ рдЪрд▓рд╛рдПрдВ, рд╕рд┐рд╕реНрдЯрдо рд╕реЗрдЯ рд╣реЛ рдЧрдпрд╛ рд╣реИред
рдмреЗрд╢рдХ, рдХрдИ рдмрд╛рд░ рдЖрдк рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЕрдВрдд рдХреЗ рдХрд░реАрдм рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ
рдЖрдкрдХрд╛ рдвреЗрд░, рд▓реЗрдХрд┐рди рд╣рдореЗрд╢рд╛ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

рдПрдо рдПрдо рдЖрдИред, 20ред рдорд░реНрдЬрд╝ 2019 рдЙрдо 00:10 рдЙрд╣рд░ рд╢реНрд░рд╛рдЗрдм рдЯрд┐рдмреЛрд░ рд╡рд╛рд╕ <
рд╕реВрдЪрдирд╛рдПрдВ@github.com>:

@brennancheung https://github.com/brennancheung рдЕрдЧрд░ рдРрд╕рд╛ рд╣реИ рддреЛ,
рдпрд╣ рдПрдХ рдмрдЧ рд╣реИред рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдЪрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджрд╛ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВред

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

--
рдерд┐рдпрд╛рдЧреЛ рд░реЛрдбреНрд░рд┐рдЧреНрд╕

рдпрд╣ рдХреЛрд╢рд┐рд╢ рдХреА https://github.com/moby/moby/issues/1996#issuecomment -185872769

рд▓реЗрдХрд┐рди рдпрд╣ рдХреЗрд╡рд▓ рдкрд╣рд▓реЗ рдЙрдкрдпреЛрдЧ рдкрд░/рдмрд╛рдж рдореЗрдВ рдХреИрд╢ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ, рди рдХрд┐ рдХреЗрд╡рд▓ рдЗрд╕рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдкрд░ред

https://docs.docker.com/engine/reference/builder/#impact -on-build-caching

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

@samstav "рдкрд╣рд▓рд╛ рдЙрдкрдпреЛрдЧ" RUN рдмрд╛рдж рдкрд╣рд▓рд╛ ARG (рдпрджрд┐ рд╡рд╣ ARG рдмрд┐рд▓реНрдб-рд╕реНрдЯреЗрдЬ рдХреЗ рд╕рд╛рде рд╣реИ), рддреЛ:

ARG FOO=bar

FROM something
RUN echo "this won't be affected if the value of FOO changes"
ARG FOO
RUN echo "this step will be executed again if the value of FOO changes"

FROM something-else
RUN echo "this won't be affected because this stage doesn't use the FOO build-arg"

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

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

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

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

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

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

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

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