ืื ืืชืืืืืื ืืืืื ืืคืขืื ืืืฉืชืืฉ ืืฉืืจืฉ, ืืื ืื ืชืฆืืื ืืืช ืืฆืืจื ืืืืืืช. ืื ื ืจืื ืืืื ื ืื, ืื ืืืฉืชืืฉ ืืื ืืื ืืืืืืช. ืื ืืกืืื ืฉืขืืืื ืืฉืืจืฉ ืืื ืฉืืืื ืื ืงืืืช ืืื ืืืืื. ืื ืืฃ ืืื ืืฉืืื ืื ืขืืื ืขื ืืืืฉื ืืืงืืื ืขื ืืืืืืช ืฉืืจืฉ, ืื ืจืืื ืืจืืฆืื ืชืืืืืื ืชืืช ืฉืืจืฉ ืืงืื ืืืื ืจืื.
ืชืืื ืืฉ ืืืืื ืฉืืืคืฉืจื ืชืืื ืืช ืืืื ืืืช ืืืจืื ืืืืืื ืืืืืืข ืืืืฉื ืืืืจื. ืืื ืื ืืืจืืข ืืื, ืขืืื ื ืืืืืื ืฉืชืืืืืื ืืชืื ืืงืื ืืืื ืจ ืืืคืขืืื ืขื ืืื ืืฉืชืืฉ ืฉืืื ืื ืืืืืืช ืืืฉืื ืืืืฉื ืืืืจื.
ืืฆืืจืช ืืฉืชืืฉ
ืืฆืืจืช ืืฉืชืืฉ ืืงืื ืืืื ืจ ืืื ื ืฉืื ื ืืืฆืืจืชื ืืืคืฆืืช ืืื ืืงืก. ืขื ืืืช, ืืคืงืืืืช ืขืฉืืืืช ืืืฉืชื ืืช ืขืืืจ ืชืืื ืืช ืืกืืก ืฉืื ืืช.
ืขืืืจ ืืคืฆืืช ืืืืกืกืืช ืืืืื, ืขืืื ืืืืกืืฃ ืืช ืืืืจืื ืืืืื ื-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) ืฉื ืืืฉืชืืฉ ืืงืื ืืืื ืจ ืืืืฉืชืืฉ ืืืืฅ ืืงืื ืืืื ืจ ืฉืืฉ ืื ืืจืฉืืืช ืืืฉื ืืชืืืืืช ืืงืืืฅ ืืืืืื ืืืชืืื. ืืืงืจื ืื, ืฉืืืช ืืืฉืชืืฉ ืืื ื ืืฉืืืื.
ืืขืชืื ืงืจืืืืช ืืืืฉื Linux, UID ื-GID ืฉื ืืฉืชืืฉ ืฉืืืื ื-1000. ืืืืื ืืื ืืืงืฆืื ืืืฉืชืืฉ ืืจืืฉืื ืฉื ืืืืฉื.
ืงื ืืืฆืื ืืช ืืืืืื ืฉืื:
id
ืชืงืื ืืืืข ืืงืืฃ ืขื ืืืฉืชืืฉ ืฉืื.
ืืืืฃ 2000 ืืืืืืืืืช ืืืืื ืฉืื ืืืื ืืืื ืืกืืจ.
ืืงืฆืืช UID ื-GID ืืืฉืชืืฉ
ืื ืืืฉืชืืฉ ื ืืฆืจ ืืขืืจ, ืืื ืืชื ืฆืจืื ืืฉื ืืช ืืช ืืืืืื, ืืชื ืืืื ืืขืฉืืช ืืืช ืื:
RUN usermod -u 1000 node
&& groupmod -g 1000 node
ืื ืืชื ืืฉืชืืฉ ืืชืืื ืช ืืืกืืก ืืืืคืื ื, ืขืืื ืืืชืงืื ืืช ืืืืืช ืืฆืืืื:
RUN apk add โno-cache shadow
ืืขืืจืช ืืืื ืืืฉืชืืฉ ืืชืื ืืงืื ืืืื ืจ ืืขืช ืื ืืืช ืืชืืื ื
ืื ืืืืื ืฉืื ืืืืืืื ืฉื ืื ืืื ืฉืื ืฉืขืืืืื ืขื ืืคืจืืืงื ืชืืืืื, ืื ืืกืคืืง ืืฆืืื ืืช ืืืืื ืืื ื- Dockerfile. ืขื ืืืช, ืืขืชืื ืงืจืืืืช ืืืื ืืืฉืชืืฉ ืืื ื ืชืืืืื.
ืืื ืืืฉืื ืืช ืื ืฉืืชื ืจืืฆื ืื ืืจืืจ ืืื. ืขืืืจื, ืื ืืื ืืืืจ ืืงืฉื ืืืืชืจ ืืชืืืื ืืฉืืืื ื-Docker. ืืฉืชืืฉื Docker ืจืืื ืืื ื ืืืื ืื ืฉืืฉื ื ืฉืืืื ืฉืื ืื ืืืืื ืฉื ืชืืื ื. ืจืืฉืืช, ืืชืืื ื ืืืจืืืช ืืืืฆืขืืช Dockerfile. ืืขืช ืืคืขืืช ืงืื ืืืื ืจ ืืชืืื ื, ื- Dockerfile ืืื ื ืืฉืืืืฉ ืขืื.
ืืฆืืจืช ืืฉืชืืฉ ืืืืืช ืืืชืจืืฉ ืืืฉืจ ืืชืืื ื ื ืื ืืช. ืื "ื ืืืื ืงืืืขืช ืืืฉืชืืฉ ืฉืชืืชืื ืืืคืขืืื ืชืืืืืื. ืื ืืืืจ ืฉืื ืื ื ืืืืืื ืืืืฉืื ืืืขืืืจ ืืช ื-UID (GID) ืืชืื ืืงืื ืืืื ืจ.
ืื ืืืืช ืืฉืืฉืืช ืืฉืืืืฉ ืืืฉืชื ืื ืืืฆืื ืืื ื- Dockerfile
ืืืงืจืคืื
ARG UID=1000
ARG GID=1000
ENV UID=${UID}
ENV GID=${GID}
RUN usermod -u $UID node
&& groupmod -g $GID node
ืืชื ืืืื ืืืขืืืจ ืืจืืืื ืืื ืืจื docker-compose ืื:
ืืืืงืจ-ืืืื ื
build:
context: ./src/backend
args:
UID: 1000
GID: 1000
ื .ื ืืื ืืฉืืื ืืื ืืืืจืืืืช ืฉื Docker, ืื ืื ืืกืคืืง ืืงืจืื ืืช ืืชืืขืื ืื ืืืืืจืื. ืืชื ืฆืจืื ืืืชืืื ืืจืื, ืืชื ืฆืจืื ืืืจืืืฉ ืืช Docker.
ืืงืืจ: www.habr.com