У меня два приложения работают в разных образах докеров. Первый открыт для портов 3000: 3000, а второй - 4000: 4000. Первое приложение имеет некоторые ресурсы, которые я хочу получить вторым приложением, использующим rest-client.
Наверное, проблема с контейнерами докеров.
Вот ошибки:
Errno :: ECONNREFUSED в FilmsController # index
Не удалось открыть TCP-соединение с localhost: 3000 (в соединении отказано - подключение (2) для порта 3000 localhost)
// ПЕРВАЯ ЗАЯВКА:
- предоставляет ресурсы на http://localhost:3000/movies
- открыт для других сетей
- разрешает запрос с перекрестным происхождением
application.rb файл для первого приложения
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
// ВТОРОЕ ПРИЛОЖЕНИЕ:
- работает на порту: 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
Все работало нормально, так как это было одно приложение. Проблема возникает, когда я разбиваюсь на два контейнера докеров. Я предполагаю, что один контейнер блокирует запрос от другого, но не смог найти решения. Любая помощь будет очень признательна.