如文档中所述,如果我想在 docker 中运行 testcontainers,我必须考虑以下几点:
- docker 套接字必须通过卷挂载可用
- “本地”源代码目录必须安装在容器内运行 Testcontainers 的同一路径上,以便 Testcontainers 能够为其生成的容器设置正确的卷安装。
如何遵守第二点,主要是-v $PWD:$PWD
如果我使用Docker for Windows的条件?
如文档中所述,如果我想在 docker 中运行 testcontainers,我必须考虑以下几点:
如何遵守第二点,主要是-v $PWD:$PWD
如果我使用Docker for Windows的条件?
在 Windows 上,docker 使用命名管道,而不是套接字。
docker run -v \\.\pipe\docker_engine:\\.\pipe\docker_engine
但是你需要 Windows v1709 和 Windows 的特殊版本的 Docker,因为这个功能是实验性的。
更多信息: https ://blog.docker.com/2017/09/docker-windows-server-1709/
至于 $PWD,在 windows cmd 上,您可以使用%CD%
执行相同工作的变量。Powershell 也有一个$pwd
, 和 linux 一样。但不幸的是,它们不适用于 docker-compose,因为它们不是真正的环境变量。
我认为最简单的方法是执行一个简短的脚本来.env
在 Windows 上创建文件,其中 PWD= 将设置为当前目录:
echo PWD=%cd% > .env
你可以在 docker-compose 中使用 $PWD ,就像在 linux 上一样。