рдХрдиреНрдЯреЗрдирд░рдорд╛ рд╕рдмреИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рд░реВрдЯ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рдХреЛ рд░реВрдкрдорд╛ рдЪрд▓реНрдиреЗрдЫ, рдЬрдмрд╕рдореНрдо рддрдкрд╛рдЗрдБ рдпрд╕рд▓рд╛рдИ рд╡рд┐рд╢реЗрд╖ рддрд░рд┐рдХрд╛рдорд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрдиреБрд╣реБрдиреНрдиред рдпреЛ рдзреЗрд░реИ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рджреЗрдЦрд┐рдиреНрдЫ, рдХрд┐рдирднрдиреЗ рдпреЛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдХреБрдиреИ рдкреНрд░рддрд┐рдмрдиреНрдз рдЫреИрдиред рдпрд╕реИрд▓реЗ рд░реВрдЯрдХреЛ рд░реВрдкрдорд╛ рдХрд╛рдо рдЧрд░реНрдиреЗ рд╕реБрд░рдХреНрд╖рд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдгрдмрд╛рдЯ рдЧрд▓рдд рдЫред рдпрджрд┐ рддрд┐рдиреАрд╣рд░реВрдХреЛ рд╕рд╣реА рджрд┐рдорд╛рдЧрдорд╛ рдХреЛрд╣реА рдкрдирд┐ рд╕реНрдерд╛рдиреАрдп рдХрдореНрдкреНрдпреБрдЯрд░рдорд╛ рд░реВрдЯ рдЕрдзрд┐рдХрд╛рд░рдХреЛ рд╕рд╛рде рдХрд╛рдо рдЧрд░реНрджреИрди, рддреНрдпрд╕рдкрдЫрд┐ рдзреЗрд░реИ рдХрдиреНрдЯреЗрдирд░рд╣рд░реВрдорд╛ рд░реВрдЯ рдЕрдиреНрддрд░реНрдЧрдд рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рдЪрд▓рд╛рдЙрдБрдЫрдиреНред
рддреНрдпрд╣рд╛рдБ рд╕рдзреИрдВ рдмрдЧрд╣рд░реВ рдЫрдиреН рдЬрд╕рд▓реЗ рдорд╛рд▓рд╡реЗрдпрд░рд▓рд╛рдИ рдХрдиреНрдЯреЗрдирд░рдмрд╛рдЯ рдЙрдореНрдХрди рд░ рд╣реЛрд╕реНрдЯ рдХрдореНрдкреНрдпреБрдЯрд░рдорд╛ рдкреБрдЧреНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреЗрдЫред рд╕рдмреИрднрдиреНрджрд╛ рдирд░рд╛рдореНрд░реЛ рдорд╛рдиреНрджреИ, рд╣рд╛рдореАрд▓реЗ рдХрдиреНрдЯреЗрдирд░ рднрд┐рддреНрд░рдХрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рд╣реЛрд╕реНрдЯ рдореЗрд╕рд┐рдирдорд╛ рдХреБрдиреИ рдЕрдзрд┐рдХрд╛рд░ рдирднрдПрдХреЛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рджреНрд╡рд╛рд░рд╛ рд╕рдЮреНрдЪрд╛рд▓рд┐рдд рдЫрдиреН рднрдиреА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрдиреБрдкрд░реНрдЫред
рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджреИ
рдХрдиреНрдЯреЗрдирд░рдорд╛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБ рд▓рд┐рдирдХреНрд╕ рд╡рд┐рддрд░рдгрдорд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБ рднрдиреНрджрд╛ рдлрд░рдХ рдЫреИрдиред рдпрджреНрдпрдкрд┐, рдЖрджреЗрд╢рд╣рд░реВ рдлрд░рдХ рдЖрдзрд╛рд░ рдЫрд╡рд┐рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рднрд┐рдиреНрди рд╣реБрди рд╕рдХреНрдЫрдиреНред
рдбреЗрдмрд┐рдпрди-рдЖрдзрд╛рд░рд┐рдд рд╡рд┐рддрд░рдгрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐, рддрдкрд╛рдИрдВрд▓реЗ рдбрдХрд░рдлрд╛рдЗрд▓рдорд╛ рдирд┐рдореНрди рдердкреНрди рдЖрд╡рд╢реНрдпрдХ рдЫ:
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) рд░ рдХрдиреНрдЯреЗрдирд░ рдмрд╛рд╣рд┐рд░рдХрд╛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдЬреЛрд╕рдБрдЧ рдлрд╛рдЗрд▓ рдкрд╣реБрдБрдЪ рдЧрд░реНрди рдЙрдкрдпреБрдХреНрдд рдЕрдиреБрдорддрд┐рд╣рд░реВ рдЫрдиреН рдорд┐рд▓реНрдиреБрдкрд░реНрдЫред рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛, рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдорд╣рд░реВ рдлрд░рдХ рдкрд░реНрджреИрдиред
рдкреНрд░рд╛рдп: рд▓рд┐рдирдХреНрд╕ рдХрдореНрдкреНрдпреБрдЯрд░рдорд╛, рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рдХреЛ UID рд░ GID 1000 рдмрд░рд╛рдмрд░ рд╣реБрдиреНрдЫред рдпреА рдкрд╣рд┐рдЪрд╛рдирдХрд░реНрддрд╛рд╣рд░реВ рдХрдореНрдкреНрдпреБрдЯрд░рдХреЛ рдкрд╣рд┐рд▓реЛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд▓рд╛рдИ рддреЛрдХрд┐рдПрдХрд╛ рд╣реБрдиреНрдЫрдиреНред
рдЖрдлреНрдиреЛ рдкрд╣рд┐рдЪрд╛рдирдХрд░реНрддрд╛ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрди рд╕рдЬрд┐рд▓реЛ рдЫ:
id
рддрдкрд╛рдИрдВрд▓реЗ рдЖрдлреНрдиреЛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рдХреЛ рдмрд╛рд░реЗрдорд╛ рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреБрд╣реБрдиреЗрдЫред
рддрдкрд╛рдИрдВрдХреЛ рдкрд╣рд┐рдЪрд╛рдирдХрд░реНрддрд╛рдХреЛ рд╕рд╛рде рдЙрджрд╛рд╣рд░рдгрд╣рд░реВрдмрд╛рдЯ 2000 рд▓рд╛рдИ рдмрджрд▓реНрдиреБрд╣реЛрд╕реН рд░ рд╕рдмреИ рдХреБрд░рд╛ рдареАрдХ рд╣реБрдиреЗрдЫред
рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд▓рд╛рдИ UID рд░ GID рдЕрд╕рд╛рдЗрди рдЧрд░реНрджреИ
рдпрджрд┐ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдкрд╣рд┐рд▓реЗ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ, рддрд░ рддрдкрд╛рдИрдВрд▓реЗ рдкрд╣рд┐рдЪрд╛рдирдХрд░реНрддрд╛рд╣рд░реВ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ, рддрдкрд╛рдИрдВ рдпрд╕рд▓рд╛рдИ рдпрд╕рд░реА рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ:
RUN usermod -u 1000 node
&& groupmod -g 1000 node
рдпрджрд┐ рддрдкрд╛рдЗрдБ рдЕрд▓реНрдкрд╛рдЗрди рдЖрдзрд╛рд░ рдЫрд╡рд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ рд╣реБрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рддрдкрд╛рдЗрдБ рдЫрд╛рдпрд╛ рдкреНрдпрд╛рдХреЗрдЬ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ:
RUN apk add тАФno-cache shadow
рдЫрд╡рд┐ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрджрд╛ рдХрдиреНрдЯреЗрдирд░ рднрд┐рддреНрд░ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдЖрдИрдбреА рдкрд╛рд╕ рдЧрд░реНрджреИ
рдпрджрд┐ рддрдкрд╛рдИрдВрдХреЛ рдЖрдИрдбреА рд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдорд╛ тАЛтАЛтАЛтАЛрдХрд╛рдо рдЧрд░реНрдиреЗ рд╕рдмреИ рд╡реНрдпрдХреНрддрд┐рд╣рд░реВрдХреЛ рдЖрдИрдбреА рдореЗрд▓ рдЦрд╛рдиреНрдЫ рднрдиреЗ, рддреНрдпрд╕рдкрдЫрд┐ рдпреЛ рдЖрдИрдбреА рдбрдХрд░рдлрд╛рдЗрд▓рдорд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдпрджреНрдпрдкрд┐, рдкреНрд░рд╛рдпрдГ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдЖрдИрдбреАрд╣рд░реВ рдореЗрд▓ рдЦрд╛рдБрджреИрдирдиреНред
рддрдкрд╛рдИрд▓реЗ рдЪрд╛рд╣рд╛рдиреБ рднрдПрдХреЛ рдХреБрд░рд╛ рдХрд╕рд░реА рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреЗ рддреБрд░реБрдиреНрддреИ рд╕реНрдкрд╖реНрдЯ рдЫреИрдиред рдореЗрд░реЛ рд▓рд╛рдЧрд┐, рдпреЛ рдбрдХрд░ рдорд╛рд╕реНрдЯрд░ рдЧрд░реНрдиреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдорд╛ рд╕рдмреИрднрдиреНрджрд╛ рдЧрд╛рд╣реНрд░реЛ рдХреБрд░рд╛ рдерд┐рдпреЛред рдзреЗрд░реИ рдбрдХрд░ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдорд╣рд╕реБрд╕ рдЧрд░реНрджреИрдирдиреН рдХрд┐ рдЫрд╡рд┐рдХреЛ рдЬреАрд╡рдирдорд╛ рд╡рд┐рднрд┐рдиреНрди рдЪрд░рдгрд╣рд░реВ рдЫрдиреНред рдкрд╣рд┐рд▓реЛ, рдЫрд╡рд┐ рдбрдХрд░рдлрд╛рдЗрд▓ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рднреЗрд▓рд╛ рдЧрд░рд┐рдПрдХреЛ рдЫред рдЫрд╡рд┐рдмрд╛рдЯ рдХрдиреНрдЯреЗрдирд░ рдЪрд▓рд╛рдЙрдБрджрд╛, рдбрдХрд░рдлрд╛рдЗрд▓ рдЕрдм рдкреНрд░рдпреЛрдЧ рд╣реБрдБрджреИрдиред
рдЫрд╡рд┐ рдирд┐рд░реНрдорд╛рдг рд╣реБрдБрджрд╛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рд╕рд┐рд░реНрдЬрдирд╛ рд╣реБрдиреБрдкрд░реНрджрдЫред рддреНрдпрд╣рд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рд╕реБрд░реВ рдЧрд░рд┐рдПрдХрд╛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░реНрдирдорд╛ рд▓рд╛рдЧреВ рд╣реБрдиреНрдЫред рдпрд╕рдХреЛ рдорддрд▓рдм рд╣рд╛рдореАрд▓реЗ рдХрдиреНрдЯреЗрдирд░ рднрд┐рддреНрд░ UID (GID) рдкрд╛рд╕ рдЧрд░реНрдиреБрдкрд░реНрдЫред
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