代码之家  ›  专栏  ›  技术社区  ›  Behrad Eslamifar

流浪者:将提供者和供应者一起使用

  •  0
  • Behrad Eslamifar  · 技术社区  · 9 年前

    Vagrant.configure(2) do |config|
      config.vm.define "app7" do |app7|
        app7.vm.synced_folder "/home/behrad/dunro","/var/www/html"
        app7.vm.network "forwarded_port", id: "ssh", guest: 22, host: 2222, auto_correct: true
        app7.vm.provider "docker" do |docker|
          docker.vagrant_vagrantfile = "dev/app7/Vagrantfile"
          docker.build_dir = "./dev/app7"
          docker.build_args = "-t","dunro/app7:20170701"
          docker.name = "app7"
          docker.ports = ['80:80']
          docker.has_ssh = true
        end
      end
    end
    

    Vagrant.configure(2) do |config|
      config.vm.hostname = "app7"
      config.vm.provision "file", source: "keys/id_rsa.pub", destination: "/var/www/.ssh/authorized_keys"
      config.ssh.username = "www-data"                                 
      config.ssh.private_key_path = "keys/id_rsa"  
    end
    

    dev/app7/Vagrantfile不工作

    1 回复  |  直到 9 年前
        1
  •  0
  •   Frederic Henri    9 年前

    dev/app7/Vagrantfile不工作

    是的,它不工作,因为它不是有效的Vagrantfile。

    你基本上已经指示流浪者使用 host VM 因此,从主Vagrantfile中,您告诉vagrant查看另一个Vagrantfile,以了解主机VM(将运行docker的主机VM)的配置,因此至少您需要一个 config.vm.box 将成为此VM基本框的设置

    # -*- mode: ruby -*-
    # vi: set ft=ruby :
    
    Vagrant.configure(2) do |config|
      config.vm.box = "ubuntu/trusty64"
    
      config.vm.hostname = "app7"
    
      config.vm.provision "shell", inline: "echo Hello, World"
    
      # make sure to have docker installed on this VM
      config.vm.provision "docker"
    
      config.vm.network :forwarded_port, guest: 80, host: 4567
    end
    

    这将创建一个基于ubuntu trusty64的虚拟机(我确保安装最新版本的docker,这样docker provider的主文件将能够正确运行)

    在这种情况下,我可以看到我的内联shell配置正在运行,docker配置将安装docker,然后docker主提供程序将在此VM上拉取图像

    推荐文章