У меня есть приложение для рельсов с mongodb, в среде разработки. Невозможно подключить mongodb с докером. Может подключаться к локальному mongodb с той же конфигурацией mongoid. Я попытался сменить хост как localhost на 0.0.0.0, но не работал. Что не хватает в настройках?docker-compose mongo rails connection failed
Мое сомнение в том, что монго в Докере не началось или не было привязано. Если я вношу изменения в конфигурацию mongoid для чтения:: ближайший, он говорит, что узлов не найдено.
сообщение об ошибке, Мопед :: Ошибки :: ConnectionFailure в индексе продукта #
Не удалось подключиться к основному узлу для набора реплик #]>
Dockerfile
#FROM ruby:2.2.1-slim
FROM rails:4.2.1
MAINTAINER Sandesh Soni, <[email protected]>
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev
RUN mkdir /gmv
WORKDIR /gmv
# Add db directory to /db
ADD Gemfile /gmv/Gemfile
RUN bundle install
ADD ./database /data/db
ADD . /gmv
Докер -compose.yml
web:
build: .
command: bundle exec rails s -p 3000 -b '0.0.0.0'
volumes:
- .:/gmv
ports:
- "3000:3000"
links:
- db
db:
image: mongo
command: "--smallfiles --bind_ip 0.0.0.0 --port 27027 -v"
volumes:
- data/mongodb:/data/db
ports:
- "27017:27017"
Где вы пытаетесь подключиться к экземпляру MongoDB? Если вы хотите подключиться к нему в своем браузере, вам нужно указать URL-адрес хоста Docker ('boot2docker ip'), указав ему правильный порт (' 27027' в вашем случае). Если вы хотите связать его с контейнером 'web', вы можете использовать имя' db' hostname (оно автоматически добавляется Docker в '/ etc/hosts /') или env vars, созданное Docker Compose (что-то похожее на 'YOURAPP_DB_1_PORT_27027_TCP_ADDR' (см. здесь https://docs.docker.com/compose/env/). – linkyndy
Я использую Linux-машину, а не Mac. Я попытался использовать MYAPP_DB_1_PORT_27027_TCP_ADDR, я получаю ошибку Не удалось подключиться к основному узлу для набора реплик # <Мопед :: Кластер: 70197059955820 @seeds = [<Мопед :: Node resolved_address = "127.0.53.53:27017">]> Я использую локальную разработку, поэтому 0.0.0.3000 - это url; разрешенный адрес 127.0.53.53 означает сбой ip. –