在 Windows 的 Docker 容器中运行测试容器
Posted
技术标签:
【中文标题】在 Windows 的 Docker 容器中运行测试容器【英文标题】:Running testcontainers inside a Docker container for Windows 【发布时间】:2018-09-21 08:55:11 【问题描述】:正如documentation 中所说,如果我想在 docker 中运行测试容器,我必须考虑以下几点:
-
docker 套接字必须通过卷挂载可用
“本地”源代码目录必须安装在容器内的同一路径上,Testcontainers 运行所在的路径,以便 Testcontainers 能够为它产生的容器。
如果我使用Docker for Windows,如何遵守第二点,主要是-v $PWD:$PWD
条件?
【问题讨论】:
【参考方案1】:在 windows 上,docker 使用命名管道,而不是套接字。
docker run -v \\.\pipe\docker_engine:\\.\pipe\docker_engine
但您需要 Windows v1709 和 Docker for Windows 的特殊版本,因为此功能是实验性的。
更多信息: https://blog.docker.com/2017/09/docker-windows-server-1709/
至于 $PWD,在 windows cmd 上你可以使用 %CD%
变量来完成同样的工作。 Powershell 也有一个$pwd
,和 linux 一样。但不幸的是,它们不适用于 docker-compose,因为它们不是真正的环境变量。
我认为最简单的方法是在 Windows 上执行一个简短的脚本来创建 .env
文件,其中 PWD= 将设置为当前目录:
echo PWD=%cd% > .env
你可以在 docker-compose 中使用 $PWD,就像在 linux 上一样。
【讨论】:
但这是针对 Windows 容器的,而 Testcontainers 是针对 Linux 容器的。以上是关于在 Windows 的 Docker 容器中运行测试容器的主要内容,如果未能解决你的问题,请参考以下文章
在 Windows 容器中运行 Visual Studio 远程调试器(由 Docker 管理)
我可以在 Windows 7 上使用 docker-toolbox 运行 Windows 容器吗?