从Docker中检测Virtualbox

我的使用Docker的应用程序应该在Ubuntu中直接和Windows + VirtualBox(没有Vagrant)略有不同。

是否有可能检测到我是否在
Ubuntu > Docker > Ubuntu或in
Windows > VirtualBox > Ubuntu > Docker > Ubuntu

为什么我需要这个?
我有PHP的Symfony应用程序和开发环境是非常缓慢的Windows(每个请求需要超过5秒),因为VirtualBox共享文件夹。 我将var/cachevar/logs移出到/dev/shm/appname/ ,一切都变得更快了。 但是使用Ubuntu的开发者并不需要这个function – 即使没有这个黑客攻击,它也能正常工作。

我的想法
每个开发人员都可以拥有自己docker-compose.yml并设置环境variables,但是现在我们在大多数情况下共享相同docker-compose.yml

可能是一个延伸,但在Symfony应用程序内核中configurationpath时:

  1. 从PHP调用df /some/application/file.php并捕获文件的挂载点(最后一列)。
  2. 从PHP mount | grep "$mount point" | grep "vboxsf" |wc -l mount | grep "$mount point" | grep "vboxsf" |wc -l mount | grep "$mount point" | grep "vboxsf" |wc -l 。 如果结果是> 0,那么你正在使用VirtualBox共享文件夹。