mongodb连接拒绝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”的时候,每一件事情都可以正确地构build,当我做“docker-compose up”的时候,应用就会启动,我可以访问在vm主机上的air_scout容器中运行的应用,但是在db访问应用上。 页面错误:
“air_scout_1 | [fe9cdec8-36e4-4974-aef3-18b1e73ea030] [DEBUG] MONGODB |拒绝连接 – 连接(2)为127.0.0.1:27017”。
在我的mongoid.yml文件中,我configuration如下:
hosts: - localhost:27017 - <%= ENV['DATABASE_URL'] %>
究竟是什么问题,自昨天以来,我真的很震惊。 谢谢。
做“docker检查CID”给出的JSON数据,其中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容器创build/ etc / hosts条目。 链接的服务将以这些名称可访问。
请参阅https://docs.docker.com/compose/compose-file/#/links
您可以使用正确的值mongodb:27017设置环境variablesDATABASE_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
- VS 2017添加> Docker支持rest生成 – “CleanWorkspace”任务意外失败(控制台应用程序)
- 作为Docker Container运行时,squid Proxy不起作用
- Docker使用elasticsearch运行ubuntu
- ECONNREFUSED 127.0.0.1:3306到jenkins里面的mysql容器
- Jenkins shell脚本在不同的服务器上执行
- docker在生产
- 添加失败:build立docker图像时没有这样的文件/目录
- 未findASP.NET Core 1.0 EF7 System.Data.SqlClient
- 让docker机器创build没有tlsverify的主机