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

时间:2019-01-02 13:54:34

标签: git docker user-roles passwd etcpasswd

我想从Docker容器中使用GIT。 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 :(得分:2)

这很尴尬。正如@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 ...

这按预期工作!