如何在 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]
当我尝试在 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]