0

当我尝试将工作区目录挂载到 Docker 容器(带有-v)的代码空间中时,挂载的路径为空,例如:

$ ls /workspaces/myrepo
[list of files]

$ docker run -it --rm -v /workspaces/myrepo:/app alpine:latest

/ # ls /app
[nothing]
4

1 回答 1

1

相信这是因为 Codespace 本身是在 Docker 中运行的,因此挂载点相对于 Docker 主机(属于 Codespace),而不是相对于运行 Codespace 的容器。


一种解决方案是使用--volumes-from重新安装您正在启动的容器/workspaces/myrepo的代码空间(例如)的卷。这需要知道运行 Codespace 的容器的容器 ID,我们可以使用.docker ps --filter "label=Type=codespaces"

作为奖励--workdir,还可以用于在当前目录中启动容器。

把它放在一起:

$ docker run -it --rm --volumes-from $(docker ps --filter "label=Type=codespaces" -q) --workdir $(pwd) alpine:latest

/workspaces/myrepo/ # ls .
[list of files]
于 2021-08-18T19:33:12.203 回答