Используя Vagrant, получите доступ к приложению на хост-компьютере изнутри Vagrant

Я запускаю приложение Wordpress внутри блока Vagrant, которому требуется доступ к приложению Rails, работающему на моем хост-компьютере (используя Pow). Как я могу это сделать?

Я могу получить доступ к приложению Rails на своем хост-компьютере, используя myapp.dev, и хотел бы также получить к нему доступ изнутри Vagrant, в лучшем случае, используя тот же домен.

Вся информация, которую я смог найти по этой теме, говорит об обратном, когда вы хотите получить доступ к приложению, работающему внутри Vagrant, с хост-компьютера.


person Manuel Meurer    schedule 14.10.2013    source источник


Ответы (1)


Значит, это звучит так, как будто вам нужна запись хоста на вашей гостевой машине, указывающая на вашу хост-машину?

Вы можете сделать что-то вроде следующего:

Vagrant.configure("2") do |config|
    require 'socket'
    local_ip = UDPSocket.open {|s| s.connect("64.233.187.99", 1); s.addr.last}
    config.vm.provision "shell", inline: "echo \"#{local_ip} myapp.dev\" >> /etc/hosts"
end

Это должно использовать сокет для получения IP-адреса ваших хост-компьютеров, а затем с помощью средства подготовки оболочки он добавит этот IP-адрес в ваш файл hosts, что должно позволить вашей виртуальной машине использовать доменное имя, которое вы хотите для связи с вашей ОС хоста.

person Matt Cooper    schedule 15.10.2013
comment
Красиво работает! Не могли бы вы объяснить, что делает строка local_id? Я предполагаю, что он подключается к Google, а затем ищет адреса, по которым прошел запрос, причем IP-адрес хост-машины является последним? - person Manuel Meurer; 15.10.2013
comment
Кроме того, нужно ли мне возиться с Socket.do_not_reverse_lookup перед открытием сокета, как здесь? codeclimate.com/github/fgrehm/vagrant-notify / - person Manuel Meurer; 15.10.2013
comment
Честно говоря, я не знаю всех деталей того, что он делает... но да, в основном он просто отправляет UDP-пакет в Google, и через это соединение он обрабатывает строку задействованных IP-адресов... последний из которых это локальный IP-адрес... извините, я тоже не совсем уверен в обратном поиске... - person Matt Cooper; 15.10.2013
comment
Хорошо спасибо! Я также добавил команды обратного просмотра, не помешает. :) - person Manuel Meurer; 15.10.2013