ruby-on-rails – Docker rails mongodb NoServerAvailable
发布时间:2020-12-17 01:56:34 所属栏目:百科 来源:网络整理
导读:我正在用3个Docker建造一个项目. 带Rails的API 网站角度/网络包 带有mongodb的DB 所以我有一个docker-compose来处理一切. 我的问题是当我想要种子数据库时,我有一个错误: Mongo::Error::NoServerAvailable: No server is available matching preference: #M
我正在用3个Docker建造一个项目.
>带Rails的API 所以我有一个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上的Docker原生测试版. 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 我的种子.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这是正常的我使用localhost因为测试版本,它在localhost上.当我尝试使用docker-machine时,我将其更改为docker 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运行api rake db:seed 所有容器都在运行,我可以从导航器访问它而没有问题. 当我卸载docker native并使用boot2docker时,它正在工作. 有没有人知道问题出在哪里? 解决方法
你需要使用
- db:27017 在mongoid.yml的主机配置中,其中“db”是docker-compose.yml中mongo服务的名称. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |