繁体   English   中英

如何在docker中使用烧瓶使用mongoDB容器

[英]How to use mongoDB container in docker compose with flask

我正在尝试使用docker compose连接所有服务。 我的所有服务都已连接,除了mongoDB。 这是我的docker-compose.yml:

version: '2'
services:
  user_service:
    build: ./user_service
    ports:
     - "83:83"
    links:
     - mongo
    depends_on:
     - mongo
    volumes:
     - .:/code
  mongo:
    image: "mongo:latest"
    ports:
     - "27017:27017"
    command: mongod --port 27017

在我的flask应用程序中,我尝试使用以下代码访问数据库:

mongo = MongoClient('mongo://mongo', 27017)
db = mongo['user-database']
users = db.users.find({})

这些代码行不起作用,因为我的user_services找不到mongoDB服务。

在您的MongoClient中,将代码更改为以下代码

import os
from flask import Flask, redirect, url_for, request, render_template
from pymongo import MongoClient
mongo = MongoClient( os.environ['DB_PORT_27017_TCP_ADDR'],
            27017)

参考文章

可以使用mongodb链接的容器预定义环境变量来完成此操作,该变量在链接到user_service并在MongoClient中使用时就可用。

注意:检查所链接的Mongodb容器特定版本的user_service容器可用的环境变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM