Heroku上的条件服务器启动

时间:2015-12-17 06:01:06

标签: ruby-on-rails heroku sh

为了避免使用Foreman开发问题,我需要将Puma服务器包装在Quotaguard的Socks代理中,以便仅在生产和生产中获取静态IP。

使用我在article找到的this question链接,我在Procfile的bin / web调用中实现了以下代码。

#!/bin/sh
if [ "$RACK_ENV" == "production" ]; then
  echo Using qgsocksify to wrap Puma
  bin/qgsocksify bundle exec puma -C config/puma.rb
else
  echo Using straight Puma
  bundle exec puma -C config/puma.rb
fi

虽然环境是在RACK_ENV上设置的生产,但是打开的“直接Puma”服务器启动了。在本地测试这个工作,但它在Heroku上失败了。

什么是导致它在Heroku上失败的语法错误?

1 个答案:

答案 0 :(得分:1)

显然sh并没有在Heroku上使用==等效,但在我的Mac上本地工作,这就是它在开发中的作用。谷歌搜索显示标准sh使用=等价。在这种情况下,我只是将#!/ bin / sh更改为#!/ bin / bash,因为Heroku也支持bash。

.directive('pane', function() {
return {
  require: '^tabs',
  restrict: 'E',
  transclude: true,
  scope: {
    title: '@',
    paneClick: '=',
    paneClickAttr: '='
  },
  link: function(scope, element, attrs, tabsCtrl) {
    tabsCtrl.addPane(scope);
  },
  template: '<div ng-click="paneClick(paneClickAttr)" class="tab-pane" ng-class="{active: selected}" ng-transclude>' +
    '</div>',
  replace: true
};})


<pane title="First Tab" pane-click="addChocolate()" pane-click-attr="candy">