Moby: dockerfile рдХреЛ рдкрде рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВ, рди рдХрд┐ рдкрд╛рдЗрдкрд┐рдВрдЧ рдореЗрдВред

рдХреЛ рдирд┐рд░реНрдорд┐рдд 8 рдЕрдХреНрддреВре░ 2013  ┬╖  160рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: moby/moby

docker build -t my/thing -f my-dockerfile . рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рдореИрдВ рдлрд╛рдЗрд▓реЗрдВ рдЬреЛрдбрд╝ рд╕рдХреВрдВ, рдФрд░ рдХрдИ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рднреА рд╣реЛ рд╕рдХреЗрдВред

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

рддреЛ рдпрд╣ docker build -f Dockerfile.dev . ? рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рд╣рд╛рдБ

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

рдореИрдВ рдмрд╕ рдЗрд╕рдореЗрдВ рджреЗрдЦ рд░рд╣рд╛ рдерд╛

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

рддреЛ рдЕрдЧрд░ рддреБрдо рджреМрдбрд╝рддреЗ рд╣реЛ

рдбреЙрдХрд░ рдмрд┐рд▓реНрдб-рдЯреА рдорд╛рдп/рдерд┐рдВрдЧ рдорд╛рдп-рдбреЙрдХрд░рдлрд╛рдЗрд▓

рдЯрд╛рд░ рдлрд╛рдЗрд▓ рдХреЗ рдмрд╣реБрдд рдХрдо рд╣реЛрдиреЗ рдХреА рд╢рд┐рдХрд╛рдпрдд рдХрд░рддрд╛ рд╣реИред

рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ 'рдкрде' рд╡рд┐рдХрд▓реНрдк рдХреЛ рд╕рд╣реА рдирд╣реАрдВ рдард╣рд░рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХрд╛ рдХреБрдЫ рд╡рд┐рд░рд╛рд╕рдд рдЕрд░реНрде рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?

рддреЛ - рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдЕрдЧрд░ PATH isa рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╣реИ, рдФрд░ рдпрд╣ рдПрдХ рдЯреИрд░рд┐рдлрд╛рдЗрд▓ рдирд╣реАрдВ рд╣реИред

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

рд╡рд╣ рдкрде рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ, рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбреЙрдХрд░рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВред

рдУрд╣, рдФрд░ рдлрд┐рд░ рдЙрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рд╕рд░реНрд╡рд░ рдкрд░ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЯрд╛рд░реНрд╕ - рдЕрдЪреНрдЫрд╛!

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

рдпрд╛ рдЙрд╕реА рддрд░рд╣ -f рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП - рдЖрдкрдХреА Dockerfile рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреЛ рдкреЗрд▓реЛрдб рд╕реЗ рдЕрд▓рдЧ рд░рд╣рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ

рдЕрдм рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдПрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

рдпрд╣ рдХреБрдЫ рднреА рдЦрд░рд╛рдм рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ - рдкрде рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ Dockerfile

рдпрд╣ рд╕рдм рдЙрд╕ рдкрде рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ - рдХреЛрдб рдХреЛ рдкрдврд╝рдХрд░, 'рд╕рдВрджрд░реНрдн' рдХреЛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдЯрд╛рд░ рдХрд░рдХреЗ рд╕рд░реНрд╡рд░ рдкрд░ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред

(рдареАрдХ рд╣реИ, рддреЛ рдореБрдЭреЗ рдЕрднреА рднреА рдкрддрд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдореИрдВ рдХреЗрд╡рд▓ рдкрд┐рдЫрд▓реЗ рдХреБрдЫ рдорд┐рдирдЯреЛрдВ рд╕реЗ рдХреЛрдб рдкрдврд╝ рд░рд╣рд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рд╕рдВрджреЗрд╣ рдХреЗ рджрд╛рдиреЗ рдХреЗ рд╕рд╛рде рд▓реЗрдВ)

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

рдЖрд╣, рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБ рдХрд┐ рдЖрдк рдХреНрдпрд╛ рдХрд╣ рд░рд╣реЗ рд╣реИрдВ - рд╣рд╛рдБ - рдареАрдХ рдпрд╣реА рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдБ - -f рдХреЗ рд╕рд╛рде dockerfile рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛, рдФрд░ рдлрд┐рд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ PATH рдЬреЛ рдЕрд▓рдЧ рд╣реЛ рд╕рдХрддреА рд╣реИред

рддреЛ рдореЗрд░реЗ рдкрд╛рд╕ рд╣реЛ рд╕рдХрддрд╛ рдерд╛:

docker build -t my/thing fooproj
docker build -t my/thing -f debug-dockerfile fooproj

2108 (рдбреЙрдХрд░рдлрд╛рдЗрд▓реНрд╕ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд┐рд░реНрджреЗрд╢ рдЬреЛрдбрд╝рдирд╛) рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╢рд┐рдХрди рдЬреЛрдбрд╝рддрд╛ рд╣реИ

рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдирд┐рд░реНрджрд┐рд╖реНрдЯ dockerfile, рдпрд╛ рдкрде рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред

рдордЬрд╝рд╛:

docker build -t my/thing fooproj
docker build -t my/thing -f ../../debug-dockerfile fooproj
docker build -t my/thing -f /opt/someproject/dockerfiles/debug-dockerfile fooproj

рдЕрддрд┐рд░рд┐рдХреНрдд рдмреЛрдирд╕ рдХреЗ рд░реВрдк рдореЗрдВ - рдЕрднреА рддрдХ рдХреЛрдИ рд╕реАрдПрдордбреАрдмрд┐рд▓реНрдб рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдПрдВ рдХрд┐ рдореБрдЭреЗ рдкрд╣рд▓реЗ рдХреНрдпрд╛ рд╕реАрдЦрдирд╛ рд╣реИ :)

@SvenDowideit рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдореИрдВ рд╢рд╛рдпрдж рдЖрдЬ рдЗрд╕реЗ рд╣реИрдХ рдХрд░рдиреЗ рдХреА рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛

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

рдореИрдВ рдХрд░реВрдБрдЧрд╛ :)

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

рддреЛ: +1 рдореБрдЭрд╕реЗ!

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдЕрдВрддрд┐рдо рд▓рдХреНрд╖реНрдп #1618 рдХреЗ рд╕рдорд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡рд┐рднрд┐рдиреНрди рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХреЗ рд╕рд╛рде)ред рдХрдИ TAG рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдПрдХрд▓ Dockerfile рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдХрдИ рдЪрд┐рддреНрд░, рдмрдирд╛рдо рдХрдИ Dockerfiles рдФрд░ рдПрдХ рд╕рд┐рд╕реНрдЯрдо рд╢рд╛рдорд┐рд▓ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╡рд┐рдЪрд╛рд░?

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

рдореИрдВ рдпрд╣реАрдВ рдкрд░ рд╣реВрдВ: https://github.com/peterbraden/docker/compare/2112-specify-dockerfile?expand=1

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

рдореБрдЭреЗ рд╡рд╣реА рддреНрд░реБрдЯрд┐ рдорд┐рд▓ рд░рд╣реА рд╣реИ, рдХреЛрдИ рд╡рд┐рдЪрд╛рд░

рдбреЙрдХрд░ рдмрд┐рд▓реНрдб рдбреЙрдХрд░рдлрд╛рдЗрд▓


рд╕рдВрджрд░реНрдн рдЕрдкрд▓реЛрдб рдХрд░рдирд╛

2013/12/11 21:52:32 рддреНрд░реБрдЯрд┐: рддреНрд░реБрдЯрд┐ рдирд┐рд░реНрдорд╛рдг: рдЯрд╛рд░рдмреЙрд▓ рдмрд╣реБрдд рдЫреЛрдЯрд╛

@bscott рдЗрд╕рдХреЗ рдмрдЬрд╛рдп docker build . рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдмрд┐рд▓реНрдб рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд▓реЗрддрд╛ рд╣реИ, рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ, рдФрд░ рд╡рд╣ "рдмрд┐рд▓реНрдб рд╕рдВрджрд░реНрдн" рд╣реИред :)

рдХрд╛рдо рдХрд┐рдпрд╛ Thx!, рдореИрдВ рдмрд╕ рд╡рд┐рднрд┐рдиреНрди рдбреЙрдХрд░ рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рдмреАрдЪ рдЪрдпрди рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдореБрдЭрд╕реЗ +1ред

