如何在 Docker 容器中安装 Codespace 的工作空间?

How do I mount a Codespace's workspace in a Docker container?

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

$ ls /workspaces/myrepo
[list of files]

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

/ # ls /app
[nothing]

相信这是因为代码空间本身就是Docker中的运行,所以挂载点是相对于Docker主机(Codespace 的),而不是 Codespace 所在的容器 运行.


一种解决方案是使用 --volumes-from 重新安装 Codespace 的卷(例如 /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]