Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Ruby on Rails应用程序的Docker云服务链接_Ruby On Rails_Ruby_Docker_Docker Compose_Httparty - Fatal编程技术网

Ruby on rails Ruby on Rails应用程序的Docker云服务链接

Ruby on rails Ruby on Rails应用程序的Docker云服务链接,ruby-on-rails,ruby,docker,docker-compose,httparty,Ruby On Rails,Ruby,Docker,Docker Compose,Httparty,我正在尝试docker cloud(以前是tutum)部署一个rails应用程序,该应用程序使用HttpParty从另一个REST API(也部署在docker cloud中)获取数据。因此,代码如下所示: def get_service_response response = HTTParty.get("#{api_service_url}/foo/]" end def self.api_service_url ENV['SERVICE_URL'] end 我们正在运行两个HAPr

我正在尝试docker cloud(以前是tutum)部署一个rails应用程序,该应用程序使用HttpParty从另一个REST API(也部署在docker cloud中)获取数据。因此,代码如下所示:

def get_service_response
  response = HTTParty.get("#{api_service_url}/foo/]"
end

def self.api_service_url
  ENV['SERVICE_URL']
end
我们正在运行两个HAProxies,一个用于rails web,另一个用于REST API。因此,Stackfile如下所示:

web:
 image: organization/web-image
  ports:
    - "3000:3000"
  tags:
    - deploy_tag
  links:
    - haproxy-service
  environment:
    SERVICE_URL: haproxy-service

service:
  image: organization/service-image
  ports:
    - "8080:8080"
  tags:
    - deploy_tag

haproxy-web:
  image: 'dockercloud/haproxy:latest'
  environment:
    - BACKEND_PORT=3000
    - BALANCE=roundrobin
  links:
    - web
  ports:
    - '80:80'
  tags:
    - deploy_tag

haproxy-service:
  image: 'dockercloud/haproxy:latest'
  environment:
    - BACKEND_PORT=8080
    - BALANCE=roundrobin
  links:
    - service
  ports:
    - "8000:8000"
  tags:
    - deploy_tag
但是,我的
get\u service\u response
方法失败,出现以下错误:

Errno::ECONNREFUSED (Failed to open TCP connection to :80 (Connection refused - connect(2) for nil port 80)):
当我试图从web容器中的终端卷曲时,我能够看到来自服务的响应

echo $SERVICE_URL
# displays haproxy-service
curl $SERVICE_URL/foo
#I see the expected response

我想知道为什么rails应用程序无法从httparty调用中评估服务链接。

要覆盖
httparty
中的
base\u uri
(在我们的例子中是
Nil
),我们需要启动路径以
http://
https://
进行查询。我们通过如下设置env变量解决了上述问题:

environment:
    SERVICE_URL: http://haproxy-service