- प्रमाणीकरण भाग के लिए:क्या आपने
--authenticationDatabase admin
जोड़ने का प्रयास किया है लॉगिन करने में सक्षम होने के लिए? -
MONGO_INITDB_DATABASE
. के संबंध में यह तब तक प्रभावी नहीं होगा जब तक आपके पास/docker-entrypoint-initdb.d/
के अंतर्गत कोई स्क्रिप्ट न हो जैसा कि docker-entrypoiny में दिखाया गया है .sh इसका उपयोग मोंगोडब छवि में किया जाता है ताकि आपके पासdocker-entrypoint-initdb.d/
में एक बैश स्क्रिप्ट हो। इसके साथ ही कहा। -
अपने एप्लिकेशन डीबी के मालिक के रूप में रूट उपयोगकर्ता का उपयोग करना सुरक्षा के लिहाज से नहीं है क्योंकि इसमें मोंगोडब इंस्टेंस में सब कुछ नियंत्रित करने की क्षमता होगी।
आईएमएचओ एक बेहतर तरीका होगा कि निम्नलिखित की तरह अतिरिक्त चर जोड़ दें:
MONGO_APPLICATION_DATABASE
MONGO_APPLICATION_USERNAME
MONGO_APPLICATION_PASSWORD
फिर एक बैश स्क्रिप्ट जोड़ें जो उपयोगकर्ता बनाएगी और इसे पर्यावरण चर का उपयोग करके डेटाबेस को असाइन करेगी (आपको इसे docker-entrypoint-initdb.d पर माउंट करने की आवश्यकता है):
# initmongo/setup.sh mongo admin -u $MONGO_INITDB_ROOT_USERNAME -p $MONGO_INITDB_ROOT_PASSWORD --eval "db.getSiblingDB('$MONGO_APPLICATION_DATABASE').createUser({user: '$MONGO_APPLICATION_USERNAME', pwd: '$MONGO_APPLICATION_PASSWORD', roles: [{role: 'readWrite', db: '$MONGO_APPLICATION_DATABASE'}]});"
docker-compose.yml में वॉल्यूम की अपनी वर्तमान सूची में वॉल्यूम जोड़ें
#docker-compose.yml volumes: - ".${MONGO_DATA_DIR}:${MONGO_DATA_DIR}" - "./initmongo/:/docker-entrypoint-initdb.d/"
और अंत में इस वेरिएबल को हटा दें
MONGO_INITDB_DATABASE
क्योंकि इसकी कोई आवश्यकता नहीं हैलॉगिन करने के लिए निम्न कमांड का उपयोग करें:
docker exec -it container_name mongo -u "$MONGO_APPLICATION_USERNAME" -p "$MONGO_APPLICATION_PASSWORD" --authenticationDatabase "$MONGO_APPLICATION_DATABASE" "$MONGO_APPLICATION_DATABASE"
-
.env
. के लिए फ़ाइल मुझे यकीन नहीं है कि इस समस्या का कारण क्या हो सकता है। क्या आपके पास इसका उपयोग करते समय कोई चेतावनी है? साथ ही इस टिप्पणी की जांच करने पर विचार करें या यह