рдбреЙрдХрд░ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛

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


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


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


рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд┐рд░реНрдорд╛рдг


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


Dockerfile рдореЗрдВ рдбреЗрдмрд┐рдпрди-рдЖрдзрд╛рд░рд┐рдд рд╡рд┐рддрд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛:



RUN groupadd --gid 2000 node \ && useradd --uid 2000 --gid node --shell /bin/bash --create-home node 

рдЕрд▓реНрдкрд╛рдЗрди рдХреЗ рд▓рд┐рдП:


 RUN addgroup -g 2000 node \ && adduser -u 2000 -G node -s /bin/sh -D node 

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░рдирд╛


UID 2000 рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗ рд╕рднреА рдмрд╛рдж рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд░рди рдХрд░реЗрдВ:


 USER 2000 

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЛрдб рд╕реЗ рд╕рднреА рдмрд╛рдж рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЪрд▓рд╛рдПрдВ:


 USER node 

рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реАред


рдорд╛рдЙрдВрдЯ рдХреА рдорд╛рддреНрд░рд╛


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


рдЕрдХреНрд╕рд░ рд▓рд┐рдирдХреНрд╕ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ UID рдФрд░ GID 1000 рд╣реЛрддреЗ рд╣реИрдВред рдпреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдкрд╣рд▓реЗ рдХрдВрдкреНрдпреВрдЯрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╕реМрдВрдкреЗ рдЬрд╛рддреЗ рд╣реИрдВред


рдЕрдкрдиреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ:


 id 

рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡реНрдпрд╛рдкрдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧреАред
рдЕрдкрдиреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде 2000 рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдмрджрд▓реЗрдВ рдФрд░ рд╕рдмрдХреБрдЫ рдареАрдХ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред


рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ UID рдФрд░ GID рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВ


рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд╣рд▓реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЛ рдмрджрд▓рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:


 RUN usermod -u 1000 node \ && groupmod -g 1000 node 

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


 RUN apk add тАФno-cache shadow 

рдЫрд╡рд┐ рдмрдирд╛рддреЗ рд╕рдордп рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЖрдИрдбреА рдкрд╛рд╕ рдХрд░рдирд╛


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


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


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


ENV рдФрд░ ARG рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдбреЙрдХрд░реАрдлрд╛рдЗрд▓ рдореЗрдВ рдмрд╛рд╣рд░реА рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреА рдПрдХ рд╡рд┐рд╕реНрддреГрдд рддреБрд▓рдирд╛ рдпрд╣рд╛рдБ рд╣реИ ред


Dockerfile


 ARG UID=1000 ARG GID=1000 ENV UID=${UID} ENV GID=${GID} RUN usermod -u $UID node \ && groupmod -g $GID node 

рдЖрдк рдЗрд╕ рддрд░рд╣ docker- рд░рдЪрдирд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рддрд░реНрдХ рдкрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:


рдбреЛрдХрд░-рд▓рд┐рдЦреЗрдВ


 build: context: ./src/backend args: UID: 1000 GID: 1000 

PS рдбреЙрдХ рдХреЗ рд╕рднреА рдЯреНрд░рд┐рдХреНрд╕ рдореЗрдВ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рд▓реЗрдЦрди рдпрд╛ рд▓реЗрдЦ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИред рдЖрдкрдХреЛ рдмрд╣реБрдд рдЕрднреНрдпрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЖрдкрдХреЛ рдХрд░реНрддрд╛ рдХреЛ рдорд╣рд╕реВрд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

Source: https://habr.com/ru/post/hi448480/


All Articles