我有一个使用MongoDB的Rails应用程序,在开发环境中。无法通过Docker连接到MongoDB,但是可以通过相同的mongoid配置连接到本地MongoDB。我尝试将主机更改为localhost到0.0.0.0,但没有起作用。设置缺少什么?
我的疑问是Docker中的Mongo未启动或绑定。如果我将mongoid配置更改为读取:nearest,则会显示未找到节点。
错误消息是: Product#index中的Moped :: Errors :: ConnectionFailure 无法连接到复制集#>的主节点。
我的疑问是Docker中的Mongo未启动或绑定。如果我将mongoid配置更改为读取:nearest,则会显示未找到节点。
错误消息是: Product#index中的Moped :: Errors :: ConnectionFailure 无法连接到复制集#>的主节点。
Dockerfile
#FROM ruby:2.2.1-slim
FROM rails:4.2.1
MAINTAINER Sandesh Soni, <my@email.com>
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
docker-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"
boot2docker ip
),并给它正确的端口(在你的情况下是27027
)。如果你想从web
容器连接它,你可以使用db
主机名(它会自动添加到Docker的/etc/hosts/
中)或者Docker Compose创建的环境变量(类似于YOURAPP_DB_1_PORT_27027_TCP_ADDR
,请参见这里https://docs.docker.com/compose/env/)。 - linkyndy