如何从一个 docker 容器向另一个链接容器发出 HTTP 请求?
How can I make a HTTP request from one docker container to another linked container?
我有一个 docker 容器,里面有一个 sinatra 应用程序,另一个容器有一个 node.js 应用程序。它们都通过图链接。在我的 sinatra 应用程序中,我正在向 node.js 应用程序发出 HTTP Post 请求。为此,我正在使用法拉第 gem。
我现在的问题是如何向另一个链接容器发出 HTTP 请求。
这是我的 fig.yml
db:
image: mongo:2.6.7
command: --smallfiles
api:
build: ./api
command: bundle exec rackup -p 3000
volumes:
- ./api:/code
ports:
- "3000:3000"
links:
- db
- flickrcrawler
flickrcrawler:
build: ./flickr-crawler
ports:
- "3100:3100"
links:
- db
这是我在 sinatra 应用程序中使用 farady 发出 HTTP 请求的方法:
def crawler_call(url, tags)
tags.each do |t|
conn = Faraday.new(url: url) do |faraday|
faraday.request :url_encoded
faraday.response :logger
faraday.adapter Faraday.default_adapter
end
conn.post "#{t}"
end
end
我将此方法作为 url 参数传递什么?
您可以在 fig.yml
中使用服务的名称,在这种情况下,我认为您称它为 flickrcrawler
。所以像 http://flickrcrawler:3100
.
我有一个 docker 容器,里面有一个 sinatra 应用程序,另一个容器有一个 node.js 应用程序。它们都通过图链接。在我的 sinatra 应用程序中,我正在向 node.js 应用程序发出 HTTP Post 请求。为此,我正在使用法拉第 gem。
我现在的问题是如何向另一个链接容器发出 HTTP 请求。
这是我的 fig.yml
db:
image: mongo:2.6.7
command: --smallfiles
api:
build: ./api
command: bundle exec rackup -p 3000
volumes:
- ./api:/code
ports:
- "3000:3000"
links:
- db
- flickrcrawler
flickrcrawler:
build: ./flickr-crawler
ports:
- "3100:3100"
links:
- db
这是我在 sinatra 应用程序中使用 farady 发出 HTTP 请求的方法:
def crawler_call(url, tags)
tags.each do |t|
conn = Faraday.new(url: url) do |faraday|
faraday.request :url_encoded
faraday.response :logger
faraday.adapter Faraday.default_adapter
end
conn.post "#{t}"
end
end
我将此方法作为 url 参数传递什么?
您可以在 fig.yml
中使用服务的名称,在这种情况下,我认为您称它为 flickrcrawler
。所以像 http://flickrcrawler:3100
.