【问题标题】:connect docker container with python-eve app to docker container with mongodb将带有 python-eve 应用程序的 docker 容器连接到带有 mongodb 的 docker 容器
【发布时间】:2017-12-14 18:31:31
【问题描述】:

我在 python-eve 上关注 this tutorial。我为 mongodb 使用 docker 容器,为 eve 使用 python3。

如果我将 venv 用于 eve 应用程序,它工作正常,但如果我运行我的 mongo 容器,我无法连接到em>eve 应用程序在另一个 docker 容器中。我总是在 eve 应用程序中收到以下错误:pymongo.errors.ServerSelectionTimeoutError: localhost:27017: [Errno 111] Connection denied。虽然,我仍然可以手动连接到 mongo 容器。

到目前为止我做了什么

我四处搜索并尝试了一些提议,但没有成功。

  • 我把mongod.conf中的bindip改成了0.0.0.0
  • 我完全删除了 bindip 行。
  • 我尝试将 mongodb 启动为mongod -f /etc/mongod.conf
  • 我尝试完全移除所有容器并重新开始。

我的 docker-compose.yml

version: '3.3'

volumes:

  mongodata:

services:

  mongodb:
    container_name: 'mongodb'
    image: mongo:3.4
    volumes: 
      - mongodata:/data/db
    env_file:
      - environments/local.env
    expose:
      - 27017

  api:
    container_name: 'mymoney'
    build:
      context: ./src
      dockerfile: Dockerfile
    volumes:
      - ./src:/app/src
    ports:
      - '5000:5000'
    depends_on:
      - mongodb
    links:
      - mongodb

eve 应用程序的 Dockerfile

FROM python:3.6
MAINTAINER alpy

ENV PYTHONUNBUFFERED 1

RUN apt-get update && apt-get install -qq -y build-essential libffi-dev python3-dev

RUN mkdir -p /app/src
# We copy the requirements.txt file first to avoid cache invalidations
COPY requirements.txt /app/src
WORKDIR /app/src
RUN pip install -r requirements.txt
COPY . /app/src
EXPOSE 5000
CMD ["python", "run.py"]

我不知道,我还能做什么。需要你的帮助。

【问题讨论】:

    标签: mongodb python-3.x flask docker-compose eve


    【解决方案1】:

    看来,应用程序的settings.py 中的MONGO_HOST 必须设置为docker-compose.yml 中指定的mongo 容器名称:

    ...
    MONGO_HOST = 'mongodb'
    ...
    

    【讨论】:

      猜你喜欢
      • 2019-05-27
      • 2017-11-10
      • 2019-05-24
      • 2018-12-12
      • 1970-01-01
      • 2016-07-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多