Moby: рдмрд┐рд▓реНрдбрд░ RUN рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ / рдмрд┐рди / рдмрд╛рд╢ рдХреЗ рдмрдЬрд╛рдп / рдмрд┐рди / рд╢

рдХреЛ рдирд┐рд░реНрдорд┐рдд 28 рдЬреБрд▓ре░ 2014  ┬╖  11рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: moby/moby

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

arebuilder kinquestion

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

@ORESoftware рдКрдкрд░ рдХреА рдЪрд░реНрдЪрд╛ рджреЗрдЦреЗрдВ, рдФрд░ https://github.com/moby/moby/pull/22489 , рдЬрд┐рд╕рдиреЗ SHELL Dockerfile рдирд┐рд░реНрджреЗрд╢ (Docker 1.12 рдФрд░ up) рдЬреЛрдбрд╝реЗред

  • рдпрджрд┐ рдЖрдк рдПрдХ рдПрдХрд▓ RUN рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рд╢реЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ Exec рдлреЙрд░реНрдо (JSON) рдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ - рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИ:

    RUN ["/bin/bash", "-c", "echo I am now using bash!"]
    
  • рдпрджрд┐ рдЖрдк рдЕрдкрдиреА рдЫрд╡рд┐ рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╢реЗрд▓ рдХреЛ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдФрд░ рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди), SHELL рдбреЙрдХрд░реАрдлрд╛рдЗрд▓ рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЬреЛ https://github.com/moby/moby/pull/22489 рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:

    SHELL ["/bin/bash", "-c"]
    RUN echo I am now using bash!
    
  • рдпрд╛, рдЙрдкрд░реЛрдХреНрдд рдХрд╛ рдПрдХ рд╕рдВрдпреЛрдЬрди

    FROM ubuntu
    RUN echo I am using the default (/bin/sh)
    RUN ["/bin/bash", "-c", "echo I am using bash"]
    SHELL ["/bin/bash", "-c"]
    RUN echo I am using bash, which is now the default
    RUN ["/bin/sh", "-c", "echo I am using /bin/sh"]
    RUN ["echo", "I don't use a shell at all"]
    

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

рдирд╣реАрдВ, рдпрд╣ рд╣рд╛рд░реНрдбрдХреЛрдб "/ рдмрд┐рди / рд╢-рд╕реА"
рдкрд┐рдЫрд▓реЗ рдмрд┐рд▓реНрдб рд╕реНрдЯреЗрдк рдореЗрдВ рдХреЛрдИ рднреА рд▓рд┐рдВрдХ / рдмрд┐рди / рдмреИрд╢ рдЯреВ / рдмрд┐рди / рд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

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

@dwatrous рдиреЗ рдЖрдкрдиреЗ RUN ["echo", "hello"] рдХреЛрд╢рд┐рд╢ рдХреА /bin/sh IIRC рджреНрд╡рд╛рд░рд╛ рд▓рдкреЗрдЯрд╛ рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛ред рддреЛ рдЕрдЧрд░ рдЖрдк рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмреИрд╢ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: RUN ["/bin/bash", "-c", "echo hello all in one string"] ред
рдЖрдкрдХреЛ рдмрддрд╛ рджреЗрдВ рдХрд┐ рдпрд╣ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред

рдмрд╛рд╢ RUN рдирд┐рд░реНрджреЗрд╢реЛрдВ рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕рдХрд╛ рдХреЛрдИ рдЗрд░рд╛рджрд╛ рдпрд╛ рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕рд╕реЗ рдЗрд╕реЗ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╡ рд╣реЛ рд╕рдХреЗред

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

рдЗрд╕реЗ рдЕрдм рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ рдмрдВрдж рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: https://github.com/docker/docker/pull/7489

рддреЛ рдЗрд╕ рдПрдХ рдкрд░ рдХрд╣рд╛рдиреА рдХреНрдпрд╛ рд╣реИ?

