【发布时间】:2023-03-06 05:36:01
【问题描述】:
我收到服务器超时错误,所以我认为我的 MongoDB 和烧瓶应用程序存在连接错误。
在 docker-compose.yml 中
mongodb:
image: mongo:latest
hostname: test_mongodb
environment:
- MONGO_INITDB_DATABASE=staff_db
- MONGO_INITDB_ROOT_USERNAME=admin
- MONGO_INITDB_ROOT_PASSWORD=password
volumes:
- ./init-db.js:/docker-entrypoint-initdb.d/init-db.js:ro
ports:
- 27017:27017
app.py
def get_db():
client = MongoClient(host='test_mongodb',
port=27017,
username='admin',
password='password',
authSource='admin')
db = client["staff_db"]
print("connection good")
return db
@app.route('/location')
def get_staff_location():
db = ""
staffs = []
try:
db = get_db()
_staffs = db.beaconLocation_tb.find()
for staff in _staffs:
temp_dict = {
"id": staffLocation["id"],
"staffid": staffLocation["staffid"],
"name": staffLocation["name"]
}
staffs.append(temp_dict)
return jsonify({'staff': staffs})
except:
pass
finally:
if type(db) == MongoClient:
db.close()
init-db.js
db = db.getSiblingDB("staff_db");
db.staff_tb.drop();
db.staff_tb.insertMany([
{
"id":1,
"staffid": 1,
"name": "Darren"
},
{
"id": 2,
"staffid": 2,
"name": "Tony"
},
]);
错误信息
pymongo.errors.ServerSelectionTimeoutError: test_mongodb:27017: [Errno -3] 名称解析暂时失败,超时:30s,拓扑描述:
]>
任何人都可以看到我犯的错误吗?
【问题讨论】:
-
你的 Flask 应用程序是否也被 dockerized 并从同一个 docker-compose 文件运行?
-
是的,但我已经解决了这个问题!谢谢,这只是一个导致 docker-compose 无法正常工作的错误。
标签: python mongodb docker flask docker-compose