@mkone112
Начинающий питонист.

Как правильно создать образ с томом принадлежащим пользователю c uid и gid хоста?

Хочу иметь доступ к директории контейнера с хоста.
FROM python:3.10

# получаю uid, gid с хоста
ARG UID
ARG GID

# если --build-arg не указаны - вывожу ошибку
RUN \
    if [ ! "$UID" ]; then\
      ERR="Host user UID must be passed as --build-arg UID=\$(id -u)";\
    fi;\
    if [ ! "$GID" ]; then\
      ERR="${ERR}\nHost user GID must be passed as --build-arg GID=\$(id -g)";\
    fi; \
    RED='\033[0;31m';COLOR_END='\033[0m';\
    if [ "$ERR" ]; then echo "${RED}${ERR}${COLOR_END}" && exit 1; fi;

COPY /app /app
COPY cmd.sh /
WORKDIR /app

# создаю пользователя
RUN groupadd -g $GID uwsgi && useradd -u $UID --create-home -g uwsgi uwsgi
USER uwsgi
...

Запускаю так:
DOCKER_BUILDKIT=1 docker build --progress=plain --build-arg UID=$(id -u) --build-arg GID=$(id -g) -t test .
docker run --mount "type=bind,src=$(pwd)/,dst=/app" test


Вопрос - есть ли способ проще?
  • Вопрос задан
  • 48 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы