[英]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.