@ORESoftware рдКрдкрд░ рдХреА рдЪрд░реНрдЪрд╛ рджреЗрдЦреЗрдВ, рдФрд░ https://github.com/moby/moby/pull/22489 , рдЬрд┐рд╕рдиреЗ SHELL Dockerfile рдирд┐рд░реНрджреЗрд╢ (Docker 1.12 рдФрд░ up) рдЬреЛрдбрд╝реЗред

  • рдпрджрд┐ рдЖрдк рдПрдХ рдПрдХрд▓ RUN рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рд╢реЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ Exec рдлреЙрд░реНрдо (JSON) рдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ - рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИ:

    RUN ["/bin/bash", "-c", "echo I am now using bash!"]
    
  • рдпрджрд┐ рдЖрдк рдЕрдкрдиреА рдЫрд╡рд┐ рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╢реЗрд▓ рдХреЛ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдФрд░ рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди), SHELL рдбреЙрдХрд░реАрдлрд╛рдЗрд▓ рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЬреЛ https://github.com/moby/moby/pull/22489 рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:

    SHELL ["/bin/bash", "-c"]
    RUN echo I am now using bash!
    
  • рдпрд╛, рдЙрдкрд░реЛрдХреНрдд рдХрд╛ рдПрдХ рд╕рдВрдпреЛрдЬрди

    FROM ubuntu
    RUN echo I am using the default (/bin/sh)
    RUN ["/bin/bash", "-c", "echo I am using bash"]
    SHELL ["/bin/bash", "-c"]
    RUN echo I am using bash, which is now the default
    RUN ["/bin/sh", "-c", "echo I am using /bin/sh"]
    RUN ["echo", "I don't use a shell at all"]
    

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

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

рдЖрд░рдпреВрдПрди рд╕реАрдкреА / рдмрд┐рди / рдмреИрд╢ / рдмрд┐рди / рд╢
RUN рдЧреВрдВрдЬ "рд╕реНрд░реЛрдд ~ / google-cloud-sdk / path.bash.inc" >> ~ / .bash
RUN рд╕реНрд░реЛрдд ~ / .bashrc

рдЙрд╕рдХреЗ рдмрд╛рдж рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди рдФрд░ рд░рди рдЯрд╛рдЗрдо рдХреЗ рджреМрд░рд╛рди gcloud рдХрдорд╛рдВрдб рдЙрдкрд▓рдмреНрдз рд╣реИ

рд╕рдЦреНрдд рдУрд╕реАрдЖрдИ рдкреНрд░рдЬрдирди рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рдбреЙрдХрд░реАрдлрд╛рдЗрд▓ рдХреЙрд▓ SHELL OCIv1 рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдореЗрдВ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ, рдкреНрд░рддрд┐ рдкреЙрдбрдореИрди 1.4:

рдЪрд░рдг 2: рд╢реЗрд▓ ["/ рдмрд┐рди / рдмреИрд╢", "-рд╕реА"]
ERRO [0000] OCI рдЫрд╡рд┐ рдкреНрд░рд╛рд░реВрдк рдХреЗ рд▓рд┐рдП SHELL рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ, [/ bin / bash -c] рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред docker рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП

рдЕрдкрдбреЗрдЯ: рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ thaJeztah рд╕рд╣реА рд╣реИ, рдмрд┐рд▓реНрдбрд╣рд╛ рдкрд░ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдЪрд░реНрдЪрд╛: https://github.com/containers/buildah/issues/507

Update2: BUILDAH_FORMAT=docker рдмрдЪрд╛рд╡ рдХреЗ рд▓рд┐рдП

@ рдЕрдЦрд╛рдбрд╝рд╛ рдХреЛ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдУрд╕реАрдЖрдИ рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд╕рд╛рде рдХрд░рдирд╛ рд╣реИ, рд╕рд┐рд░реНрдл рдмрд┐рд▓реНрдбрд╣ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди

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

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

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

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

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

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

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