Как я могу запустить команды командной строки на heroku
Вот мое задание по рейку в приложении Rails 4 ниже.
task :traceroute_ip => :environment do
puts "start.........................."
ip = IpAddress.first
ip_address_output = `traceroute -q 1 -n google.com`
ip.update_attributes(traceroute_output: ip_address_output)
end
У меня есть ошибка в этой строке ниже, которая корректно работает локально в моей грабли в приложении Rails.
ip_address_output = `traceroute -q 1 -n google.com`
Ошибка
/app/vendor/bundle/ruby/2.0.0/bin/rake: No such file or directory - traceroute
Эта команда ниже будет работать на любом терминале Ubuntu
traceroute -q 1 -n google.com
Как я могу установить "traceroute" на heroku?
sudo apt-get install traceroute
Спасибо
1 ответ
Вы можете использовать https://github.com/heroku/heroku-buildpack-multi, чтобы объединить https://github.com/ddollar/heroku-buildpack-apt и ваш рубиновый сборочный пакет.
Создать .buildpacks
файл:
$ cat .buildpacks
https://github.com/ddollar/heroku-buildpack-apt
https://github.com/heroku/heroku-buildpack-ruby
И Aptfile
файл, содержащий ваши пакеты:
$ cat Aptfile
traceroute
Затем вам нужно установить heroku-buildpack-multi в качестве вашего собственного buildpack-пакета:
$ heroku config:add BUILDPACK_URL=https://github.com/heroku/heroku-buildpack-multi.git
Обновление: попробуйте запустить traceroute.db
вместо traceroute
:
$ heroku run traceroute.db -q 1 -n google.com
Running `traceroute.db -q 1 -n google.com` attached to terminal... up, run.6887
traceroute to google.com (74.125.228.68), 30 hops max, 60 byte packets
1 172.16.231.221 0.116 ms
2 10.135.67.1 2.812 ms
3 100.70.9.1 2.154 ms
4 100.70.9.40 2.344 ms
...