我有一些makefiles
,其中大多数内容无需配置即可运行。这些makefile过去使用过docker-machine
。
是否有一种方法可以在bash
中检测用户是否使用的是[[mac的docker桌面而不是docker-machine?
eval $(docker-machine env)
时设置,并且必须与docker-machine一起使用。测试版不需要设置它们中的任何一个,实际上,您需要取消设置它们才能正常运行。
docker info
命令中进行检查,以查找“ moby”(mac VM的docker名称):docker info | grep -q moby && echo "Docker for mac beta" || echo "Not docker for mac beta"
但是,这取决于docker info
结果的一致性。
[[ $(docker version --format "{{.Server.KernelVersion}}") == *-moby ]]
docker info --format "{{.OperatingSystem}}" | grep -q "Docker for Mac"
然后检查退出代码,例如:
if [[ $? -eq 0 ]]; then echo "Docker for Mac!" else echo "Something else" fi
[这通过--filter
使用docker的内置Go模板将OS信息与docker info
返回的有效负载隔离,然后在安静模式下使用grep
检查所需的字符串文字。注意:较新的Mac版Docker从过滤器调用返回
"Docker Desktop"
。