![](/img/trans.png)
[英]How to connect Flask app docker container to local mongoDB (not docker container)
[英]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.