[英]mongodb connection refused docker-compose
dockerfile包括: -
FROM ruby:2.2.3-slim
MAINTAINER Milan Rawal <milan@gmail.com>
RUN apt-get update && apt-get install -qq -y build-essential nodejs libmagickcore-dev imagemagick libmagickwand-dev libxml2-dev libxslt1-dev git-core curl htop --fix-missing --no-install-recommends
ENV INSTALL_PATH /air_scout
RUN mkdir -p $INSTALL_PATH
WORKDIR $INSTALL_PATH
COPY Gemfile Gemfile
RUN bundle install
COPY . .
RUN bundle exec rake RAILS_ENV=production SECRET_TOKEN=f6801f0744ff2e86b0baa542fc55075b5b79c922c518e34484cfe6a6c2149510973fa6c90d36c05907f8bf9114b6b33594f3630810b332ef3717b8b8f4f04b1f assets:precompile
VOLUME ["$INSTALL_PATH/public"]
CMD bundle exec unicorn -c config/unicorn.rb
docker-compose.yml文件包含: -
version: '2'
services:
mongodb:
image: mongo:latest
ports:
- '27017:27017'
volumes:
- air_scout-mongodb:/data/db
redis:
image: redis:3.0.5
ports:
- '6379:6379'
volumes:
- air_scout-redis:/var/lib/redis
air_scout:
build: .
ports:
- '8000:8000'
environment:
- DATABASE_URL=mongodb:27017
links:
- mongodb
- redis
env_file:
- .air_scout.env
resque:
build: .
environment:
- QUEUE=*
- DATABASE_URL=mongodb:27017
links:
- mongodb
- redis
command: bundle exec rake environment resque:work
env_file:
- .air_scout.env
volumes:
air_scout-redis:
air_scout-mongodb:
當我做“docker-compose build”時,每個東西都正確構建,當我做“docker-compose up”時,應用程序啟動,我就可以訪問在vm主機上的air_scout容器中運行的應用程序,但是在db access app上。 頁面我收到錯誤:
“air_scout_1 | [fe9cdec8-36e4-4974-aef3-18b1e73ea030] [DEBUG] MONGODB |連接被拒絕 - 連接(2)為127.0.0.1:27017”。
在我的mongoid.yml文件中,我做了如下配置:
hosts:
- localhost:27017
- <%= ENV['DATABASE_URL'] %>
究竟是什么問題,我從昨天開始就真的很開心。 謝謝。
執行“docker inspect CID”會給出jwson數據,其中Networsetting下的Ipaddress為“空”。 如何訪問此空IP。
編輯: - mongoid.yml文件中的內容如下: -
production:
clients:
default:
database: air_scout_test
hosts:
- localhost:27017
- <%= ENV['DATABASE_URL'] %>
options:
max_pool_size: 1
options:
raise_not_found_error: false
您必須從air_scout容器連接到mongodb:27017而不是127.0.0.1:27017。
air_scout容器的鏈接將為redis和mongodb容器創建/ etc / hosts條目。 鏈接的服務可以在這些名稱下訪問。
請參閱https://docs.docker.com/compose/compose-file/#/links
您使用正確的值mongodb:27017設置環境變量DATABASE_URL,但錯誤消息仍包含127.0.0.1:27017。 所以它試圖連接那里而不是mongodb:27017。 我沒有mongoid的經驗,但我猜你應該只留下DATABASE_URL。 如果這不起作用,請使用mongodb:27017
如果你想知道發生了什么,docker exec進入你正在運行的air_scout容器
docker ps
# take the exact name of the air_scout container in the output
# i am guessing compose_air_scout but i might be off
docker exec -ti compose_air_scout /bin/bash
cat /etc/hosts
ping mongodb
# maybe try an interactive mongodb client
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.