4
我正在用3 docker構建一個項目。Docker rails mongodb NoServerAvailable
- API使用Rails
- 網站角/的WebPack
- DB與MongoDB的
讓我有一種docker-compose
來處理一切。
我的問題是,當我想我的種子數據庫,我有一個錯誤:
Mongo::Error::NoServerAvailable: No server is available matching preference: #<Mongo::ServerSelector::Primary:0x47121755943460 tag_sets=[] server_selection_timeout=30 local_threshold=0.015>
我試了很多東西,我目前使用的碼頭工人本土的測試版本到OSX。
version: '2'
services:
web:
build: web/
ports:
- "80:8080"
links:
- api
depends_on:
- api
volumes:
- ./web:/app
api:
build: api/
command: rails s -p 3000 -b '0.0.0.0'
volumes:
- ./api:/app
- ./api:/app/tmp/pids
links:
- db
#depends_on:
#- db
ports:
- "3000:3000"
environment:
RAILS_ENV: development
db:
image: mongo:3.2
ports:
- 27017:27017
我seeds.rb
require 'csv'
file = File.read("db/data.csv")
csv = CSV.parse(file, :headers => false, :col_sep => ";")
csv.each do |row|
Datum.create(
:country_code => row[0],
:country => row[1]
)
end
而且我mongoid.yml這是正常的我本地主機使用,因爲與測試版,它是在本地主機上。當我嘗試使用碼頭機時,我將其更改爲碼頭IP。
development:
clients:
default:
database: api_development
hosts:
- localhost:27017
options:
options:
test:
clients:
default:
database: api_test
hosts:
- localhost:27017
options:
read:
mode: :primary
max_pool_size: 1
一旦我docker-compose up -d
我嘗試用docker-compose run api rake db:seed
所有正在運行的容器來耙,我可以從我的導航訪問它沒有問題。
當我卸載docker native並使用boot2docker時,它正在工作。
有沒有人有一個想法,問題是從哪裏?
謝謝,也許我現在沒有在這個項目上工作,但我記得錯誤來自'碼頭OSX Beta'而不是使用'docker-machine' –
我還注意到你應該使用mongo uri 'uri:mongodb:// db:27017'而不是通過主機和用戶參數連接,否則Mongoid將無法進行身份驗證。 –