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

标签 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 以允许容器解析当前用户和家庭目录。

这会产生以下错误:uid 1000 不存在用户。这是从哪里来的,如何解决?

版本信息:docker run -it --rm alpine/git --version给出git version 2.15.0

最佳答案

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

这按预期工作!

关于git - 如何以当前用户身份运行 GIT 容器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54007595/

相关文章:

Git 一直要求输入密码

docker - 启用从 Docker 容器到外部世界的转发

azure - Docker:如何处理重启的节点?

docker - 如何确定Docker版本

mysql - ColdFusion:基于角色的应用程序选项?

git - 如何删除 git 中的 ORIG_HEAD 分支?

eclipse - git eclipse 总是需要 pull 所有已经更新的项目

git - 如何管理提交者的层次结构(如 Linux 内核开发)

c# - 让用户不属于任何角色的更好方法?

php - Wordpress:检查前端的自定义用户角色