你怎么能运行一个GIT容器作为当前用户呢?
How can you run a GIT container as the current user?
我想在 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
这很尴尬。正如@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 ...
这按预期工作!
我想在 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
这很尴尬。正如@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 ...
这按预期工作!