Как вы можете запустить GIT контейнер как текущий пользователь? - PullRequest
0 голосов
/ 02 января 2019

Я хочу использовать GIT из контейнера Docker. Использование, как описано на https://hub.docker.com/r/alpine/git/, довольно просто:

docker run -it --rm -v ${HOME}:/root -v $(pwd):/git alpine/git clone ...

Это работает. Один большой недостаток этого заключается в том, что все файлы теперь принадлежат root, а не текущему пользователю. Я хотел решить эту проблему, но пока не могу.

Моя текущая команда:

docker run -it --rm
       --user $(id -u):$(id -g)
       -v $HOME:$HOME:rw
       -v /etc/passwd:/etc/paswd:ro
       -v /etc/group:/etc/group:ro
       -v $PWD:$PWD:rw
       -w $PWD
       alpine/git
       clone ...

Здесь я передаю --user $(id -u):$(id -g) для запуска в качестве текущего пользователя. Кроме того, я передаю $HOME, /etc/passwd и /etc/group, чтобы позволить контейнеру разрешить текущего пользователя и домашний каталог.

Это дает следующую ошибку: No user exists for uid 1000. Откуда это взялось и как это можно решить?

Информация о версии: docker run -it --rm alpine/git --version дает git version 2.15.0

1 Ответ

0 голосов
/ 02 января 2019

Это довольно неловко. У меня была опечатка, как отметил @torek в комментариях. Это должно было быть:

docker run -it --rm
       --user $(id -u):$(id -g)
       -v $HOME:$HOME:rw
       -v /etc/passwd:/etc/passwd:ro
       -v /etc/group:/etc/group:ro
       -v $PWD:$PWD:rw
       -w $PWD
       alpine/git
       clone ...

Это работает как ожидалось!

...