簡體   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