рдХрдВрдЯреЗрдирд░ рдореЗрдВ рд╕рднреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рд░реВрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд▓реЗрдВрдЧреА, рдЬрдм рддрдХ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдПрдХ рд╡рд┐рд╢реЗрд╖ рддрд░реАрдХреЗ рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддреЗред рдпрд╣ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд▓рдЧрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд░ рдХреЛрдИ рдкреНрд░рддрд┐рдмрдВрдз рдирд╣реАрдВ рд╣реИред рдЗрд╕ рдХрд╛рд░рдг рд░реВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рдирд╛ рд╕реБрд░рдХреНрд╖рд╛ рдХреА рджреГрд╖реНрдЯрд┐ рд╕реЗ рдЧрд▓рдд рд╣реИред рдпрджрд┐ рдХреЛрдИ рднреА рд╕рд╣реА рджрд┐рдорд╛рдЧ рд╕реЗ рд░реВрдЯ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдиреАрдп рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдХрдИ рдХрдВрдЯреЗрдирд░реЛрдВ рдореЗрдВ рд░реВрдЯ рдХреЗ рддрд╣рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдЪрд▓рд╛рддреЗ рд╣реИрдВред
рд╣рдореЗрд╢рд╛ рдРрд╕реЗ рдмрдЧ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдореИрд▓рд╡реЗрдпрд░ рдХреЛ рдХрдВрдЯреЗрдирд░ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдФрд░ рд╣реЛрд╕реНрдЯ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдЖрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐ рдХреЛ рдорд╛рдирддреЗ рд╣реБрдП, рд╣рдореЗрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдРрд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдЪрд▓рд╛рдИ рдЬрд╛рдПрдВ рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рд╣реЛрд╕реНрдЯ рдорд╢реАрди рдкрд░ рдХреЛрдИ рдЕрдзрд┐рдХрд╛рд░ рдирд╣реАрдВ рд╣реИред
рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рдирд╛
рдПрдХ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рдирд╛ рд▓рд┐рдирдХреНрд╕ рд╡рд┐рддрд░рдг рдореЗрдВ рдЗрд╕реЗ рдмрдирд╛рдиреЗ рд╕реЗ рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЖрдзрд╛рд░ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрджреЗрд╢ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдбреЗрдмрд┐рдпрди-рдЖрдзрд╛рд░рд┐рдд рд╡рд┐рддрд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдбреЙрдХрд░рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
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
рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ
рдмрдврд╝рддреЗ рд╡реЙрд▓реНрдпреВрдо
рдХрд┐рд╕реА рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ рд╡реЙрд▓реНрдпреВрдо рдмрдврд╝рд╛рддреЗ рд╕рдордп, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рдФрд░/рдпрд╛ рд▓рд┐рдЦрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░реЗрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдФрд░ рдХрдВрдЯреЗрдирд░ рдХреЗ рдмрд╛рд╣рд░ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдпреВрдЖрдИрдбреА (рдЬреАрдЖрдИрдбреА) рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдлрд╝рд╛рдЗрд▓ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЙрдЪрд┐рдд рдЕрдиреБрдорддрд┐ рд╣реИ, рдХрд╛ рдорд┐рд▓рд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдХреЛрдИ рдорд╛рдпрдиреЗ рдирд╣реАрдВ рд░рдЦрддреЗ.
рдЕрдХреНрд╕рд░ рд▓рд┐рдирдХреНрд╕ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдпреВрдЖрдИрдбреА рдФрд░ рдЬреАрдЖрдИрдбреА тАЛтАЛ1000 рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрддреА рд╣реИред рдпреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЗ рдкрд╣рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╕реМрдВрдкреЗ рдЬрд╛рддреЗ рд╣реИрдВред
рдЕрдкрдиреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЖрд╕рд╛рди рд╣реИ:
id
рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡реНрдпрд╛рдкрдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧреАред
рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рд╕реЗ 2000 рдХреЛ рдЕрдкрдиреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╕реЗ рдмрджрд▓реЗрдВ рдФрд░ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рдХрд┐рд╕реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ UID рдФрд░ GID рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛
рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд╣рд▓реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
RUN usermod -u 1000 node
&& groupmod -g 1000 node
рдпрджрд┐ рдЖрдк рдЕрд▓реНрдкрд╛рдЗрди рдмреЗрд╕ рдЫрд╡рд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЫрд╛рдпрд╛ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
RUN apk add тАФno-cache shadow
рдЫрд╡рд┐ рдмрдирд╛рддреЗ рд╕рдордп рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЖрдИрдбреА рдкрд╛рд╕ рдХрд░рдирд╛
рдпрджрд┐ рдЖрдкрдХреА рдЖрдИрдбреА рдФрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рд▓реЛрдЧреЛрдВ рдХреА рдЖрдИрдбреА рдореЗрд▓ рдЦрд╛рддреА рд╣реИ, рддреЛ рдмрд╕ рдЗрд╕ рдЖрдИрдбреА рдХреЛ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЕрдХреНрд╕рд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЖрдИрдбреА рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддреЗред
рдЖрдк рдЬреЛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЙрд╕реЗ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдпрд╣ рддреБрд░рдВрдд рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИред рдореЗрд░реЗ рд▓рд┐рдП, рдбреЙрдХрд░ рдореЗрдВ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдпрд╣ рд╕рдмрд╕реЗ рдХрдард┐рди рдХрд╛рдо рдерд╛ред рдХрдИ рдбреЙрдХрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдпрд╣ рдПрд╣рд╕рд╛рд╕ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдПрдХ рдЫрд╡рд┐ рдХреЗ рдЬреАрд╡рди рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдЪрд░рдг рд╣реЛрддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЫрд╡рд┐ рдХреЛ Dockerfile рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрд┐рд╕реА рдЫрд╡рд┐ рд╕реЗ рдХрдВрдЯреЗрдирд░ рдЪрд▓рд╛рддреЗ рд╕рдордп, Dockerfile рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЫрд╡рд┐ рдирд┐рд░реНрдорд┐рдд рд╣реЛрдиреЗ рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд┐рд░реНрдорд╛рдг рдЕрд╡рд╢реНрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣реА рдмрд╛рдд рдЙрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдкрд░ рднреА рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рд▓реЙрдиреНрдЪ рдХреА рдЬрд╛рддреА рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдХрд┐рд╕реА рддрд░рд╣ рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ рдпреВрдЖрдИрдбреА (рдЬреАрдЖрдИрдбреА) рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдбреЙрдХрд░рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдмрд╛рд╣рд░реА рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
Dockerfile
ARG UID=1000
ARG GID=1000
ENV UID=${UID}
ENV GID=${GID}
RUN usermod -u $UID node
&& groupmod -g $GID node
рдЖрдк рдЗрд╕ рддрд░рд╣ рдбреЙрдХрд░-рдХрдВрдкреЛрдЬрд╝ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рддрд░реНрдХ рдкрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рдбреЛрдХрд░-рд▓рд┐рдЦреЗрдВ
build:
context: ./src/backend
args:
UID: 1000
GID: 1000
PS рдбреЙрдХрд░ рдХреА рд╕рднреА рдкреЗрдЪреАрджрдЧрд┐рдпреЛрдВ рдореЗрдВ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдпрд╛ рд▓реЗрдЦ рдкрдврд╝рдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИред рдЖрдкрдХреЛ рдмрд╣реБрдд рдЕрднреНрдпрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ, рдЖрдкрдХреЛ рдбреЙрдХрд░ рдХреЛ рд╕рдордЭрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИред
рд╕реНрд░реЛрдд: www.habr.com