1

레일즈 콘솔을 통해 모델에 값을 삽입 할 때이 오류가 발생합니다.Docker를 사용하여 mongodb를 Rails 컨테이너에 연결할 수 없습니다.

"Mongo::Error::NoServerAvailable: No server is available matching preference: # using server_selection_timeout=30 and local_threshold= 0.015 "

두 컨테이너 모두 정상적으로 실행되고 있지만 레일즈는 mongodb에 연결할 수 없습니다. Dockerfile이 하나뿐입니다.

내 고정 표시기-compose.yml 파일 내용은 다음과 같습니다

version: '2' 

services: 
    mongo: 
    image: mongo:3.0 
    command: mongod --smallfiles --quiet 
    environment: 
     - RAILS_ENV=production 
     - RACK_ENV=production 
    ports: 
     - "27017:27017" 

    app: 
    depends_on: 
     - 'mongo' 
     # - 'redis' 
    build: . 
    ports: 
     - '3000:3000' 
    volumes: 
     - '.:/app' 
    command: rails s -b '0.0.0.0' 
    env_file: 
     - '.env' 

volumes: 
    mongo: 

내 Dockerfile :

FROM ruby:2.3.0 
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs 

ENV APP_HOME /app 

RUN mkdir $APP_HOME 
WORKDIR $APP_HOME 


ADD Gemfile* $APP_HOME/ 
RUN bundle install 


ADD . $APP_HOME 
+0

레일 응용 프로그램은 어떤 호스트에 연결하려고합니까? – R0MANARMY

+0

localhost : 27017 –

+0

[Docker 사용 중] 가능한 복제본 : "SQLSTATE \ [HY000 \] \ [2002 \] 해당 파일이나 디렉토리가 없음"] (http://stackoverflow.com/questions/40075065/using- docker-i-get-the-error-sqlstatehy000-2002-no-such-file-or-directory) – R0MANARMY

답변

0

당신은 (고정 표시기-compose.yml에 언급 된 컨테이너 이름과 동일) 몽고 등을 사용 했 mongoid.yml에 호스트가 있습니까?

+0

예, 현재 호스트를 mongo로 변경 한 후 작업 중입니다. –

관련 문제