рдореБрдЭреЗ рдЕрдкрдиреЗ рд╕реНрд░реЛрдд рд╕реЗ рдХрдИ рдЫрд╡рд┐рдпрд╛рдВ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдЫрд╡рд┐ рдПрдХ рдЕрд▓рдЧ рдЪрд┐рдВрддрд╛ рдХрд╛ рд╡рд┐рд╖рдп рд╣реИ рдЬрд┐рд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╕рдВрджрд░реНрдн рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдПрдХрд▓ Dockerfile рдХреЛ рдкреНрд░рджреВрд╖рд┐рдд рдХрд░рдирд╛ (рдЬреИрд╕рд╛ рдХрд┐ #1618 рдореЗрдВ рд╕реБрдЭрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ) рднрджреНрджрд╛ рд╣реИред рдореЗрд░реЗ рд╕реНрд░реЛрдд рдореЗрдВ 3 рдЕрд▓рдЧ <image-name>.docker рдлрд╛рдЗрд▓реЗрдВ рд░рдЦрдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рдл-рд╕реБрдерд░рд╛ рд╣реЛрдЧрд╛ред

рдореБрдЭреЗ рдРрд╕рд╛ рдХреБрдЫ рд▓рд╛рдЧреВ рд╣реЛрддреЗ рджреЗрдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ред

рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдкрд╣рд▓реЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реИред рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ ./Dockerfile рдХрд╛рдлреА рдмреЗрдХ рдХрд┐рдпрд╛ рд╣реБрдЖ рд╣реИред рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЬрд╛рдВрдЪ рдХреЗ рдмрд╛рдж рдХрдо рд╕реЗ рдХрдо рдпреЗ рдлрд╛рдЗрд▓реЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

api/client.go
archive/archive.go
buildfile.go
server.go

client рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ archive рдЯрд╛рд░ рдХреЗ рд▓рд┐рдП build context рдФрд░ рдХреЗ рд▓рд┐рдП рднреЗрдЬ server рдЬреЛ рддрдм рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ archive рдЕрдирдЯрд╛рд░ рдХреЛ build context рдФрд░ рдмрд╛рдЗрдЯреНрд╕ рдХреЛ buildfile рд╕реМрдВрдк рджреЗрдВред

рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдЯрд╛рд░ рдХреЗ ./Dockerfile рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП client рдФрд░ archive рдХреЛ рдмрджрд▓рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реЛрдЧрд╛ред рдореИрдВ рдЖрдЧреЗ рдХреА рдЬрд╛рдВрдЪ рдХрд░реВрдВрдЧрд╛ред

@thedeeno рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬрд▓реНрджреА рджреЗрдЦ рд▓реВрдВрдЧрд╛ рдФрд░ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдХрд┐ рдЖрдк рдмрджрд▓рд╛рд╡ рдХрд┐рдП рдЬрд╛рдиреЗ рдЪрд╛рд╣рд┐рдПред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд╕реНрдерд╛рди рдкрд░ рд╣реИред

рдореБрдЭрд╕реЗ +1!

рдореИрдВ #1618 рдФрд░ #2112 рджреЛрдиреЛрдВ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдпрд╣ рд╕рдмрд╕реЗ рд╕реБрдВрджрд░ рд╕рдорд╛рдзрд╛рди рд╣реИред

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

#2745 рдХреЗ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ +1ред

+1

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

+1
рдореИрдВ рдЙрд╕ рдмрджрд▓рд╛рд╡ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░реВрдВрдЧрд╛

+1
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреА рдЬрд░реВрд░рдд рд╣реИред

5033 рдХреЛ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреА рдЪрд╛рд╣рд┐рдПред cc/@crosbymichael

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

рдореИрдВ рд╣рд┐рдЪрдХрд┐рдЪрд╛ рд░рд╣рд╛ рд╣реВрдВред

рдПрдХ рдУрд░, рдореИрдВ рд▓реЛрдЧреЛрдВ рдХреА рдЙрдирдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рд╕реАрдорд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ред

рджреВрд╕рд░реА рдУрд░, рдореБрдЭреЗ рдЪрд┐рдВрддрд╛ рд╣реИ рдХрд┐ _run -v /host:/container_ рдФрд░ _expose 80:80_ рдХреЗ рд╕рд╛рде рднреА рдРрд╕рд╛ рд╣реА рд╣реЛрдЧрд╛ред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдпрд╣ рдЙрди 1% рдХреЛ рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ рдЬреЛ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЕрдиреБрдХреВрд▓рди рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ - рдФрд░ рдЕрдиреНрдп 99% рддрдм рдЦреБрдж рдХреЛ рдкреИрд░ рдореЗрдВ рдмреБрд░реА рддрд░рд╣ рд╕реЗ рдЧреЛрд▓реА рдорд╛рд░ рд▓реЗрддреЗ рд╣реИрдВред

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

рддреЛ рдореЗрд░рд╛ рд╕рд╡рд╛рд▓ рд╣реИ: рдХреНрдпрд╛ рд╣рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕реНрд░реЛрдд рднрдВрдбрд╛рд░ рд╣реЛрдиреЗ рдХрд╛ рдЬреЛрдЦрд┐рдо рдирд╣реАрдВ рд╣реИ рдЬреЛ _docker рдмрд┐рд▓реНрдб рдХреЗ рд╕рд╛рде рдмрд╛рд░-рдмрд╛рд░ рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

_, рдХреНрдпреЛрдВрдХрд┐ рдЕрдм рдЖрдкрдХреЛ рдПрдХ README рдкрдврд╝рдирд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдПрдХ рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реИ рдЬреЛ рддрдм 'docker build -f ./path/to/my/dockerfile' рдЪрд▓рд╛рддреА рд╣реИ, рд╕рд┐рд░реНрдл рдЗрд╕рд▓рд┐рдП рдХрд┐ рдЖрдкрдиреЗ Dockerfile рдбрд╛рд▓рдиреЗ рдХрд╛ рдорди рдирд╣реАрдВ рдХрд┐рдпрд╛ред рднрдВрдбрд╛рд░ рдХреА рдЬрдбрд╝? рдпрд╛ рд╢рд╛рдпрдж рдЗрд╕рд▓рд┐рдП рдХрд┐ рдЖрдк рдПрдХ рд╢реБрд░реБрдЖрддреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реИрдВ рдФрд░ рдЙрд╕ рддрдХрдиреАрдХ рдХреЛ рдПрдХ рдЕрдиреМрдкрдЪрд╛рд░рд┐рдХ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╕реЗ рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рдХрд┐рдпрд╛ рд╣реИ?

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

@shykes рдореИрдВ рдЙрд╕ рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рднрд╛рдЧ рд░рд╣рд╛ рд╣реВрдБ рдЬрд┐рд╕рдХрд╛ рдЖрдк рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ _рдХреНрдпреЛрдВрдХрд┐_ рдЗрд╕ Dockerfile рд╕реАрдорд╛ рдХрд╛ред рдпрд╣рд╛рдВ рдХреБрдЫ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рджрд┐рдП рдЧрдП рд╣реИрдВ:

  1. рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдбреЙрдХрд░-рдЖрдзрд╛рд░рд┐рдд рдмрд┐рд▓реНрдб рд╡рд╛рддрд╛рд╡рд░рдг рд╣реИ рдЬреЛ рдПрдХ рдЖрд░реНрдЯрд┐рдлреИрдХреНрдЯ (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЬреЗрдПрдЖрд░ рдлрд╝рд╛рдЗрд▓) рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдмрд┐рд▓реНрдб рдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ рд░рди рдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ рд╕реЗ рдЕрд▓рдЧ рд╣реИ (рд╡рд┐рднрд┐рдиреНрди рдирд┐рд░реНрднрд░рддрд╛рдПрдВ, рдмрдбрд╝реА рдЫрд╡рд┐, рдЖрджрд┐, рдЗрд╕рд▓рд┐рдП рдореИрдВ рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рдмрд┐рд▓реНрдб рдПрдирд╡реА рдХреЛ рдЗрдирд╣реЗрд░рд┐рдЯ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ред рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдХрд┐ Dockerfile рдмрд┐рд▓реНрдб рдФрд░ JAR рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рд░рдирдЯрд╛рдЗрдо env рдЪрд▓рд╛рдПрдБред рдЗрд╕рд▓рд┐рдП рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдЕрд▓рдЧ Dockerfile.build рдлрд╝рд╛рдЗрд▓ рд╣реИ рдЬреЛ рдмрд┐рд▓реНрдб env рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ JAR рдмрдирд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди, рдЪреВрдВрдХрд┐ рдореИрдВ Dockerfile рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдореБрдЭреЗ рдПрдХ scripts/build рдмрдирд╛рдирд╛ рдкрдбрд╝рд╛ docker build < Dockerfile.build рдФрд░ рдлрд┐рд░ рдмрд┐рд▓реНрдб рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрд╕реНрдЯ рд╡реЙрд▓реНрдпреВрдо w/ docker run -v ... рдХреЛ рдорд╛рдЙрдВрдЯ рдХрд░рддреА рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ ADD w/рдкрд╛рдЗрдк-рдЗрди Dockerfiles рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛)ред рдХреНрдпрд╛ рдореИрдВ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдХреЗрд╡рд▓ docker build -t foobar/builder -f Dockerfile.build , docker run foobar/builder , docker build -t foobar/runtime , docker run foobar/runtime рдЪрд▓рд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдФрд░ рджреЛрдиреЛрдВ Dockerfiles рдореЗрдВ рдХреЗрд╡рд▓ ADD рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
  2. ONBUILD рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд╕рд╛рде, рдореИрдВ Dockerfiles рдХреЛ рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ (рдпрд╛ Dockerfile.env, рдЖрджрд┐ рд░реВрдЯ рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЗрдВ) рдореЗрдВ рдбрд╛рд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЬрд┐рдирдХреЗ рдкрд╛рд╕ FROM рдирд┐рд░реНрджреЗрд╢ рдореЗрдВ рд░реВрдЯ Dockerfile рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рдЬрдбрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЙрдирдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╕рдВрджрд░реНрднред рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд┐рднрд┐рдиреНрди рд╡рд╛рддрд╛рд╡рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреИрд░рд╛рдореАрдЯрд░ рд▓рд╛рдиреЗ рдореЗрдВред рд░реВрдЯ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдЕрднреА рднреА рдПрдХ рдЙрдкрдпреЛрдЧреА рдХрдВрдЯреЗрдирд░ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдЕрдиреНрдп рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡реЗрд░рд┐рдПрдВрдЯ рдмрдирд╛рдПрдВрдЧреЗ рдЬрд┐рдирдХреА рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

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

@ cap10morgan рдХрд┐рд╕реА рднреА рдореМрдХреЗ рдкрд░ рдЖрдк рдореБрдЭреЗ рдЕрдкрдиреЗ рдЙрджрд╛рд╣рд░рдг 1 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдРрд╕рд╛ рдХреБрдЫ рдЬреЛ рдЗрд╕рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рддрд╛ рд╣реИ? рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЪрд╛рд░реЛрдВ рдУрд░ рдЦреЗрд▓ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рд╣рдо рдЙрд╕реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред

@shykes https://github.com/shykes рдкреЛрд░реНрдЯреЗрдмрд┐рд▓рд┐рдЯреА рдХрд╛ рдпрд╣ рд╕рдкрдирд╛ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рд╣реИ
рдХрд┐ рдЫрд╡рд┐ рд╕реВрдЪрдХрд╛рдВрдХ рдХрд┐рд╕рдХреЗ рд▓рд┐рдП рд╣реИ? рдмрд┐рд▓реНрдб рдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ
рдкреЛрд░реНрдЯреЗрдмрд▓ рднреА?

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

рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдорд╛рд░реА рдЯреАрдо рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рд╕реЗрдЯрдЕрдк рдореЗрдВ рд╣рдо рдХрдИ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ
рдПрдХ рд╣реА "рд╕рдВрджрд░реНрдн" рд╕реЗ рдЫрд╡рд┐рдпрд╛рдВред --file рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝рдХрд░ рд╣рдо рдпрд╣ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ - рдЬреЛ рдХрд┐ foo.docker рдФрд░ bar.docker рдЬреЛрдбрд╝рдирд╛ рд╣реИ
рд╣рдорд╛рд░реЗ рднрдВрдбрд╛рд░ рдЬрдбрд╝ рдореЗрдВред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд╣рдо рдХреЙрдкреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдирд╛ рд╕рдорд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ
рд╕рдВрджрд░реНрдн рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд╕реНрдерд╛рдпреА рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рдвреЗрд░ рд╕рд╛рд░реА рдлрд╛рдЗрд▓реЗрдВ, рдФрд░ рд╣рдорд╛рд░рд╛ рдирд╛рдо рдмрджрд▓реЗрдВ
рдбреЙрдХрд░ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЬрд╛рджреВ рдореЗрдВ рдирд╛рдорд┐рдд рдХрд┐рдпрд╛ Dockerfile рдмрд╕ рдЗрддрдирд╛ docker build рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдХрд╛рдоред

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

рд╕реЛрдо, рдЕрдкреНрд░реИрд▓ рен, реирежрезрек рдХреЛ рд╢рд╛рдо рек:реирей рдмрдЬреЗ, рд╕реЛрд▓реЛрдорди рд╣рд╛рдЗрдХреНрд╕ рдиреЗ рдиреЛрдЯрд┐рдлрд╝рд┐рдХреЗрд╢рди @github.com рд▓рд┐рдЦрд╛:

@cap10morgan https://github.com/cap10morgan рдХреЛрдИ рднреА рдореМрдХрд╛ рдЬреЛ рдЖрдк рдЗрдВрдЧрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдореБрдЭреЗ рдЖрдкрдХреЗ рдЙрджрд╛рд╣рд░рдг 1 рдХреЗ рд▓рд┐рдП, рдпрд╛ рдРрд╕рд╛ рдХреБрдЫ рдЬреЛ рдЗрд╕рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рддрд╛ рд╣реИ? рддреЛ рдореИрдВ рдЦреЗрд▓ рд╕рдХрддрд╛ рд╣реВрдБ
рдЪрд╛рд░реЛрдВ рдУрд░ рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╣рдо рдПрдХ рд╣реА рдЪреАрдЬрд╝ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред

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

@shykes рдЪреВрдВрдХрд┐ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ 'рдЕрднреНрдпрд╕реНрдд' рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдбреЙрдХреНрд╕ рдпрд╛ рдбреЙрдХрд░ рдкреНрд░рдорд╛рдгрд┐рдд рддрд░реАрдХреЗ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

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

рдпрд╣ рдФрд░ .dockerignore рдореБрджреНрджрд╛ (https://github.com/dotcloud/docker/pull/3452) (рдмрд┐рд▓реНрдб рд╕рдВрджрд░реНрдн рдореЗрдВ рдореЗрд░реА рдкреВрд░реА .git рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдирд╛) рдкрд╣рд▓реЗ рдХреБрдЫ рд╣рдж рддрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рджрд░реНрдж рдмрд┐рдВрджреБ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВрдиреЗ рдПрдХ рдХреЗ рд▓рд┐рдП рдбреЙрдХрд░ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╕рдордп рдорд╛рд░рд╛ рдерд╛ред рдкрд┐рдЫрд▓реЗ рдХреБрдЫ рджрд┐рдиреЛрдВ рдореЗрдВ рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдФрд░ рдореЗрд░реЗ рд▓рд┐рдП рдХреЛрдИ рджрд┐рдорд╛рдЧ рдирд╣реАрдВ рд▓рдЧ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрди рдореБрджреНрджреЛрдВ рдкрд░ рдкреБрд╢рдмреИрдХ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред

+1 рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдкрд░ рднреА - рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдПрдХрд▓ рдХреЛрдб рдЖрдзрд╛рд░ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХрдИ рдорд╛рдЗрдХреНрд░реЛ-рд╕реЗрд╡рд╛рдПрдВ рд╡рд┐рдХрд╕рд┐рдд рдХреА рдЬрд╛ рд░рд╣реА рд╣реИрдВред рд╣рдо рдХрдИ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реЗрд╡рд╛рдУрдВ/рдЖрдзрд╛рд░/* рдФрд░ рд╕реЗрд╡рд╛рдУрдВ/fooservice/* рд╡рд╛рд▓реА рдПрдХ рдЫрд╡рд┐; рдФрд░ рдПрдХ рдЕрдиреНрдп рдЫрд╡рд┐ рдЬрд┐рд╕рдореЗрдВ services/base/* рдФрд░ services/barservices/* рдФрд░ рд╕рд╛рде рд╣реА staticfiles/*.
рд╣рдо Dockerfiles рдХреЛ рд╕рд░реНрд╡рд┐рд╕ рдлреЛрд▓реНрдбрд░ рдХреЗ рдЕрдВрджрд░ рдирд╣реАрдВ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ Docker рдЙрд╕ рдлреЛрд▓реНрдбрд░ рдХреЛ рдПрдХ рд╕рдВрджрд░реНрдн рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирддрд╛ рд╣реИ рдФрд░ рд╣рдо рдХреБрдЫ рднреА рдирд╣реАрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдлреЛрд▓реНрдбрд░ рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдореЗрдВ рдКрдкрд░ рд╣реИред рд╣рдо рджреЛ Dockerfiles рдХреЛ рд░реВрдЯ рдореЗрдВ рдирд╣реАрдВ рд░рдЦ рд╕рдХрддреЗ рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдХрд╛ рдирд╛рдо рдПрдХ рд╣реА рд╣реЛрдЧрд╛ред
рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХрдорд╛рддреНрд░ рдЙрдкрд╛рдп рдпрд╣ рд╣реИ рдХрд┐ рдбреЙрдХрд░реАрдлрд╛рдЗрд▓ рдХреЛ рд╕рд░реНрд╡рд┐рд╕ рдлреЛрд▓реНрдбрд░ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдП рдФрд░ рдлрд┐рд░ рдЪрдпрдирд┐рдд рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╕реНрдЯрдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреЗрдВ, рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╡рд╣ рдХреМрди рд╕реЗ рдкрде рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ (рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд░реВрдЯ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╕рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ), рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдирдП рдореЗрдВ рдХреЙрдкреА рдХрд░реЗрдВ рдЕрд╕реНрдерд╛рдпреА рдлрд╝реЛрд▓реНрдбрд░, рдЪрдпрдирд┐рдд рдбреЙрдХрд░рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЙрд╕ рдирдП рдлрд╝реЛрд▓реНрдбрд░ рдХреА рдЬрдбрд╝ рдореЗрдВ рдХреЙрдкреА рдХрд░реЗрдВ рдФрд░ рдЕрдВрдд рдореЗрдВ "рдбреЙрдХрд░ рдмрд┐рд▓реНрдб рдЯреЗрдореНрдкрдлрд╝реЛрд▓реНрдбрд░" рдЪрд▓рд╛рдПрдВред рдХреНрдпрд╛ рдпрд╣ рд╕рдЪрдореБрдЪ рдЖрд╡рд╢реНрдпрдХ рд╣реИ?
рдпрд╣ рдЗрддрдирд╛ рдЖрд╕рд╛рди рд╣реЛрддрд╛ рдЕрдЧрд░ рдЖрдк рдХреЗрд╡рд▓ "рдбреЙрдХрд░ рдмрд┐рд▓реНрдб" рдХреЛ рдЕрд▓рдЧ рд╕реЗ рдмрддрд╛ рд╕рдХрддреЗ рдХрд┐ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдХрд╣рд╛рдВ рд╣реИ рдФрд░ рд╕рдВрджрд░реНрдн рдХрд╣рд╛рдВ рд╣реИред

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рднреА рдЪрд▓ рд░рд╣рд╛ рд╣реИ .. рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕реБрдзрд╛рд░ рджреЗрдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ред

+1, рдЗрд╕ рд╕реАрдорд╛ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреЛрдбрд┐рдВрдЧ рдПрдХ рдмрд╣реБрдд рдмрдбрд╝рд╛ рджрд░реНрдж рд╣реИред

+1 рдХреЗ рд▓рд┐рдП -f рдзреНрд╡рдЬ рдЬреЛ рдирд┐рд░реНрдорд╛рдг рд╕рдВрджрд░реНрдн рд╕реЗ рдЕрд▓рдЧ Dockerfile рдкрде рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ

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

рдЗрд╕реЗ рдареАрдХ рдХрд░рдирд╛ рдХрд┐рддрдирд╛ рдХрдард┐рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ? рдФрд░, рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкреАрдЖрд░ рднреА рд╣реБрдП рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

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

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

@davber .dockerignore рдореЗрдВ рд╣реИ -> #6579

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

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

/cc @shykes @creack @crosbymichael @vieux

+1 рдХреЗ рд▓рд┐рдП -f рдзреНрд╡рдЬред рдмрд┐рд▓реНрдб рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ DOCKERFILE рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рднреАред

@jakehow рд╣рд╛рдБ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЕрднрд┐рднреВрдд рд╣реЛрдиреЗ рдХрд╛ рдПрдХ рддрддреНрд╡ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░рдХреНрд╖рдХ рдХреЗ рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо 1,000 рд▓реЛрдЧ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдХреБрдЫ рдЕрдиреБрд░реЛрдз рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреА рдорд╛рдВрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдЕрднреА рддрдХ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдкрдирд╛ рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдпрджрд┐ рдЖрдк #docker рдФрд░ #docker-dev irc рдЪреИрдирд▓реЛрдВ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдкрд╣рд▓реА рдмрд╛рд░ рдлрд╛рдпрд░рд╣реЛрдЬ рджреЗрдЦреЗрдВрдЧреЗред

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

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

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

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

@davber рдореИрдВ рдЗрд╕ рдзрд╛рд░рдгрд╛ рдХреЗ рддрд╣рдд рдерд╛ рдХрд┐

@gabrtv рдХреНрдпрд╛ рдЖрдк рдмрд╣реБ-рдЫрд╡рд┐ рдХреЛ рд╡рд╛рдкрд╕ рд▓рд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдпрд╣рд╛рдБ рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИ:

$ ls | grep Dockerfile
Dockerfile
db.Dockerfile
frontend-prod.Dockerfile
frontend-dev.Dockerfile
$ docker build -t shykes/myapp .
Successfully built shykes/myapp/db
Successfully built shykes/myapp/frontend-dev
Successfully built shykes/myapp/frontend-prod
Successfully built shykes/myapp
$ docker build -t shykes/myapp2 --only frontend-dev .
Successfully built shykes/myapp2/frontend-dev

рд╡рд╣ рдкреНрд░рд╕реНрддрд╛рд╡ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдареАрдХ рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдФрд░ рдореИрдВ рдЗрд╕реЗ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдЕрдиреНрдп рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рддреЗ рд╣реБрдП рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВред

@shykes рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдореИрдВ рдЦрд░реАрджрддрд╛ рд╣реВрдВ рдХрд┐ Dockerfile рдкреНрд░рд╛рд░реВрдк рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХреЛ рдмрдврд╝рд╛рдирд╛ рдПрдХ Dockerfile рдХреЛ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рд░реНрдердХ рд╡реНрдпрд╛рдкрд╛рд░ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдореЗрдХрдлрд╝рд╛рдЗрд▓ рд▓реЗрдВ - рдХрд┐рд╕реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП 'рдореЗрдХрдлрд╝рд╛рдЗрд▓' рди рд╣реЛрдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдпрд╣ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрдХ рдЖрдкрдХреЛ '-f' рдХреЗ рд╕рд╛рде рдПрдХ рдЕрд▓рдЧ рдореЗрдХрдлрд╝рд╛рдЗрд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рднреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

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

рдЖрдк рдХрд╣рддреЗ рд╣реИрдВ "рддреЛ рдореЗрд░рд╛ рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ: рдХреНрдпрд╛ рд╣рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕реНрд░реЛрдд рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╣реЛрдиреЗ рдХрд╛ рдЬреЛрдЦрд┐рдо рдирд╣реАрдВ рд╣реИ рдЬреЛ рдХрд┐ рдбреЙрдХрдЯрд░ рдмрд┐рд▓реНрдб рдХреЗ рд╕рд╛рде рдмрд╛рд░-рдмрд╛рд░ рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ,"

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

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

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

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

cat Dockerfile | docker build --cwd=~/my_docker_data_files -

рдЗрд╕ рдкреНрд░рд╕реНрддрд╛рд╡ рдореЗрдВ, --cwd рдзреНрд╡рдЬ ADD рдФрд░ CP рдХреЗ рд▓рд┐рдП рдЖрдзрд╛рд░ рдлрд╝реЛрд▓реНрдбрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ
рдЖрджреЗрд╢ред

2014-06-29 19:42 рдЬреАрдПрдордЯреА+10:00 рдкреАрдЯрд░ рдмреНрд░реИрдбреЗрди рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com :

рдЖрдк рдХрд╣рддреЗ рд╣реИрдВ "рддреЛ рдореЗрд░рд╛ рд╕рд╡рд╛рд▓ рд╣реИ: рдХреНрдпрд╛ рд╣рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕реНрд░реЛрдд рд╣реЛрдиреЗ рдХрд╛ рдЬреЛрдЦрд┐рдо рдирд╣реАрдВ рд╣реИ?
рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдЬрд┐рдиреНрд╣реЗрдВ рдбреЙрдХрдЯрд░ рдмрд┐рд▓реНрдб рдХреЗ рд╕рд╛рде рдмрд╛рд░-рдмрд╛рд░ рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ,"

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

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

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

@llonchj рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ https://github.com/dotcloud/docker/pull/5715 рд╣рд▓ рдХрд░рддрд╛ рд╣реИ рдХрд┐ (рдПрдХ рддрд░рд╣ рд╕реЗ) рдФрд░ рд╡рд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдорд╛рд╕реНрдЯрд░ рдореЗрдВ рд╡рд┐рд▓рдп рд╣реЛ рдЧрдпрд╛ рд╣реИред

@shykes рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдФрд░ рдмрд╣реБ-рдЫрд╡рд┐ рдкреАрдЖрд░ рдХреЗ рд▓рд┐рдП рдЦреБрд▓рд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ # 5715 рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рдмрд╛рдж рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рд╡рд┐рд╢реЗрд╖ рдкреАрдЖрд░ рдЕрдм рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИ рдпрд╛ рдирд╣реАрдВред

рдкреНрд░рддрд┐ @peterbraden рдХреА рдореВрд▓ рдЯрд┐рдкреНрдкрдгреА ...

[рдХрдорд╛рдВрдб redacted] рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рдореИрдВ рдлрд╛рдЗрд▓реЗрдВ рдЬреЛрдбрд╝ рд╕рдХреВрдВ, рдФрд░ рдХрдИ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рднреА рд╣реЛ рд╕рдХреЗрдВред

рдкреНрд░рддрд┐ @cap10morgan...

рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬреЛ рдЪреАрдЬ рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд╕рдВрдж рд╣реИ рд╡рд╣ "рдбреЙрдХрд░рдлрд╛рдЗрд▓ рд╕реНрдерд╛рди/рдирд╛рдо" рд╕реЗ "рдирд┐рд░реНрдорд╛рдг рд╕рдВрджрд░реНрдн" рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдареАрдХ рд╡реИрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдЬреИрд╕рд╛ #5715 рдХрд░рддрд╛ рд╣реИ? рдЬреИрд╕рд╛ рдореБрдЭреЗ рд╕рдордЭ рдореЗрдВ рдЖрдпрд╛:

$ cd myapp
$ ls Dockerfile
Dockerfile
$ docker build -t gabrtv/myimage
Successfully built gabrtv/myimage
$ ls subfolder/Dockerfile
Dockerfile
$ tar -C subfolder -c . | docker build -t gabrtv/myotherimage -
Successfully built gabrtv/myotherimage

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

@gabrtv рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ # 5715 рдПрдХ рд╣реА рдХрдорд╛рдВрдб рд░рдЦрдиреЗ рдХреЗ @shykes рдорд╛рдирджрдВрдб рдореЗрдВ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реИ рдЬреЛ рд╣рдореЗрд╢рд╛ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред tar -C subfolder -c . | docker build -t gabrtv/myotherimage - , рдореЗрд░реЗ рд▓рд┐рдП, рдмреЗрд╣рдж рдЧреИрд░-рд╕реНрдкрд╖реНрдЯ рд╣реИред

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

рдореБрдЭреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ @shykes рджреНрд╡рд╛рд░рд╛ рд╕рдмрд╕реЗ рд╣рд╛рд▓рд┐рдпрд╛ рд╕реБрдЭрд╛рд╡

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

@rattrayalex рдореЗрд░рд╛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░реЛ, рдореИрдВ "рдПрдХ рд╣реА рдЖрджреЗрд╢ рд░рдЦрдиреЗ рдХреЗ рд▓рдХреНрд╖реНрдп рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ рдЬреЛ рд╣рдореЗрд╢рд╛ рдХрд╛рдо рдХрд░реЗрдЧрд╛"ред рдПрдХ рдЕрдЪреНрдЫрд╛ рдореМрдХрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдХреЛрдб рд▓рд┐рдЦреВрдВрдЧрд╛ рдФрд░ рдкреАрдЖрд░ рдЬрдорд╛ рдХрд░реВрдВрдЧрд╛ред :рдЖрдБрдЦ рдорд╛рд░рдирд╛:

рдореЗрд░рд╛ рдореБрджреНрджрд╛ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдВрдЧрдарди рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рд╣реИ, рд╣рдореЗрдВ рдЙрд╕ рдЪрд░реНрдЪрд╛ рдХреЛ рдХрд╣реАрдВ рдФрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рди рдХрд┐ рдПрдХ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдореБрджреНрджреЗ рдкрд░ Allow specifying of a dockerfile as a path, not piping in рд╢реАрд░реНрд╖рдХ рд╕реЗ:

  1. рдпрд╣рд╛рдВ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЪрд░реНрдЪрд╛ https://github.com/dotcloud/docker/issues/2112#issuecomment -47448314 рдореЗрдВ @shykes рдХреЗ рдирдП рдкреНрд░рд╕реНрддрд╛рд╡ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИред
  2. рдореВрд▓ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдореБрджреНрджрд╛ (рдбреЙрдХрд░рдлрд╛рдЗрд▓ рд╕реЗ рдмрд┐рд▓реНрдб рд╕рдВрджрд░реНрдн рдХреЛ рдЕрд▓рдЧ рдХрд░рдирд╛) # 5715 рджреНрд╡рд╛рд░рд╛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╢рд╛рдпрдж рд╣рд░ рдХрд┐рд╕реА рдХреЛ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ

@llonchj рдХрд╛ рд╣рд╡рд╛рд▓рд╛ рджреЗрддреЗ рд╣реБрдП ...

рдореЗрд░реА рд╕рдордЭ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдпрд╣рд╛рдБ рд╕рдорд╕реНрдпрд╛ рдЗрд╕ рддрдереНрдп рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ рдХрд┐ рдЬрдм рдПрдХ Dockerfile (cat Dockerfile | docker build -) рдХреЛ рдкрд╛рдЗрдк рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╣рдо ADD рдФрд░ CP рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрд╢реАрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдЦреЛ рджреЗрддреЗ рд╣реИрдВред

рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдпрджрд┐ рдЖрдк docker build -t <image> -f <path-to-dockerfile> рд╕рд╛рде рдареАрдХ рдереЗ, рддреЛ рдЖрдк tar -C <path-to-context> -c . | docker build -t <image> - рдХреЛ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рд╕рдорддреБрд▓реНрдп рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ рд╣рдо @shykes рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рд▓рд┐рдП рдкреАрдЖрд░ рдХреЛ рдПрдХ рд╕рд╛рде рдирд╣реАрдВ рд░рдЦ рд╕рдХрддреЗред

рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдмрдВрдж рдХрд░ рджреЗрдВ рдФрд░ рдХрд╣реАрдВ рдФрд░ рдПрдХ рдирдИ рдЪрд░реНрдЪрд╛ рд╢реБрд░реВ рдХрд░реЗрдВ (рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА? рдирдпрд╛ рдореБрджреНрджрд╛?)ред

рдЖрдЬ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рд▓реЛрдЧреЛрдВ рдХреЛ рдзрдиреНрдпрд╡рд╛рдж:

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

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

@shykes рдЯрд┐рдкреНрдкрдгреА рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рдзрд╛рди рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ, рдХреНрдпрд╛ рдЗрд╕ рдкрд░ рдХрд╣реАрдВ рдкрд┐рдЫрд▓рд╛ рдХрд╛рдо рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬрд┐рд╕реЗ рдЙрдард╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

рдХреНрдпрд╛ "Dockerfile.frontend-prod" рдмреЗрд╣рддрд░ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рд╕рднреА Dockerfiles
рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдПрдХ рд╕рд╛рде рдХреНрд░рдордмрджреНрдз рдХрд░реЗрдВ?

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рд┐рд░реНрдл рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рд╣реИред рдЕрдЧрд░ рдореЗрд░рд╛ рд░реЗрдкреЛ 100 рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд░реВрдЯ рдкрд░ 100 рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдирд╣реАрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред (рдЙрджрд╛рд╣рд░рдг: dotCloud PAAS рд░реЗрдкреЛред)

рдореИрдВ резрежреж рд╡рд░реНрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рднреА рд╡рд┐рдирдореНрд░ Dockerfile рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛, рди рд╣реАред

рдореБрдЭреЗ 100 рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

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

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

рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рд╡рд░реНрддрдорд╛рди рдкреНрд░рд╕реНрддрд╛рд╡ ( <imagename>.Dockerfile ) рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдмрд┐рд▓реНрдб рдХреЗ рд╡рд░реНрддрдорд╛рди рдбрд┐рдЬрд╝рд╛рдЗрди рдХреЗ рд╕рд╛рде рдмрд┐рд▓реНрдХреБрд▓ рднреА рдореИрдк рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЕрдЧрд░ рдореЗрд░реЗ рдХрд┐рд╕реА рднреА рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдПрдХ рд░реЗрдкреЛ рд╕реЗ рд╕рдордЭреМрддрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдорд▓рд╛рд╡рд░ рдореЗрд░реЗ рд╕рднреА рд░реЗрдкреЛ рдХреЛ рдЕрдзрд┐рднрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ ...?

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

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

рдореИрдВрдиреЗ рдКрдкрд░ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рддрд░реНрдХ рджрд┐рдпрд╛ред рдмреЗрдЭрд┐рдЭрдХ рдЗрд╕реЗ рдкрдврд╝реЗрдВ рдФрд░ рдкреНрд░рддрд┐рд╡рд╛рдж рдкреНрд░рд╕реНрддреБрдд рдХрд░реЗрдВред

рдкреБрдирд╢реНрдЪ: рдЕрд╡реНрдпрд╡рд╕реНрдерд╛ред @gabrtv рдХреА IRC рдкрд░ рднреА рдпрд╣реА рдЪрд┐рдВрддрд╛ рдереАред рдХреБрдЫ рдЪрд░реНрдЪрд╛ рдХреЗ рдмрд╛рдж рд╣рдо рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рдЖрдП:

$ ls Dockerfile Dockerfiles/*
Dockerfile
Dockerfiles/frontend-prod
Dockerfiles/frontend-dev

рд╡рд╣реА рд╡рд┐рдЪрд╛рд░, рд▓реЗрдХрд┐рди рд░реВрдЯ рд░реЗрдкреЛ рдореЗрдВ рдХрдо рдЕрд▓рдЧ-рдЕрд▓рдЧ рдлрд╛рдЗрд▓реЗрдВ рдкрдбрд╝реА рд╣реИрдВред

рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рд╡рд░реНрддрдорд╛рди рдкреНрд░рд╕реНрддрд╛рд╡ (.Dockerfile) рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдмрд┐рд▓реНрдб рдХреЗ рд╡рд░реНрддрдорд╛рди рдбрд┐рдЬрд╝рд╛рдЗрди рдХреЗ рд╕рд╛рде рдмрд┐рд▓реНрдХреБрд▓ рднреА рдореИрдк рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЕрдЧрд░ рдореЗрд░реЗ рдХрд┐рд╕реА рднреА рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдПрдХ рд░реЗрдкреЛ рд╕реЗ рд╕рдордЭреМрддрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдорд▓рд╛рд╡рд░ рдореЗрд░реЗ рд╕рднреА рд░реЗрдкреЛ рдХреЛ рдЕрдзрд┐рднрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ ...?

рдЦреИрд░, рдЕрдм рдЙрдирдХрд╛ рдирд╛рдо рдХреИрд╕реЗ рд░рдЦрд╛ рдЧрдпрд╛? рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ "abc" рдирд╛рдо рдХрд╛ рдПрдХ рд░реЗрдкреЛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╕рд╛рджрд╛ Dockerfile рд╣реИ, рддреЛ рдпрд╣ "abc" рдирд╛рдо рдХреА рдЫрд╡рд┐ рдХреЗ рд▓рд┐рдП рд╕реЗрдВрд╕ рдмрдирд╛ рджреЗрдЧрд╛ред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ "Dockerfile.abc" рдФрд░ "Dockerfile.zzz" рдХреЗ рд╕рд╛рде рдПрдХ рд░реЗрдкреЛ "xyz" рд╣реИ, рддреЛ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП "xyz-abc" рдФрд░ "xyz-zzz" рдХреЗ рд░реВрдк рдореЗрдВ рдмрд┐рд▓реНрдб рдХреЛ рдирд╛рдо рджреЗрдирд╛ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

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

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

@shykes рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рдЕрдЧрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ Dockerfile/* рд╣реИ, рддреЛ рдПрдХ рдХрджрдо рдЖрдЧреЗ рдХреНрдпреЛрдВ рди рдЬрд╛рдПрдВ рдФрд░ "docker build" рдХрд░реЗрдВ, рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд╕рднреА рд╕рдмрдлрд╝реЛрд▓реНрдбрд░реНрд╕ рдореЗрдВ "Dockerfile.*" рдирд╛рдо рдХреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЦреЛрдЬ рдХрд░реЗрдВ, рдкреБрдирд░рд╛рд╡рд░реНрддреА, рдФрд░ рдЙрди рд╕рднреА рдХреЛ рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЪрд▓рд╛рдПрдВ? рдФрд░ рдЬрдм рд╣рдо рдкрд░ рд╣реИрдВ, рддреЛ рдЙрдирдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдХрд▓реНрдк рдкреНрд░рджрд╛рди рдХрд░реЗрдВ ... рдЬреИрд╕реЗ "-f"? :)

... рдореВрд░реНрдЦ рдХрд╣рд▓рд╛рдирд╛ рдирд╛рдкрд╕рдВрдж

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

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

@aigarius рдЕрдЧрд░ рд╣рдордиреЗ рдРрд╕рд╛ рдХрд┐рдпрд╛ рддреЛ рдпрд╣ рдХрдо рд╕реНрдкрд╖реНрдЯ рд╣реЛрдЧрд╛ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЙрдк-рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдХреЛ рдПрдХ рдмрдЪреНрдЪреЗ рдХреА рдЫрд╡рд┐ рдореЗрдВ рдХреИрд╕реЗ рдореИрдк рдХрд┐рдпрд╛ рдЬрд╛рдПред ./Dockerfile.* рдФрд░ ./Dockerfiles/* рджреЛрдиреЛрдВ рдХрд╛ рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рд╡реЗ рдПрдХ рд╣реА рдирд╛рдо рд╕реНрдерд╛рди рдкрд░ рдореИрдк рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдо рдкрд░рд┐рдгрд╛рдореА рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдирд╛рдо рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдпрджрд┐ рдореЗрд░реЗ рдкрд╛рд╕ ./foo/Dockerfile.db рдФрд░ ./bar/Dockerfile.db , рдФрд░ рдореЗрд░реЗ рдкрд╛рд╕ docker build -t shykes/myapp . , рддреЛ рдХрд┐рд╕реЗ shykes/myapp/db рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ?

рдХрд┐рд╕реЗ рд╢рд╛рдпрдХ/рдорд╛рдпрдПрдк/рдбреАрдмреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ?

рдиред рдРрд╕реЗ рдкрд░рд┐рджреГрд╢реНрдп рдореЗрдВ рдЖрдк рдирд╛рдо рдореЗрдВ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреВрд░реНрдг рдкрде рдПрдиреНрдХреЛрдб рдХрд░реЗрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЗ рдкрд╛рд╕ "shykes/myapp/bar/db" рдФрд░ "shykes/myapp/foo/db" рд╣реЛрдЧрд╛ред рдпрд╣ _does_ рдЬрд╛рд╡рд╛ рдиреЗрдорд╕реНрдкреЗрд╕рд┐рдВрдЧ рдХреЗ рдЕрд╕рд╣рдЬ рд░реВрдк рд╕реЗ рдХрд░реАрдм рдЖрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдпрд╣ рддрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреВрд╕рд░реЛрдВ рдХреЛ рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ рдпрд╛ рдмреБрд░рд╛ред

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

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

рддреЛ, рдпрд╣рд╛рдБ рдореЗрд░реЗ рдореБрджреНрджреЗ рджреЛ рдЧреБрдирд╛ рд╣реИрдВ:

  1. рд╕рднреА рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдбрд╝реА рдЧрдбрд╝рдмрдбрд╝ рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣реА рд╣реИ
  2. рдЙрд╕ рдлрд╝рд╛рдЗрд▓/рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реЗрд╡рд╛ рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рдирд╛рддреЗ

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

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

рдПрдХ '-f' рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде, рдХреЛрдИ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЙрдк рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдФрд░ рдЙрдк Dockerfiles рдХреА рд╕рдВрд░рдЪрдирд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХреЛрдИ рдЪрд╛рд╣реЗ, рдЬреИрд╕реЗ Dockerfiles/рдЙрдкрд░реЛрдХреНрдд рджреГрд╖реНрдЯрд┐рдХреЛрдгред рд╣рд╛рдВ, рд╕рдЯреАрдХ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рдирдХрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдХреЛ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдПрдХ-рдкрдВрдХреНрддрд┐ рдмреИрд╢рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА ...

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдФрд░ рд▓рдЪреАрд▓реЗрдкрди рдХреЗ рдмреАрдЪ рддрдирд╛рд╡ рд╣реИред

рдпрджрд┐ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ, рддреЛ рд╣рд╛рдБ, рдПрдХ рдорд╛рдирдХ dockerfile
рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИред рд╕рд╛рдЭрд╛рдХрд░рдг рд╣рд╛рд╕рд┐рд▓ рдХрд┐рдпрд╛ рд╣реИ
рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗред

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

рдЙрджреНрджреЗрд╢реНрдп -f рд╡рд┐рдХрд▓реНрдк рд╣рдореЗрдВ рд╡рд╣ рд▓рдЪреАрд▓рд╛рдкрди рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреА рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рджреВрд╕рд░реЗ рдкрд╣рд▓реВ рдкрд░,
рдирд┐рд░реНрдорд╛рдг рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рдПрдХ рдкреВрд░реНрдг рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рднреА рд╣реЛрдЧрд╛
рдХрд╛рдоред
3 рдЬреБрд▓рд╛рдИ 2014 рдХреЛ рд╢рд╛рдо 6:00 рдмрдЬреЗ, "рдбреЗрд╡рд┐рдб рдмрд░реНрдЧрдореИрди" рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛:

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

рдПрдХ '-f' рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде, рдХреЛрдИ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЙрдк рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ
рдФрд░ рдЙрдк Dockerfiles рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХреЛрдИ рдЪрд╛рд╣реЗ, рдЬреИрд╕реЗ Dockerfiles/
рдКрдкрд░ рджреГрд╖реНрдЯрд┐рдХреЛрдгред рд╣рд╛рдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдПрдХ-рдкрдВрдХреНрддрд┐ рд╡рд╛рд▓реЗ рдмреИрд╢рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА
рд╕рдЯреАрдХ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рдирдХрд▓ рдХрд░реЗрдВ ...

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

рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ -f рдиреНрдпреВрдирддрдо "рдЖрд╢реНрдЪрд░реНрдп" рдХреЗ рд╕рд╛рде рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд▓рдЪреАрд▓рд╛рдкрди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ (рдореИрдВрдиреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдорд╛рдирд╛ рдерд╛ рдХрд┐ рдРрд╕рд╛ рдзреНрд╡рдЬ рдерд╛ рдФрд░ рдЗрд╕ рдзрд╛рдЧреЗ рдкрд░ рдЖрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕реЗ рдЖрдЬрдорд╛рдпрд╛)ред
рд╕рдВрджрд░реНрдн рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП -c , рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдпрд╛ рдЯреИрд░ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдЬреЛрдбрд╝рдирд╛ рднреА рдПрдХ рд╢рд╛рдирджрд╛рд░ рдЬреЛрдбрд╝ рдЬреИрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИред рдпрд╣ рдмрдбрд╝реА рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рд╕реЗ рдирд┐рд░рдВрддрд░ cd s рдХреЛ рд╣рдЯрд╛ рджреЗрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП; рдХрдВрдкрдирд┐рдпреЛрдВ рдореЗрдВред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рд░реАрдбрдореЗ рдЬрд┐рд╕рдореЗрдВ docker build -f foo/bar/Dockerfile -c foo/ рдирд┐рд░реНрджреЗрд╢ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдРрд╕рд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдСрдл-рдкреБрдЯ рд╣реЛрдЧрд╛ред
рдпрд╣ рднреА рд╕рд╣рдордд рд╣реИ рдХрд┐ docker build рдЖрд╕рд╛рдиреА рд╕реЗ Dockerfile s рдХреА рдЦреЛрдЬ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣, рдПрдХ рд░реЗрдкреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╕рдВрд░рдЪрд┐рдд:

-- README
-- foo/
---- Dockerfile
---- etc
-- bar/
---- Dockerfile
---- etc
---- subbar/
------ Dockerfile
-- context/
---- etc

рдХрд┐рд╕реА рднреА рд╕рдВрднрд╛рд╡рд┐рдд рдирд╛рдордХрд░рдг рд╡рд┐рд░реЛрдз ( repo/bar/subbar ) рд╕реЗ рдмрдЪрдирд╛ рд╣реЛрдЧрд╛, рд░рд╛рд╢рд┐ рдХрд╛ рддрд░реНрдХ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛, рдФрд░ рдХрдИ рджреЗрд╡ рд╕рдВрджрд░реНрднреЛрдВ рдореЗрдВ рд╕рдордЭ рдореЗрдВ рдЖрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ docker build рджреЛрдиреЛрдВ рдХреЗ рдЖрд╕рд╛рди рдЙрдкрдпреЛрдЧ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛, рдЬреЛ рдХрдИ рд╕рдВрджрд░реНрднреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдЧрд╛, рдФрд░ docker build -f , рдЬреЛ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдВрджрд░реНрднреЛрдВ рдореЗрдВ рдмрд╛рд╣рд░реА Dockerfile рдХреЛ рдЫреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИред

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

рдмрд╕ рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЦреЛ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИ, рдХрд▓ рдЖрдИрдЖрд░рд╕реА рдЪрд░реНрдЪрд╛ рдореЗрдВ @shykes рдХреЗ рд╕рд╛рде рдЙрдиреНрд╣реЗрдВ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдФрд░ рд╡рд┐рдЪрд╛рд░ рдерд╛:

  • рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреА рдЬрдбрд╝ рдореЗрдВ рдПрдХ рдорд╛рд╕реНрдЯрд░ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдирдП рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдХреЗрд╡рд▓ рдХрдИ рд▓рд╛рдЗрдиреЗрдВ рд╣реЛрддреА рд╣реИрдВ рдЬреИрд╕реЗ "INCLUDE foo/bar/Dockerfile AS bar-foo" рдкреНрд░рддреНрдпреЗрдХ рдЫрд╡рд┐ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
  • рдкреНрд░рддреНрдпреЗрдХ рдЙрдк-рдкрд░рд┐рдпреЛрдЬрдирд╛ (рдЬреИрд╕реЗ рдлреВ рд╕рдмрдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдмрд╛рд░ рдореЙрдбреНрдпреВрд▓), рдЬрд┐рд╕реЗ рдПрдХ рдЕрд▓рдЧ рдЫрд╡рд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, foo/bar/Dockerfile рдкрд░ рдПрдХ рдирд┐рдпрдорд┐рдд Dockerfile рдмрдирд╛рдП рд░рдЦрддрд╛ рд╣реИред рдЙрд╕ Dockerfile рдореЗрдВ рдкрде (ADD рдФрд░ COPY рдХреЗ рд▓рд┐рдП) рдЕрднреА рднреА рд╕рдВрджрд░реНрдн рд░реВрдЯ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╣реИрдВ, рдЬреЛ рдХрд┐ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреА рдЬрдбрд╝ рд╣реИ (рдЬрд╣рд╛рдВ рдорд╛рд╕реНрдЯрд░ Dockerfile рд░рд╣рддрд╛ рд╣реИ)
  • "docker build -t mycorp/myapp" рдкрд░ рдирд┐рдпрдорд┐рдд рдХреЙрд▓ рдХрд░реЗрдВред рд░реВрдЯ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рд╕рднреА рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдЧрд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ "mycorp/myapp/bar-foo" рдЬреИрд╕реЗ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдЧрд╛
  • "рдбреЙрдХрд░ рдмрд┐рд▓реНрдб" рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдк рдХреЛ рдХреЗрд╡рд▓ рдХреБрдЫ рдШреЛрд╖рд┐рдд рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреЗрд╢ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЬреИрд╕реЗ "рдбреЙрдХрд░ рдмрд┐рд▓реНрдб-рдЯреА рдорд╛рдпрдХреЙрд░реНрдк/рдорд╛рдпрдПрдк - рдХреЗрд╡рд▓ рдмрд╛рд░-рдлреВ, рдмрд╛рдЬрд╝-рдбреАрдмреА"

рдмрд╕ рдЕрдЧрд░ рд▓реЛрдЧ рдЕрднреА рднреА рдХрд╛рдордХрд╛рдЬ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╣реИрдВ:

#!/bin/bash
ln -s Dockerfile-dev Dockerfile
docker build -t image/name-dev:latest .
rm Dockerfile

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

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

"-f" рд╢рд╛рдпрдж рдкрд╣рд▓реЗ рд╕реЗ рджрд┐рдП рдЧрдП рдХрд╛рд░рдгреЛрдВ рд╕реЗ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

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

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ #7115 рд╢рд╛рдпрдж рдЗрд╕рдХрд╛ рдЙрдЪрд┐рдд рд╕рдорд╛рдзрд╛рди рд╣реИ

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ #7204 рднреА рд╣реИ рдЬреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓реЗ рдореЗрдВ рдлрд┐рдЯ рд╣реЛрдЧрд╛ред

рдореИрдВ рджреЛрдиреЛрдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЛ рдирд╛рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ рдЬрд┐рд╕рдореЗрдВ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдореЗрдВ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдЬреЛрдбрд╝рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рдЙрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рд╕реАрдзрд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ред #7115 рдЕрднреА рднреА рдРрд╕рд╛ рдкреНрд░рддреАрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓реЗ рдХреЛ рд╣рд▓ рдХрд░реЗрдЧрд╛ рдЬрд╣рд╛рдВ рдореИрдВ рдПрдХ рд╣реА рд░реЗрдкреЛ рд╕реЗ рдХрдИ рдкреНрд░рдХрд╛рд░ рдХреА рдЫрд╡рд┐ рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ 'рдкрд░реАрдХреНрд╖рдг' рдЫрд╡рд┐ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдПрдХ 'рдЙрддреНрдкрд╛рдж' рдЫрд╡рд┐ред #7204 рдПрдХ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╕рдорд╛рдзрд╛рди рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ рдЬреЛ рдПрдХ рдЕрд▓рдЧ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ -f рдПрдХ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП _configurability_ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдпреЗ рджреЛрдиреЛрдВ рд╕рдорд╛рдзрд╛рди _sub_builds_ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВред

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

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

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

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

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

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

рд╕реЛрдо, рдЬреБрд▓рд╛рдИ реирео, реирежрезрек рдХреЛ рд╕реБрдмрд╣ резреж:рекрей рдмрдЬреЗ, рдкреАрдЯрд░ рдмреНрд░реИрдбреЗрди рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

рдореИрдВ рджреЛрдиреЛрдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЛ рдирд╛рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ рдЬрд┐рд╕рдореЗрдВ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдЬреЛрдбрд╝рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ
рдбреЙрдХрд░рдлрд╛рдЗрд▓ред рдЙрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рд╕реАрдзрд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ред #7115
https://github.com/docker/docker/issues/7115 рдЕрднреА рднреА рдРрд╕рд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛
рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓реЗ рдХреЛ рд╣рд▓ рдХрд░реЗрдЧрд╛ рдЬрд╣рд╛рдВ рдореИрдВ рдХрдИ рдкреНрд░рдХрд╛рд░ рдХреА рдЫрд╡рд┐ рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛
рдПрдХ рдПрдХрд▓ рд░реЗрдкреЛ рд╕реЗ, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рд╣реВрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ
рдПрдХ 'рдкрд░реАрдХреНрд╖рдг' рдЫрд╡рд┐ рдФрд░ рдПрдХ 'рдЙрддреНрдкрд╛рдж' рдЫрд╡рд┐ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВред #7204
https://github.com/docker/docker/pull/7204 рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдЬреИрд╕реЗ
рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╕рдорд╛рдзрд╛рди рдЬреЛ рдПрдХ рдЕрд▓рдЧ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ -f рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ
_configurability_ рдПрдХ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП, рдЬрдмрдХрд┐ рдпреЗ рджреЛрдиреЛрдВ рд╕рдорд╛рдзрд╛рди рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ
_рдЙрдк_рдмрд┐рд▓реНрдб_.

рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдЪрд╛рд╣рд┐рдП "рдпрд╣ рдЬрд░реВрд░реА рд╣реИ рдХрд┐ рдПрдХ рдирд┐рд░реНрдорд╛рдг рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
рдореЗрдЬрдмрд╛рди рд╕реЗ рдореЗрдЬрдмрд╛рди рддрдХ рдмрд┐рд▓реНрдХреБрд▓ рд╡рд╣реАред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рдРрд╕реА рдХреБрдВрдЬреА рдХреНрдпреЛрдВ рд╣реИ
рд╕рд┐рджреНрдзрд╛рдВрддред

рдЬреИрд╕рд╛ рдХрд┐ рд╣реИ, рдореИрдВ docker рд╡рд╛рддрд╛рд╡рд░рдг рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ a
рдЗрд╕ рдкреВрд░реЗ рдореБрджреНрджреЗ рдХрд╛ рд╕рдорд╛рдзрд╛рди, рдЬреЛ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрдкрдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд░рддрд╛ рд╣реИ
рд╣реЛрд╕реНрдЯ-рдЯреВ-рд╣реЛрд╕реНрдЯ рд░рди-рдж-рд╕рдорд╛рди рдЕрдирд┐рд╡рд╛рд░реНрдпред

рдореЗрд░реЗ рд▓рд┐рдП, -f рдПрдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╕рдорд╛рдзрд╛рди рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдпрд╣ рд╕реНрд╡реАрдХрд╛рд░реНрдп рдирд╣реАрдВ рд╣реИ,
рддреЛ рд╢рд╛рдпрдж рд╣рдо рдРрд╕реЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдореЛрдбрд╝рдирд╛ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ
dockerfile рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдореЗрдВред

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

рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдореБрдЦреНрдп рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдПрдХ рдЧрд┐рдЯ рд░реЗрдкреЛ рдЦреАрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпрджрд┐ рдЖрдк рд╡рд╣рд╛рдВ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк "docker build -t mytag" рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдореЗрдВ рдФрд░ рдкреВрд░реНрдг рдЕрдкреЗрдХреНрд╖рд┐рдд рдирд┐рд░реНрдорд╛рдг рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдпрд╣рд╛рдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдХреЛрдИ рдХрд╕реНрдЯрдо рдмрд┐рд▓реНрдб рдирд┐рд░реНрджреЗрд╢ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓реЛрдЧ рдЧрд▓рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВред
рдХреНрдпрд╛ рд╕рдордЭреМрддрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдПрдХ рд╣реА рд╕рдВрджрд░реНрдн рдореЗрдВ рдХрдИ рдбреЙрдХрд░ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╡реЗ рд╕рднреА рдкреВрд░реНрд╡-рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЙрдк-рдЯреИрдЧ рдХреЗ рд╕рд╛рде рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрдИ рд╕рдВрднрд╛рд╡рд┐рдд рдЫрд╡рд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рдмрдирд╛рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдЗрд╕ рддрд░рд╣ рджреЛрдиреЛрдВ рдХреЛ рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реБрдП рд╕рд╛рдорд╛рдиреНрдп рдмрд┐рд▓реНрдб рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: 1) рдПрдХ рд╕рдВрджрд░реНрдн рд╕реЗ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЫрд╡рд┐рдпрд╛рдВ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ; 2) рдЙрдирдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ "рдЙрдиреНрдирдд" рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рдЪреБрдиреЗрдВред
рдКрдкрд░ рдореЗрд░реА рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - https://github.com/docker/docker/issues/2112#issuecomment -48015917

@algarius рдзрдиреНрдпрд╡рд╛рдж, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╕рдордп рд╣рдореЗрдВ _INCLUDE_ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдбрд┐рдЬрд╝рд╛рдЗрди рдкреНрд░рд╕реНрддрд╛рд╡ рдЦреЛрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред рдбрд┐рдЬрд╝рд╛рдЗрди рдкреНрд░рд╕реНрддрд╛рд╡реЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП #6802 рдпрд╛ #6805 рджреЗрдЦреЗрдВред

рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:

  • рдбрд┐рдЬрд╛рдЗрди рдкреНрд░рд╕реНрддрд╛рд╡ рдЬрдорд╛ рдХрд░реЗрдВ
  • рдбрд┐рдЬрд╛рдЗрди рдкреНрд░рд╕реНрддрд╛рд╡ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВ
  • рдореИрдВ рдбрд┐рдЬрд╛рдЗрди рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЛ рдордВрдЬреВрд░реА рджреЗрддрд╛ рд╣реВрдВ
  • рдбрд┐рдЬрд╛рдЗрди рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рд▓рд┐рдП рдкреАрдЖрд░ рднреЗрдЬреЗрдВ

рдЖрдЗрдП рдИрдорд╛рдирджрд╛рд░ рд░рд╣реЗрдВ, рдмрд┐рд▓реНрдб рдЕрдм рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджреЛрд╣рд░рд╛рдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИрдВред

рдЕрдЧрд░ рдореЗрд░реЗ Dockerfile рдореЗрдВ RUN apt-get update && apt-get install build-essentials ruby python whatever рд╣реИ, рддреЛ рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреА рджрдпрд╛ рдкрд░ рд╣реВрдВ
рд░реЗрдкреЛ рдореЗрдВ рдЬреЛ рдХреБрдЫ рднреА "рдирд╡реАрдирддрдо" рд╣реИ рдЙрд╕ рдмрд┐рдВрджреБ рдкрд░ рдХрд┐ рдореИрдВ рдЫрд╡рд┐ рдмрдирд╛рддрд╛ рд╣реВрдВред рдЕрдЧрд░
рдЖрдк рдПрдХ рд╕рдкреНрддрд╛рд╣ рдмрд╛рдж рдЫрд╡рд┐ рдмрдирд╛рддреЗ рд╣реИрдВ, рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдг рдорд┐рд▓ рд╕рдХрддреЗ рд╣реИрдВ
рдореБрдЭреЗ рдЬреЛ рдорд┐рд▓рд╛ рд╣реИ рдЙрд╕ рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ред

@codeaholics рд▓реЗрдХрд┐рди рдпрд╣ рдЖрдк рдкрд░ рд╣реИ рдХрд┐ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдкреЗрдЧрд┐рдВрдЧ рди рдХрд░реЗрдВ рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдбреЙрдХрд░ рдХреЗ рдирд┐рдпрдВрддреНрд░рдг рд╕реЗ рдмрд╛рд╣рд░ рд╣реИред

рд╢рд╛рдпрдж рдПрдХ рдЙрдЪрд┐рдд рдЯрд┐рдкреНрдкрдгреА

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

рдпрд╣ рд╕рд┐рд░реНрдл рджреЛрд╣рд░рд╛рдиреЗ рдпреЛрдЧреНрдпрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдЖрдкрдХрд╛ рдирд┐рд░реНрдорд╛рдг рддрд░реНрдХреЛрдВ рдХреЗ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕реЗрдЯ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ _docker build_ рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬреЗ рдЬрд╛рдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдкрдХрд╛ рдХрд╕реНрдЯрдо рдЯреВрд▓ рджреБрдирд┐рдпрд╛ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рдмрд┐рд▓реНрдб рдЯреВрд▓ рд╣реИ рдЬреЛ рдЗрд╕реЗ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИ: рдЕрдм рдЖрдк рд╡рд┐рднрд┐рдиреНрди CI/CD рдЯреВрд▓ рдФрд░ рдкреНрд▓рдЧрдЗрдиреНрд╕ рд╕реЗ рд▓рд╛рдн рдирд╣реАрдВ рдЙрдард╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдорд╛рдирддреЗ рд╣реИрдВ рдПрдХ рджреЗрд╢реА, рдЦреЛрдЬреЗ рдЬрд╛рдиреЗ рдпреЛрдЧреНрдп _docker build_.

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

@shykes > рдПрдХ рдмрд╛рд░ рдЖрдкрдХрд╛ рдирд┐рд░реНрдорд╛рдг Docker рдХреЗ рдЕрдкрд╕реНрдЯреНрд░реАрдо 3D-рдкрд╛рд░реНрдЯреА рдЯреВрд▓ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ
рд╕реНрд╡рдпрдВ ... рдЖрдкрдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреА рджреЛрд╣рд░рд╛рд╡ рдореВрд▓ рд░реВрдк рд╕реЗ рд╢реВрдиреНрдп рд╣реИред

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

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

рдореБрдЭреЗ рдЕрдм рддрдХ рдбреЙрдХрд░ рд╕реЗ рдкреНрдпрд╛рд░ рд╣реИред рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛ рдХрд╛рдо рджреЛрд╕реНрддреЛрдВ! рдпрд╣ рд╡рд┐рд╢реЗрд╖ рдореБрджреНрджрд╛ рдмрд╕ рд╣реЛрддрд╛ рд╣реИ
рдПрдХ рджрд░реНрдж рдмрд┐рдВрджреБ рд╣реЛрдирд╛ред

рд╕реЛрдо, рдЬреБрд▓рд╛рдИ реирео, реирежрезрек рдЕрдкрд░рд╛рд╣реНрди резреи:реирел рдмрдЬреЗ, рд╕реЛрд▓реЛрдорди рд╣рд╛рдЗрдХреНрд╕ рдиреЛрдЯрд┐рдлрд╝рд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

@peterbraden https://github.com/peterbraden #7115 . рдореЗрдВ
https://github.com/docker/docker/issues/7115 , рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдк рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝ рд▓реЗрддреЗ рд╣реИрдВ
рдПрдХрд╛рдзрд┐рдХ PUBLISH рдХреЙрд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рдЕрдм рдЖрдк рдЕрдиреЗрдХ рдЪрд┐рддреНрд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдлрд┐рд░ рдЖрдк
рдХреМрди рд╕реА рдЙрдк-рдЫрд╡рд┐рдпрд╛рдВ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрдпрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдХрд░ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред
рд╡реЗ рдХреБрдВрдЬреА рдпрд╣ рд╣реИ рдХрд┐ рд╡рд┐рдиреНрдпрд╛рд╕ _рдХреЗ рд╕реЗрдЯ рдХреЗ рднреАрддрд░ рд╣реЛрддрд╛ рд╣реИ
Docker_ рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬреЗ рдЬрд╛ рд╕рдХрдиреЗ рд╡рд╛рд▓реЗ рдЙрдк-рдЫрд╡рд┐рдпрд╛рдВред рдЗрд╕ рддрд░рд╣ рдЖрдк рдЦреЛрдЬ рдпреЛрдЧреНрдпрддрд╛ рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

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

@thedeeno Dockerfile рдХрд╛ рд▓рдХреНрд╖реНрдп рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рд╕реНрд░реЛрдд рдХреЛрдб рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдХрд┐рд╕реА рдРрд╕реА рдЪреАрдЬрд╝ рдореЗрдВ рдХреИрд╕реЗ рдмрджрд▓рдирд╛ рд╣реИ рдЬрд┐рд╕реЗ Docker рдЪрд▓рд╛ рд╕рдХрддрд╛ рд╣реИред

рдХреИрд╕реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ "_a_ Dockerfile рдХрд╛ рд▓рдХреНрд╖реНрдп рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рд╕реНрд░реЛрдд рдХреЛрдб рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдХрд┐рд╕реА рдРрд╕реА рдЪреАрдЬрд╝ рдореЗрдВ рдХреИрд╕реЗ рдмрджрд▓рдирд╛ рд╣реИ рдЬрд┐рд╕реЗ Docker рдЪрд▓рд╛ рд╕рдХрддрд╛ рд╣реИред"

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

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

рдореМрдЬреВрджрд╛ рдЙрдкрдХрд░рдг рд╕рдореНрдореЗрд▓рдиреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХрд╛ рднреА рд╡рд┐рдЪрд╛рд░ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, -f рдПрдХ рдРрд╕рд╛ рд╕рд╛рдорд╛рдиреНрдп рдкреИрдЯрд░реНрди рд╣реИ рдЬрд┐рд╕реЗ рд▓реЛрдЧ рдпрд╣ рдЬрд╛рдиреЗ рдмрд┐рдирд╛ рднреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдПрдХ рдпреВрдЖрдИ рд╕рд╣рдЬ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рд▓реЛрдЧ _get_ -f рдЭрдВрдбреЗред рдирдпрд╛ Dockerfile рд╕рд┐рдВрдЯреИрдХреНрд╕ рдЧреНрд░реЛрдХрд┐рдВрдЧ рд▓рдЧрднрдЧ рдЙрддрдирд╛ рд╕рд╣рдЬ рдирд╣реАрдВ рд╣реИред

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

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

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

рдЙрд╕ INCLUDE рд╡рд┐рдЪрд╛рд░ рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдмрдирд╛рдпрд╛ - https://github.com/docker/docker/issues/7277

рдПрдХ рд╕рд╛рдЗрдб рдиреЛрдЯ рдХреЗ рд░реВрдк рдореЗрдВ - рдпрд╣ рдХреНрд▓рдВрдХреА рдХреЗ рдмрдЬрд╛рдп рдЕрдзрд┐рдХ рдХреБрд╢рд▓ "APT" рдХрдорд╛рдВрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ "RUN apt-get install -y ...." (рдФрд░ рдлрд┐рд░ рдмрд╛рдж рдореЗрдВ YUM, EMERGE, PACMAN рдФрд░ рдЬреЛ рдХреБрдЫ рднреА)

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

рдореБрдЭреЗ рд╕рдЪ рдореЗрдВ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рд╕рднреА рдХрдорд░реЗ рдореЗрдВ рд╣рд╛рдереА рдХреА рдЕрдирджреЗрдЦреА рдХрд░ рд░рд╣реЗ рд╣реИрдВред

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

рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рдпрд╣ рдХрд╣рдиреЗ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ рдХрд┐ "рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ docker build . рдЯрд╛рдЗрдк рдХрд░рдирд╛ рд╣рдореЗрд╢рд╛ рд╕рд╣реА рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП", рдЬреЛ рдХрд╣рдиреЗ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ "рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдИ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИ рдЬрд╣рд╛рдВ рдХреЛрдИ рд╕реНрдкрд╖реНрдЯ рд╕рд╣реА рдЪреАрдЬрд╝ рдирд╣реАрдВ рд╣реИ docker build . рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЧрд▓рдд рд╣реИрдВ"

рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреА рдкреНрд░реЗрд░рдгрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдмреЛрд▓ рд╕рдХрддрд╛, рд▓реЗрдХрд┐рди рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░реА рдЕрдкрдиреА рдкреНрд░реЗрд░рдгрд╛рдПрдВ рдареАрдХ рдРрд╕реЗ рдорд╛рдорд▓реЗ рд╣реИрдВ рдЬрд╣рд╛рдВ docker build . рдХрд╛ рдХреЛрдИ рд╕реНрдкрд╖реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдирд╣реАрдВ рд╣реИред рдХреНрдпрд╛ рдореБрдЭреЗ рдбреАрдмрдЧ рд╕рдВрд╕реНрдХрд░рдг рдпрд╛ рд░рд┐рд▓реАрдЬрд╝ рд╕рдВрд╕реНрдХрд░рдг рдЪрд╛рд╣рд┐рдП рдерд╛? рдХреНрдпрд╛ рдореИрдВ рдмреЗрдХ-рдЗрди рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдпрд╛ рдХреНрдпрд╛ рдореБрдЭреЗ рдЕрд▓рдЧ рдРрдк рдХрд╛ рдЙрддреНрд╕рд░реНрдЬрди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? рдХреНрдпрд╛ рдореИрдВ рдЗрд╕реЗ рдкрд░реАрдХреНрд╖рдг рдбреЗрдЯрд╛ рдпрд╛ рдЙрддреНрдкрд╛рджрди рдбреЗрдЯрд╛ рд╕реЗ рд▓реЛрдб рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ? рдХреНрдпрд╛ рдореИрдВ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛?

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

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

рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ docker build . рд▓рд┐рдП рдХреБрдЫ рд╕рдордЭрджрд╛рд░ рдЪреБрди рд╕рдХрддреА рд╣реИ, рдПрдХ рдХрд▓реНрдкрдирд╛ рд╣реИред рдРрд╕реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдЬреЛ рд╕рдВрднрд╡рддрдГ рдХреБрдЫ рд╕рдордЭрджрд╛рд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреАрдВ, рдФрд░ рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдореМрдЬреВрдж рд╣реИрдВред рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдПрдХрдорд╛рддреНрд░ рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдбреЙрдХрд░ рд╕реАрдзреЗ рдЙрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рдмрд╣реБ-рдмрд┐рд▓реНрдбрдкреНрд░реЛрдбрдХреНрдЯ рдкреНрд░рдХреГрддрд┐ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдпрд╛ рдХреНрдпрд╛ рд╡реЗ рдкрд╛рд░рдВрдкрд░рд┐рдХ рдмрд┐рд▓реНрдбрдЯреВрд▓ рдЬреИрд╕реЗ make рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдВрдЧреЗред рдпрд╣ рдЕрдм рд╣реЛ рд░рд╣рд╛ рд╣реИ : рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбрд┐рд╕реНрдХреЛрд░реНрд╕, рдмрдбрд╝реЗ рд╡рд┐рддрд░рд┐рдд-рдСрди-рдбреЙрдХрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ, рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдШрд░реЗрд▓реВ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

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

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

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

@drewcrawford рдиреЗ рдПрдХ рдареЛрд╕ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдХрд┐ рдпрд╣ рд╡рд░реНрддрдорд╛рди рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдХреЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдХреИрд╕реЗ рдирд┐рдкрдЯрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдбреЙрдХрд░ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрдиреНрд╣реЗрдВ рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?

@aigarius рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ "рдбреЙрдХрд░ рд░рд╛рд╕реНрддрд╛" рдирд╣реАрдВ рд╕рдордЭрддрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЧрд▓рдд рд╣реИред

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

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

рдпрд╣рд╛рдВ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдкрд╕рдВрджреАрджрд╛ рдпреВрдЬрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рджреЛрдиреЛрдВ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП make рд╕реЗ рдХрд╛рдлреА рдХрдо рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдпрд╛ рддреЛ рдореЗрдХрд▓рд╛рдЗрдХ рдкрд╛рд╡рд░ рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдкрд╕рдВрджреАрджрд╛ рдпреВрдЬрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдпреВрдЬрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ make рдЖрджрд┐ рдХреЗ рд╕рд╛рде рдирд┐рдореНрди рд╕реНрддрд░ рдХрд╛ рдЯреВрд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди "рд╡рд╛рд╕реНрддрд╡рд┐рдХ" рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИрдВ - рд╡реЗ рдЬрдЯрд┐рд▓ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд▓реЛрдЧ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╕рд░рд▓реАрдХреГрдд рдбреЙрдХрд░ рдмрд┐рд▓реНрдб рдХреА рдХреЛрдИ рднреА рд░рд╛рд╢рд┐ рдЗрд╕реЗ рдмрджрд▓рдиреЗ рдирд╣реАрдВ рдЬрд╛ рд░рд╣реА рд╣реИред рдЬреЛ рдХреБрдЫ рд╣реЛрдЧрд╛ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдбреЙрдХрд░ рдирдпрд╛ cc рдмрди рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕реЗ рд▓реЛрдЧ make рд╕рд╛рде рдЖрдордВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

@shykes @drewcrawford @aigarius рдореИрдВрдиреЗ рдПрдХ рд╕рд░рд▓ -f рд╡рд┐рдХрд▓реНрдк рдХреЗ рд▓рд┐рдП рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдПрдХ рдкреНрд░рд╕реНрддрд╛рд╡ рд▓рд┐рдЦрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ @shykes рдиреЗ рдкрд╣рд▓реЗ рдЗрд╕ рдзрд╛рдЧреЗ рдореЗрдВ рдпрд╣рд╛рдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рд╣реИ: #7284

@drewcrawford рдЖрдк рд╕рд╣реА рдХрд╣ рд░рд╣реЗ рд╣реИрдВ, рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдкрд╕рдВрджреАрджрд╛ рдпреВрдЬрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, docker build рдХреЛ рдХрдо рд╕реЗ рдХрдо рдЙрддрдирд╛ рд╣реА рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рддрдирд╛ рдХрд┐ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдПред make ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ 2 рддрд░реАрдХреЗ рд╣реИрдВ:

  • 1) рд╣рдо рдореЗрдХ рдХреЗ рд╣рд░ рдмрджрд▓рд╛рд╡ рдХреА рд╣рд░ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рд╕рд╛рде рд╣рд░ рд╡рд┐рдХрд▓реНрдк рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП: рдорд╛рд╡реЗрди, рд╕реНрдХреЛрди, рд░реЗрдХ, рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЕрдЪреНрдЫреА рдкреБрд░рд╛рдиреА рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯред

рдпрд╛

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

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

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдирд┐рд░реНрдорд╛рдг рдЙрдкрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ docker build рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪрддрд╛, рдмрд┐рд▓реНрдХреБрд▓ - рдореЗрдЯрд╛-рдмрд┐рд▓реНрдб рдЯреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдзрд┐рдХ: рдПрдХ рдЬреНрдЮрд╛рдд рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдмрд┐рдВрджреБ рдЬрд┐рд╕рд╕реЗ рдЖрдк рдХрд┐рд╕реА рднреА рдирд┐рд░реНрдорд╛рдг рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЛ рднрд░реЛрд╕реЗрдордВрдж рд░реВрдк рд╕реЗ рдкреБрдирд░реНрдЧрдард┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣реА #7115 рдХреА рдкреНрд░реЗрд░рдгрд╛ рд╣реИред

@shykes рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐

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

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

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

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

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

docker build -t my_project_builder .
# Builds the builder container
docker run my_project_builder my_target | docker build -t my_project/my_target -< Dockerfile_MyTarget
# target is built, tarballed, and sent to stdout, then piped into a new docker build as the context and custom Dockerfile name

@drewcrawford рд╕рд┐рд░реНрдл рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдЧрд░ рдбреЙрдХрд░ рдиреЗ рд▓рдХреНрд╖реНрдп рдмрдирд╛рдиреЗ рдХреЗ рдмрд░рд╛рдмрд░ рдХреБрдЫ рдХреА рдЕрдиреБрдорддрд┐ рджреА рд╣реИ, рддрд╛рдХрд┐ рдЖрдк 1) рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХреЗрдВ рдХрд┐ рдХреМрди рд╕рд╛ рд▓рдХреНрд╖реНрдп рдмрдирд╛рдирд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдПред make clean; make foo , 2) _all_ рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ, рдФрд░ 3) рд▓рдХреНрд╖реНрдпреЛрдВ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИ ... рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рд╕рдВрддреЛрд╖рдЬрдирдХ рд╣реЛрдЧрд╛?

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

рдХреЛрдИ рдмрд╛рдд рдирд╣реАрдВред

@shykes @drewcrawford : +1:

рдЬреЛ рдХреБрдЫ рд╣реЛрдЧрд╛ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдбреЙрдХрд░ рдирдпрд╛ рд╕реАрд╕реА рдмрди рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕реЗ рд▓реЛрдЧ рдореЗрдХ рдХреЗ рд╕рд╛рде рдмреБрд▓рд╛рддреЗ рд╣реИрдВред

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

@ рдбреНрд░реВрдХреНрд░реЙрдлрд░реНрдб : +1: +1,000,000

рдпрд╣рд╛рдБ рд╡рд╣ рд╕реНрдерд┐рддрд┐ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдореИрдВ рднрд╛рдЧрддрд╛ рд░рд╣рддрд╛ рд╣реВрдБ:

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

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

рдореБрдЭреЗ рдпрд╛ рддреЛ рдЪрд╛рд╣рд┐рдП:

  1. рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП -f рдХрдорд╛рдВрдбред
  2. Dockerfile рдХреЗ рдбрд╛рдЙрди-рдкрд╛рде рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред

рдЪреВрдВрдХрд┐ рдпрд╣ рдмрд╛рд░-рдмрд╛рд░ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдирдВрдмрд░ рдПрдХ рдиреЛ-рдЧреЛ рд╣реИ, рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдирдВрдмрд░ рджреЛ рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ рдФрд░ рднреА рдХрдард┐рди рд╣реИ, рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ "рдЙрдЪрд┐рдд" рддрд░реАрдХрд╛ рдХреНрдпрд╛ рд╣реИ?

@ рд╢реЙрдирдорд┐рд▓реЛ

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

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

@ShawnMilo рд╣рд╛рдБ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬреНрдпрд╛рджрд╛рддрд░ рд▓реЛрдЧ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд┐рд▓реНрдб рдЯреВрд▓ (рдореЗрдХ, рд░реЗрдХ, рдЖрджрд┐) рдпрд╛ рд╕рд┐рд░реНрдл рд╕рд╛рджреЗ рдкреБрд░рд╛рдиреЗ рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

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

рдпрд╣рд╛рдБ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХрд╛ рдореЗрд░рд╛ рддрд░реАрдХрд╛ рд╣реИред рдореБрдЭреЗ рдПрдХ рдордВрдЪ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫрд╡рд┐ рдмрдирд╛рдирд╛ рд╣реИ рдорд╛рди рд▓реАрдЬрд┐рдП v2 рдФрд░ v3ред рддреЛ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ Dockerfile.v2 рдФрд░ рдПрдХ Dockerfile.v3 рд╣реИ рдЬрдм рдореИрдВ рдПрдХ рдмрд┐рд▓реНрдб рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рддреЛ рдореИрдВ рдкрд╣рд▓реЗ ln -s ./Dockerfile.v3 ./Dockerfile рдлрд┐рд░ docker build . рдЪрд▓рд╛рддрд╛ рд╣реВрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ рдФрд░ рдореИрдВ рд╕рд┐рд░реНрдл ./build v3 рдЪрд▓рд╛рддрд╛ рд╣реВрдВ рдпрд╛ ./build v2

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

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

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

@duglin рдЖрдкрдХреЛ рдореЗрд░рд╛ рдкреВрд░рд╛ рд╕рдорд░реНрдерди рд╣реИред

рд╣рдо рдЕрдкрдиреЗ рд╡рд░реНрддрдорд╛рди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ -f рд╡рд┐рдХрд▓реНрдк рдХреА рдХрдореА рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣реА рдХрд░ рд░рд╣реЗ рд╣реИрдВред

# build.sh
...
mv specialDockerfile Dockerfile
docker build -t $(PROJECT) .

-f рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ +1 рдорд╛рдиреЗрдВред

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

+1000

рдореИрдВ рдЖрдЬ рдЗрд╕ рдкрд░ рдЖрдпрд╛ рдЬрдм рдбреЙрдХрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЧреЛрд▓рдВрдЧ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, boot2docker рджреЗрдЦреЗрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдбреЙрдХрд░ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдЕрдВрджрд░ рдФрд░ рдмрд╛рд╣рд░ рдПрдХ рд╕рд╛рде рд╕рд┐рд▓рд╛рдИ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП docker cp рдЕрдВрджрд░реВрдиреА рдбреЙрдХрд░ рд╕реЗ рдореЗрд░реА рдмрд┐рд▓реНрдб рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВред

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

рдЗрд╕ рд▓рдВрдмреЗ рдзрд╛рдЧреЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж рдореИрдВрдиреЗ рдмрд┐рд▓реНрдб рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рджреЗрдЦреАред рдЗрд╕реЗ рдХрдо рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдХреЗрд╡рд▓ -f рд╡рд┐рдХрд▓реНрдк рдХреЛ рдмрд┐рд▓реНрдб рд╕рдВрджрд░реНрдн рдореЗрдВ рдпрд╛ рдиреАрдЪреЗ рдХреА рдУрд░ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдЖрдк рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рдХрдИ Dockerfiles рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд░реЗрдкреЛ рд░реВрдЯ рд╕реЗ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдЖрдк рдЗрд╕реЗ рд░реЗрдкреЛ рд╕реАрдорд╛рдУрдВ рдХреЗ рднреАрддрд░ рд╕реАрдорд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП .git/.hg/.foo рдФрд░ рдиреАрдЪреЗ рдХреЗ рд╕рдорд╛рди рд╕реНрддрд░ рдкрд░ рд▓реЗрдХрд┐рди рд░реЗрдкреЛ рдХреЗ рдмрд╛рд╣рд░ рдирд╣реАрдВред

рдпрд╣рд╛рдБ рдореИрдВ рдХреНрдпрд╛ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдБ

FROM scratch
BUILD myname1 path/to/dockerfile/in/context
BUILD myname2 path/to/dockerfile2/in/context
docker build -t myimage .

рдпрд╣ 3 рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░реЗрдЧрд╛:

  1. "myimage" рдирд╛рдордХ рдореБрдЦреНрдп рдЫрд╡рд┐, рдЬрд┐рд╕рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИ
  2. myimage-myname1 . рдирд╛рдордХ рдПрдХ рдЫрд╡рд┐
  3. рдПрдХ рдЫрд╡рд┐ рдЬрд┐рд╕реЗ myimage-myname2 . рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ

BUILD рдХреАрд╡рд░реНрдб рдПрдХ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдФрд░ рдкрде рд▓реЗрдЧрд╛ред рдпрд╣ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдореВрд▓ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрдорд╛рдг рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдкрд╛рд╕ рдореБрдЦреНрдп рдирд┐рд░реНрдорд╛рдг рд╕реЗ рдкреВрд░реНрдг рд╕рдВрджрд░реНрдн рддрдХ рдкрд╣реБрдВрдЪ рд╣реЛрдЧреАред
рд╣рд╛рд▓рд╛рдБрдХрд┐ рдпрд╣ рд╕рдВрджрд░реНрдн рдХреЛ рдЙрд╕ dir-tree рддрдХ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рд░реНрдердХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ Dockerfile рдирд┐рд╣рд┐рдд рд╣реИред

-1

рдЖрдк рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрджрд░реНрдн рдлреАрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ docker build - рдЬреИрд╕реЗ dockerfeed рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

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

рдореИрдВ рдпрд╣рд╛рдБ рдиреБрдХрд╕рд╛рди рдореЗрдВ рд╣реВрдБред рдЗрд╕ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрдИ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рд╣реИрдВ, рд╣реИ рдирд╛? рдФрд░ рдРрд╕рд╛ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд▓рдЧрддрд╛... рдХреЛрдИ рднреА рдЙрд╕ рдирд┐рдпрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ

рдпрд╣ рдбреЙрдХрд░ рдореЗрдВ рдЕрдм рддрдХ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдкрд░реЗрд╢рд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдЕрдВрддрд░ рд╣реИ, рдФрд░ рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдЙрдкрдХрд░рдг рдбреЙрдХрд░ рдХреЛ рдЗрд╕рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рдПрдХ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рд╣рдо рдЬрд▓реНрджреА рд╕реЗ '-f' рдзреНрд╡рдЬ рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорддрд╛ рдХреЛ рдЬреЛрдбрд╝ рджреЗрдВ рддрд╛рдХрд┐ рд╡реЗ рдЙрдкрдХрд░рдг рддреИрдпрд╛рд░ рд╣реЛрдВ рдХрд┐ рдмрд╣реБрдд рдЕрдВрддрд┐рдо рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ... рд╕рдВрдмрдВрдзрд┐рдд: рдПрдХ рдмрд╣реБ-рдЫрд╡рд┐ Dockerfile рд╣реЛрдиреЗ рд╕реЗ рдпрд╣ рдХрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпреЗ рд╕рдВрдмрдВрдзрд┐рдд "рдореЗрдЯрд╛" рдЙрдкрдХрд░рдг рдЕрдХреНрд╕рд░ _one_ рдЫрд╡рд┐ рдкреНрд░рддрд┐ Dockerfile рдорд╛рди рд▓реЗрддреЗ рд╣реИрдВ! рд╕рд╛рде рд╣реА, '-' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдпрд╣ рдЗрди рдЙрдкрдХрд░рдгреЛрдВ рд╕реЗ рдХрдЯрддрд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдЧрдВрднреАрд░ рд░реВрдк рд╕реЗ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рд╕рднреА рдЬрд╛рдирддреЗ рд╣реИрдВред

рдХреНрдпрд╛ рдЕрдзрд┐рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдХреЛрдИ рдпрд╣ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдлрд┐рдХреНрд╕ рдЕрднреА рддрдХ рд╡рд┐рд▓рдп рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ, рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдЗрд╕ рдХрдореА рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдЕрднреА рднреА рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реИ?

рдЯреНрд╡рд╛рдЗрд▓рд╛рдЗрдЯ рдЬрд╝реЛрди рдЬреИрд╕рд╛ рдорд╣рд╕реВрд╕ рд╣реЛрдиреЗ рд▓рдЧрд╛ред

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

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

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

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдбреЙрдХрд░ (рдЬреИрд╕реЗ .deb) рджреЛрдиреЛрдВ рдкрдХреНрд╖реЛрдВ рдХреА рдЬрд░реВрд░рддреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдордЭреМрддрд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

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

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

рдореИрдВрдиреЗ рдереЛрдбрд╝реА рджреЗрд░ рдореЗрдВ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдореВрд▓ рдЕрдиреБрд░реЛрдз рдпрд╣ рд╣реИ: рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди рд╣рдореЗрдВ Dockerfile рдФрд░ context рджреЛрдиреЛрдВ рдХреА рдЖрдкреВрд░реНрддрд┐ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╕реНрдкрд╖реНрдЯ рддрд░реАрдХрд╛ рджреЗрдВред рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдЪреМрдВрдХ рдЧрдпрд╛ рдпрд╣ 8 рдорд╣реАрдиреЗ рдмрд╛рдж рдХреА рддрд░рд╣ рд╣реИ рдФрд░ рдЕрднреА рднреА рдЦреБрд▓рд╛ рд╣реИред

@thedeeno рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдВрднрд╡ рд╣реИ
cat mystuff.tar.gz | docker build -

@ cpuguy83 рд▓реЗрдХрд┐рди рдореИрдВ рдЙрд╕ рдЖрджреЗрд╢ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдкрд╖реНрдЯ Dockerfile рдЖрдкреВрд░реНрддрд┐ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рд╕рд╣реА?

@thedeeno рд╣рд╛рдБ, рдЖрдк рдЬреЛ рднреА рд╕рдВрджрд░реНрдн рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрд╕рдХреЗ рд╕рд╛рде рдЖрдк рдЬреЛ рднреА рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрд╕реЗ рдЯрд╛рд░ рдЕрдк рдХрд░реЗрдВред

@ рдХреЛрдИ @thedeeno cpuguy83, рдХрд┐ рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рддреЛ рдХрд┐рд╕реА рднреА рдлрд╛рдЗрд▓ рдирд╣реАрдВ рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдИ рдирд╣реАрдВ "CWD" рдЧреБрдВрдЬрд╛рдЗрд╢ рдЖрдк рдЖрдорддреМрд░ рдкрд░ рдПрдХ Dockerfile рд╕рд╛рде рдорд┐рд▓ рдореЗрдВ рд╣реИрдВ, рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдпрд╣ рдХрдерди рдЧрд▓рдд рд╣реИ; рдореИрдВрдиреЗ @ cpuguy83 рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдЧрд▓рдд рд╕рдордЭрд╛ред

@ рд╢реЙрдирдорд┐рд▓реЛ рд╣рд╛рдБ рдпрд╣ рд╣реИред рдЯрд╛рд░ рдореЗрдВ рдХреБрдЫ рднреА рд╕рдВрджрд░реНрдн рдХреЗ рднреАрддрд░ рд╣реИред

@ cpuguy83 рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореЗрд░реА рдЧрд▓рддреАред рдореИрдВрдиреЗ рдЬрд▓реНрджрдмрд╛рдЬреА рдореЗрдВ рдЗрд╕реЗ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдореЗрдВ рд╕рд┐рд░реНрдл рдкрд╛рдЗрдкрд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдкрдврд╝рд╛, рди рдХрд┐ рдкреВрд░реА рдЯреИрд░рдмреЙрд▓ред

@cpuguy83 рдЕрдЪреНрдЫрд╛! рдореИрдВ рдХрд░реАрдм рд╕реЗ рд╡реЛрдЯ рдХрд░рддрд╛ рд╣реВрдВ рдЕрдЧрд░ рдпрд╣ рдЖрдкрдХреЗ рд╕реБрдЭрд╛рд╡ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

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

рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддреЗ рд░рд╣реЛ!

рдПрдХ рд╕рдВрдкреВрд░реНрдг рд╕рдВрджрд░реНрдн рдХреЛ рдкрд╛рдЗрдк рдХрд░рдиреЗ рд╕реЗ рд╣рдо рдКрдкрд░ рдЬреЛ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рд╡рд╣ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдХрдо рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

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

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

рдФрд░, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдпрд╣ рдбреЙрдХрд░ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рдХреЗ рд╕рд╛рде рдорджрдж рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

рдХреНрдпрд╛ рдореБрдЭреЗ рдХреБрдЫ рдпрд╛рдж рдЖрдпрд╛?

рдлрд┐рд░ рд╕реЗ, рдПрдХ рд╕рд╛рдзрд╛рд░рдг '-f' рд╡рд┐рдХрд▓реНрдкред рдХреГрдкрдпрд╛ред рдХреГрдкрдпрд╛, рд╕реБрдВрджрд░ рдХреГрдкрдпрд╛ред рдЗрд╕реЗ рд╕рдВрджрд░реНрдн рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдкрде рдХреЗ рд░реВрдк рдореЗрдВ рдмрд╛рдзреНрдп рдХрд░реЗрдВред рдпрд╣ рдареАрдХ рд╣реИред

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

@ cpuguy83 : рд╣рд╛рдБ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдбреЙрдХрд░ рдореЗрд░реЗ рд▓рд┐рдП рдЗрд╕реЗ рд╕рдВрднрд╛рд▓ рд▓реЗ, рд╣рд╛рдВ, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд╕реНрдерд╛рди рд╕реЗ рд╕рдВрджрд░реНрдн рднрд╛рдЧ рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕реНрдерд╛рди рд╕реЗ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдХреЛ рдЪреБрдирдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реЛрдЧрд╛, рдпрд╛ рдПрдХ рдЧреИрд░-рдорд╛рдирдХ рдирд╛рдо рдХреЗ рд╕рд╛рдеред рдпрд╛рдиреА, рдПрдХ рдЕрд▓рдЧ '-f' рдзреНрд╡рдЬ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП :-)

рдиреЗрд╕реНрдЯреЗрдб рдмрд┐рд▓реНрдб рдЙрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рдирдХрд╛ рд╣рдо рд╕рд╛рдордирд╛ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЗрд╕ рдзрд╛рдЧреЗ рдХреЛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдФрд░ рдЗрд╕реЗ рдЬрд╛рд░реА рд░рдЦрд╛ред

рдпрд╛рдиреА, рд╣рдо рдЕрднреА рднреА рдЙрд╕реА рдореВрд▓ рд╕рдВрджрд░реНрдн рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

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

@ cpuguy83 : рдХреНрдпрд╛ рдЖрдк рд╕рдордЭрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ рдиреЗрд╕реНрдЯреЗрдб рдмрд┐рд▓реНрдб рдореЗрд░реА рдорджрдж рдХрд░реЗрдВрдЧреЗ, рдпрд╛ рдпрд╣рд╛рдВ "рд╡реНрд╣рд┐рдирд░реНрд╕" рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА? :-)

@davber
рдЗрд╕ рдкрд░ рдореЗрд░рд╛ рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ:

FROM scratch
BUILD myname1 path/to/dockerfile
BUILD myname2 path/to/another/dockerfile

рдФрд░ рдЗрд╕:

docker build -t myimage .

3 рдЫрд╡рд┐рдпрд╛рдВ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛, "myimage", "myimage-myname1", "myimage-myname2"ред
рдкреНрд░рддреНрдпреЗрдХ рдЖрдВрддрд░рд┐рдХ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдкреВрд░реНрдг рдкрде рдХреЗ рд░реВрдк рдореЗрдВ рдкреВрд░реНрдг рдирд┐рд░реНрдорд╛рдг рд╕рдВрджрд░реНрдн рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧреАред рд╕рд╛рдкреЗрдХреНрд╖ рдкрде рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╣реЛрдВрдЧреЗред
рдФрд░ "myimage" рдХрд╛ рдЕрдкрдирд╛ рд╕рд╛рдорд╛рди рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╕рд╛рде рд╣реА рдХреЗрд╡рд▓ BUILD рдирд┐рд░реНрджреЗрд╢реЛрдВ рд╕реЗ рдкрд░реЗ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

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

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

Each deployment/use of a Docker image is done with an upload of either:

   1. a Dockerfile solely, when no contextual operations are needed
   2. a context tar ball only, containing the context with a top-level Dockerfile
   3. both a context tar ball and a separate Dockerfile

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

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

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

Dockerfiles рдФрд░ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдПрдХ рд╕рдорд░реВрдкрддрд╛

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

@haniken : рджреЛ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ:

  1. рдирд┐рд░реНрдорд╛рдг рд╕реЗ рдкрд╣рд▓реЗ Dockerfiles рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдХрд░ рдЙрд╕ рдзрд╛рд░рдгрд╛ рдХреЛ рдХреНрдпреЛрдВ рддреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ; рдпрд╣ рдЕрднреА рднреА рдПрдХ Dockerfile <-> рдПрдХ рдЫрд╡рд┐ рд╣реЛрдЧреА?
  2. рдореИрдВ рдЬреЛ рддрд░реНрдХ рджреЗ рд░рд╣рд╛ рд╣реВрдВ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕ рдкрд░рд┐рджреГрд╢реНрдп рдореЗрдВ рдмрд╣реБрдд рдмрдбрд╝реЗ рдмрджрд▓рд╛рд╡реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛, рдореМрдЬреВрджрд╛ рдФрд░ рдмрдврд╝рддреЗ рдбреЙрдХрд░ рдкрд░рд┐рджреГрд╢реНрдп рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдо рдпрд╣рд╛рдВ рдЬреЛ рднреА рд╕рдорд╛рдзрд╛рди рд▓реЗрдХрд░ рдЖрдП рд╣реИрдВ, рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ; рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ _рдХреАрдкрд┐рдВрдЧ_ рджреНрд╡рд╛рд░рд╛ рдЙрд╕ рд╕рдорд░реВрдкрддрд╛ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╣рдо рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВред

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

@davber

рдиреЗрд╕реНрдЯреЗрдб рдмрд┐рд▓реНрдб рдЙрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рдирдХрд╛ рд╣рдо рд╕рд╛рдордирд╛ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЗрд╕ рдзрд╛рдЧреЗ рдХреЛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдФрд░ рдЗрд╕реЗ рдЬрд╛рд░реА рд░рдЦрд╛ред

рдореИрдВ рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рддрд╛ рд╣реВрдВ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдмрддрд╛рдпрд╛ рдерд╛:

$ docker-pre-processor [ --options ... ] . | docker build -

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

@itsafire

рдЖрдЬ Dockerfiles рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЯреВрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? Amazon, Google, рдпрд╛ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╡реЗ рдЕрдзрд┐рдХ рдкреНрд░рдЪреБрд░ рдорд╛рддреНрд░рд╛ рдореЗрдВ рд╣реЛрддреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред рдФрд░ рдЕрдВрдЬреАрд░ рдФрд░ рдЗрд╕реА рддрд░рд╣ рдХреЗ рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрд╢рди рдлреНрд░реЗрдорд╡рд░реНрдХред

рдлрд┐рд░ рд╣рдореЗрдВ рдПрдХ рдорд╛рдирдХреАрдХреГрдд 'рдбреЙрдХрд░-рдкреНрд░реА-рдкреНрд░реЛрд╕реЗрд╕рд░' рдЯреВрд▓ рдФрд░ рдРрд╕реЗ рдЯреВрд▓ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдЙрди рдлреНрд░реЗрдорд╡рд░реНрдХ, рдкреНрд░реЛрд╡рд╛рдЗрдбрд░реНрд╕ рдФрд░ рдЯреВрд▓реНрд╕ рддрдХ рдкрд╣реБрдВрдЪрд╛рдирд╛ рд╣реЛрдЧрд╛ред

рдХрдо рд╕реЗ рдХрдо рдЗрд╕ рдзрд╛рдЧреЗ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд▓рд┐рдП 'рдбреЙрдХрд░' рдЙрдЪрд┐рдд рд╕рдорд░реНрдерди рд╣реЛрдирд╛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред

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

рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреЗ рдЖрд╕рдкрд╛рд╕ рд╡рд┐рдЦрдВрдбрди @docker рдЯреАрдо рдХреЗ 'рджреЛрд╣рд░рд╛рд╡' рдХреЗ рдШреЛрд╖рд┐рдд рд▓рдХреНрд╖реНрдп рдХреЗ рд╡рд┐рд░реЛрдз рдореЗрдВ рд╣реИред рдпрд╣ рдЪрд░реНрдЪрд╛ рдФрд░ рдЕрдиреНрдп рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИрдВред

1+ рд╡рд░реНрд╖ рдФрд░ 130+ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рдФрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рдЧрд┐рдирддреА ... рдореИрдВ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реВрдВред рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддреЗ рд░рд╣реЛ, рдбреЙрдХрд░!

+1

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

`-- project
     |-- deploy
     |    |-- .dockerignore
     |    |-- Dockerfile
     |    ...
     `-- src

рдореЗрд░рд╛ рддрд░реАрдХрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд░реВрдЯ рдХреЛ рд╕рд╛рдл рд░рдЦрдирд╛ рд╣реИред рд▓реЗрдХрд┐рди ADD ../src рдФрд░ -f deploy/Dockerfile рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЕрднреА рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рдкрд╛рд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд░реВрдЯ рдореЗрдВ Dockerfile рдФрд░ .dockerignore рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рджрд░реНрдж рд╣реИред

рдореЗрд░реА рддрд░рдл рд╕реЗ рдореИрдВрдиреЗ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдИ рд╣реИ рдЬреЛ рдЖрд╡рд╢реНрдпрдХ рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рддреИрдпрд╛рд░ рдХрд░рддреА рд╣реИ рдФрд░ рдорд╛рдирдХ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди docker build -t my/image . рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рд╣реИ рдХрд┐ .dockerignore рдлрд╝рд╛рдЗрд▓ рдХреЛ ADD рджреНрд╡рд╛рд░рд╛ рдЕрдирджреЗрдЦрд╛ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ

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

рдЗрд╕рдХреЗ рд▓рд┐рдП +1ред рдореБрдЭреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рд░реНрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЫрд╡рд┐рдпреЛрдВ рдореЗрдВ рдлрд╛рдЗрд▓реЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред

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

@jfgreen : рдЬрд╣рд╛рдБ рднреА рдЖрдк рдЪрд╛рд╣реЗрдВ, рдХрдИ Dockerfiles рдбрд╛рд▓реЗрдВ, рдФрд░ рдЬреЛ рдЪрд╛рд╣реЗрдВ рдЙрдиреНрд╣реЗрдВ рдирд╛рдо рджреЗрдВред рдлрд┐рд░ рдПрдХ рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ рдЬреЛ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдмрд╛рд░ рдореЗрдВ рд░реЗрдкреЛ рд░реВрдЯ рдореЗрдВ "./Dockerfile," рдХреЗ рд░реВрдк рдореЗрдВ рдХреЙрдкреА рдХрд░рддреА рд╣реИ, "рдбреЙрдХрд░ рдмрд┐рд▓реНрдб" рдЪрд▓рд╛рддреА рд╣реИ, рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рд╣рдЯрд╛ рджреЗрддреА рд╣реИред рдореИрдВ рдХрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдпрд╣реА рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ "dockerfiles" рдлреЛрд▓реНрдбрд░ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕, рдмреЗрд╕, рдЯреЗрд╕реНрдЯ рдЖрджрд┐ рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдХреЗ рдирд╛рдо рд╡рд╛рд▓реА рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВ, рдЬреЛ рд╕рднреА Dockerfiles рд╣реИрдВред

@ShawnMilo рдзрдиреНрдпрд╡рд╛рдж, рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рдЙрдЪрд┐рдд рдХрд╛рдордХрд╛рдЬ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред

+1

+1

+1 рд╕реЗ -f ред рдПрдХ рд╕рдордЭрджрд╛рд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИ рдЬреЛ рдЕрдЧрд░ рдзреНрд╡рдЬ рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдбреЙрдХрд░ _рд╕рд╣реА рдХрд╛рдо рдХрд░реЗрдЧрд╛ред_ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрд┐ рдХрд┐рд╕реА рднреА рдХрд╛рд░рдг рд╕реЗ _рд╕рд╣реА рдЪреАрдЬрд╝_ рдХрд╛ рдмрд╣реБрдд рд╡рд┐рд╢рд┐рд╖реНрдЯ рджреГрд╢реНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рд╣реИ _рдЧрд▓рдд рдЪреАрдЬрд╝_ -f ред make рдЬреИрд╕реЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдЪрд┐рдд рд╣реИрдВред make рднреА рдореВрд▓ рд░реВрдк рд╕реЗ 1976 рдореЗрдВ рд▓рд┐рдЦреА рдЧрдИ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕реБрд╡рд┐рдЪрд╛рд░рд┐рдд рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рддрд░рд╣ рдПрдХ рдлреАрдЪрд░ рд╕реЗрдЯ рдХреЛ рд╕реНрдерд┐рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреЗ рдкрд╛рд╕ рдЙрдЪрд┐рдд рд╕рдордп рдерд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╢рд┐рдХреНрд╖рд╛рдкреНрд░рдж рд╣реИ рдХрд┐ man make рдореЗрдВ рдПрдХрдорд╛рддреНрд░ рдзреНрд╡рдЬ рдЬрд┐рд╕рдХрд╛ рдмрд╣реБрдд рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╕рд╛рд░рд╛рдВрд╢ рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдорд┐рд▓рддрд╛ рд╣реИ рд╡рд╣ рд╣реИ... -f ред

       make [ -f makefile ] [ options ] ... [ targets ] ...

рд░рд╛рдпрд╢реБрджрд╛, ux рдХреЗрдВрджреНрд░рд┐рдд рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдЪреАрдЬреЗрдВ рдкрд╕рдВрдж рд╣реИрдВ рдЬреИрд╕реЗ -f рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдореЗрдВ рд░рд╣рдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╕рдВрдХреЗрдд рд╣реИрдВред рдПрдХ рдЙрдкрдХрд░рдг рдХреЛ рдЖрдкрдХреЗ рдЬреАрд╡рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рди рдХрд┐ рдХрдард┐рдиред рдореИрдВ рдПрдХ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ, рддреЛ Makefile рдХреЗ рдмрд┐рдирд╛ рдПрдХ рдЙрдкрдХрд░рдг рдХреЗ рдЖрд╕рдкрд╛рд╕ рдпрд╛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЦреЛрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ -f рдЙрдкрдХрд░рдг рдХреА рд╡рд┐рдлрд▓рддрд╛ thatsред рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЙрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ, рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рд▓рд┐рдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рд╡рдЬрди +1 рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╣реЛрдиреЗ рдХреЗ рдПрдХ рд╕рд╛рд▓ рдмрд╛рдж рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╣реИред

+1

+1 (рдпрд╛ рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдПрдХ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ)

+1

+1

@crosbymichael рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ # 9707 рдХреЗ рд╡рд┐рд▓рдп рдХреЗ рдХрд╛рд░рдг рдЗрд╕реЗ рдЕрдм рдмрдВрдж рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

рд╡рд┐рдЬрдпред

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

Master.dockerproject.com

рдзрдиреНрдпрд╡рд╛рдж @ рдбрдЧрд▓рд┐рди !

:рддрд╛рд▓реА:

рдмрд╛рдЗрдирд░реА рдХреЗ рд▓рд┐рдП @crosbymichael рдзрдиреНрдпрд╡рд╛рдж! :+1:

рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд┐рдпрд╛ рджреЛрд╕реНрддреЛрдВ! :рддрд╛рд▓реА:

рддреЛ рдпрд╣ docker build -f Dockerfile.dev . ? рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рд╣рд╛рдБ

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

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

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

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

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

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

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