我有單獨的泊塢窗圖像運行兩個應用程序。首先暴露在端口3000:3000和第二4000:4000。第一個應用程序有一些資源,我想用第二個應用程序使用rest-client。啓用搬運工CORS的Rails應用其餘的客戶端
也許它與碼頭工人容器有問題。
下面是錯誤的:
變量Errno ::在FilmsController#指數ECONNREFUSED
無法打開TCP連接到本地主機:3000(拒絕連接 - 連接(2)「 localhost「port 3000)
//第一個應用:
- 暴露資源上http://localhost:3000/movies
- 是開放的其它網絡
- 允許跨源請求用於第一應用
module Movies class Application < Rails::Application config.web_console.whiny_requests = false config.middleware.insert_before 0, Rack::Cors do allow do origins '*' resource '*', :headers => :any, :methods => [:get, :post, :options] end end end end
// SECOND
application.rb中文件應用:
- 運行在端口:4000
- 具有一個模型電影
- 一個控制器
膠片型號:
class Film
require 'rest-client'
def self.all
RestClient.get 'localhost:3000/movies.json'
end
end
films_controller:
class FilmsController < ApplicationController
def index
render json: Film.all
end
end
因爲它是一個應用程序,所以一切正常。當我拆分爲兩個碼頭集裝箱時出現問題。我想一個容器阻止來自另一個的請求,但找不到解決方案。任何幫助將非常感激。
在默認情況下,一個單獨的網絡命名空間,其中包括取得自己的私人迴環接口(又名本地主機)是從每一個其他容器和主機分開
謝謝你的answear。我已經啓動了容器,然後通過typipng將它們連接到網絡上:'docker network create railsnet''docker network connect railsnet app1'' docker network connect railsnet app2'但這不是解決方案 – elmuzyk
請解釋爲什麼這不是一個解決方案,如果你遇到新的錯誤。 – BMitch
錯誤仍然相同。我確信這個問題是一個'碼頭問題',因爲當我測試其他計算機上的應用程序時(沒有docker),一切正常。 – elmuzyk