如何以当前用户身份运行GIT容器?

pbi*_*len 8 git passwd etcpasswd user-roles docker

我想在Docker容器中使用GIT.https://hub.docker.com/r/alpine/git/上记录的用法 非常简单:

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

这有效.这有一个很大的缺点是所有文件现在都归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 ...
Run Code Online (Sandbox Code Playgroud)

在这里,我传递--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

小智 6

这实在是太尴尬了。正如 @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 ...
Run Code Online (Sandbox Code Playgroud)

这按预期工作!

  • 不,没关系。我了解到docker会挂载文件,而不仅仅是目录!:-) (2认同)