我可以使用Docker Compose直接configurationVagrant吗?

我有一个Vagrant文​​件,它只启动一个基本的Ubuntu服务器,然后依靠一个shell脚本来进行configuration。 而这个shell脚本只是关于安装Docker和Docker Compose来设置我有的各种容器。

使用shell脚本来做到这一点是否合理? 还是有办法告诉Vagrant直接configurationDocker Compose? 我不知道Vagrant中现有的Dockerconfiguration器有多不同。

最近我提出了同样的问题,我创build了一个安装docker-compose的stream浪租客插件,并提出了使用它的docker。 要使用它:

  1. 安装插件: vagrant plugin install vagrant-docker-compose
  2. 将以下行添加到您的Vagrant文​​件中。

     config.vm.provision :docker config.vm.provision :docker_compose, yml: "/vagrant/docker-compose.yml", rebuild: true, run: "always" 

有关完整的示例,请参阅https://github.com/leighmcculloch/vagrant-docker-compose

看来,从stream浪汉1.7.2开始,并没有通过Docker Provisioner直接支持这种操作。 提供者也没有提到它。 stream浪文档:Docker供应 , stream浪文档:Docker命令

我的猜测是这个版本的Vagrant维护者在与Docker提供者一起使用时感觉到Vagrantfile提供了类似的行为。 这也许可以解释为什么在用Docker Composereplace之前,他们没有冒险添加对Fig的直接支持。

我发现使用Docker with Vagrant需要你find使用你自己find最合适的工具的正确组合。 例如,您可能会发现使用Docker文件和Docker命令(如docker)比尝试将该逻辑实现到Vagrantfile中更直观。 另外,你可以尝试一个Dockerfiles的混合体,并使用Vagrant来引用Dockerfiles,Dockerfile会为你提供Dockerfile中的Docker逻辑,而使用正常的Vagrantfile构build“编排”。

这可能是这样的:

  1. 使用非常简单的Vagrant Docker提供程序configuration,依赖于Dockerfile的一切

    使用d.build_dir = "." 引用一个Dockerfile

  2. 使用Vagrant中的Dockerconfiguration程序来启动一切

     vagrant up --provision-with docker