【问题标题】:Deploying PhantomJS or headless gem on Engine Yard在 Engine Yard 上部署 PhantomJS 或 headless gem
【发布时间】:2016-05-13 18:12:51
【问题描述】:

我目前有一个应用部署到 Engine Yard。我不熟悉将厨师食谱导入 Engine Yard 的仓库等,比如安装 PhantomJS。该实例似乎使用 Amazon Linux。是否有最佳实践,甚至演练,可以帮助我将 Xvfb 或 PhantomJS 部署到我的 Engine Yard 实例?此外,它还被用作 Rails 应用程序服务器。

【问题讨论】:

    标签: ruby-on-rails phantomjs xvfb headless-browser engineyard


    【解决方案1】:

    我建议the PhantomJS gem。它会在第一次使用时自动将 PhantomJS 安装在一个私有位置,您可以从 API 获取该位置。它提供了一个最近的 PhantomJS,目前是 2.1.1。它适用于我在 MacOS 和 Linux 上。

    我没有在 Engine Yard 上使用过那个 gem,但我认为不应该有任何 Engine Yard 特定的问题。

    我使用 Cucumber、Capybara 和 poltergeist,所以我在 features/support/poltergeist.rb 中有这个:

    require 'capybara/poltergeist'
    Capybara.javascript_driver = :poltergeist
    Capybara.register_driver :poltergeist do |app|
      Capybara::Poltergeist::Driver.new(app, phantomjs: Phantomjs.path)
    end
    

    直接使用 Selenium-Webdriver,我希望 rantingsonrails 的建议会起作用:

    Selenium::WebDriver::PhantomJS.path = Phantomjs.path
    

    【讨论】:

    • 您是如何在engineyard 上实现gem 的,也就是确保安装在路径中等?您是否必须在部署挂钩中运行类似的东西? phantom_path = Phantomjs.pathSelenium::WebDriver::PhantomJS.path = phantom_path
    • 我刚刚成功部署了运行最后一条注释中的代码作为初始化程序。只是想看看在使用带有 PAAS 的 gem 时是否有最佳实践?
    • 我添加到我的答案中。我想说这正是 gem 和驱动程序的设计用途。
    猜你喜欢
    • 2014-03-01
    • 1970-01-01
    • 2012-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-06
    相关资源
    最近更新 更多