tutorial run images hub dockers compose docker vagrant

run - dockers images



¿Puedo usar Docker Compose para aprovisionar Vagrant directamente? (2)

Tengo un archivo Vagrant que solo muestra un servidor base de Ubuntu y luego se basa en un script de shell para hacer el aprovisionamiento. Y este script de shell solo trata de instalar Docker y Docker Compose para configurar los diversos contenedores que tengo.

¿Tiene sentido usar un script de shell para hacer esto? ¿O hay alguna manera de decirle a Vagrant que se aprovisione directamente con Docker Compose? No sé qué tan diferente sería del aprovisionador de Docker ya existente en Vagrant.


Hace poco planteé la misma pregunta, y creé un complemento vago de aprovisionador que instala docker-componte y muestra el docker que lo usa. Para usarlo:

  1. Instalar el plugin: vagrant plugin install vagrant-docker-compose
  2. Agregue las siguientes líneas a su Vagrantfile.

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

Para ver un ejemplo completo, consulte https://github.com/leighmcculloch/vagrant-docker-compose


Parece que a partir del vagabundo 1.7.2 no hay soporte directo a través de Docker Provisioner para realizar este tipo de operación. El proveedor tampoco lo mencionó. Vagrant docs: Docker provisioning , Vagrant docs: Docker commands

Creo que los mantenedores de Vagrant en esta versión creen que el archivo Vagrant cuando se usa con el proveedor Docker ofrece un comportamiento similar. Esto puede explicar por qué no se aventuraron a agregar soporte directo para Fig antes de que fuera reemplazado por Docker Compose.

He descubierto que usar Docker con Vagrant requiere que encuentres la combinación correcta de usar cada herramienta que consideres óptima para ti. Por ejemplo, es posible que el uso de Dockerfiles y los comandos de Docker como docker compongan sea más intuitivo que intentar implementar esa lógica en Vagrantfile. Alternativamente, podría probar un híbrido de Dockerfiles y usar Vagrant para hacer referencia a los Dockerfiles que le da la lógica de Docker en el archivo Docker y la compilación "orchestration" utilizando el archivo Vagrant normal.

Así es como podría verse eso:

  1. Utilice la configuración del proveedor Dockerfile Docker muy simple, confíe en Dockerfile para todo lo demás

    Use d.build_dir = "." para hacer referencia a un Dockerfile

  2. Use el proveedor de Docker en Vagrant para comenzar todo

    vagrant up --provision-with docker