我嘗試創建一個開發環境,其中包含多個運行在生產環境中的微服務。Docker,獨立多軌實例
我想運行與Docker兩個rails applications
,它們之間進行調用。
我知道我可以使用links
,但有了這個,我總是必須將其中的一個作爲主人使用。這意味着,我只能調試這個,我想看看他們每個人的控制檯輸出。也許我做錯了什麼,這就是爲什麼我問。
這是我的搬運工,compose.yml文件:
rails-app-A:
build: .
dockerfile: "DockerfileA"
environment:
RAILS_ENV: development
links:
- db
command: bundle exec rails server -p 3005 -b '0.0.0.0'
volumes:
- ".:/home/app"
volumes_from:
- bundle
expose:
- "3005"
ports:
- "3005:3005"
rails-app-B:
build: .
dockerfile: "DockerfileB"
environment:
RAILS_ENV: development
links:
- db
command: bundle exec rails server -p 3000 -b '0.0.0.0'
volumes:
- ".:/home/app"
volumes_from:
- bundle
expose:
- "3000"
ports:
- "3000:3000"
這是我如何運行Rails應用程序:
我總是得到這樣的錯誤,這些:
Errno::ECONNREFUSED: Connection refused - connect(2) for "localhost" port 3000
Errno::ECONNREFUSED (Failed to open TCP connection to localhost:3000 (Connection refused - connect(2) for "localhost" port 3000))
問題是,我可以通過瀏覽器訪問所有人。
隨着使用VirtualBox的OSX的Docker版本,這個工作正常(只是調用localhost:3000
或localhost:3005
),但在Ubuntu或Docker-beta,失敗。
編輯
據我所知, 「localhost」 的鋼軌-APP-A是不同的服務器中軌-APP-B中 「localhost」 的,因爲它們運行不同的機器。當我有VirtualBox
我可以訪問,因爲我有VirtualBox實例的IP(192.169.99.100)。
我現在使用http://localtunnel.me/
,我可以訪問其他服務。但是,無論如何,有沒有更好的方法來做到這一點?