मैं एक अजीब दुविधा में हूँ। मैंने एक नोड एप्लिकेशन बनाया है और इस एप्लिकेशन को MongoDB (डॉकर कंटेनर के माध्यम से) से कनेक्ट करने की आवश्यकता है मैंने एक docker-compose फ़ाइल निम्नानुसार बनाई है:

version: "3"
services:
  mongo:
     image: mongo
     expose:
      - 27017
     volumes:
      - ./data/db:/data/db

  my-node:
    image: "<MY_IMAGE_PATH>:latest"
    deploy:
      replicas: 1
      restart_policy:
        condition: on-failure
    working_dir: /opt/app
    ports:
      - "2000:2000"
    volumes:
      - ./mod:/usr/app
    networks:
      - webnet
    command: "node app.js"
networks:
  webnet:

मैं मोंगो आधिकारिक छवि का उपयोग कर रहा हूँ। मैंने उपरोक्त कॉन्फ़िगरेशन से अपनी डॉकटर छवि को छोड़ दिया है। मैंने कई कॉन्फ़िगरेशन के साथ सेट किया है, लेकिन मैं mongoDB से कनेक्ट करने में असमर्थ हूं (हां मैंने नोड.जेएस एप्लिकेशन के अंदर भी MongoDB यूरी को बदल दिया है)। लेकिन जब भी मैं deploying मेरा docker-compose स्टार्ट अप पर मेरा आवेदन मुझे हमेशा TransientTransactionError का MongoNetworkError देता है। मैं कई घंटों से समझ नहीं पा रहा हूं कि समस्या कहां है।

एक और अजीब बात यह है कि जब मैं अपनी डॉकर-कंपोज़ फ़ाइल चलाता हूं तो मुझे निम्नलिखित लॉग मिलते हैं:

Creating network server_default
Creating network server_webnet
Creating service server_mongo
Creating service server_feed-grabber

क्या ऐसा हो सकता है कि दोनों सेवाएं एक अलग नेटवर्क में हों? यदि हाँ तो इसे कैसे ठीक करें?

अन्य सूचना:

  • नोड.जेएस एप्लिकेशन में मैंने कोशिश की मोंगोडीबी यूरी है mongodb://mongo:27017/MyDB
  • मैं अपना docker-compose कमांड के साथ चला रहा हूँ: docker stack deploy -c docker-compose.yml server
  • मेरी नोड.जेएस छवि उबंटू 18 है

कोई इसमें मेरी मदद कर सकता है?

0
Seeker 24 फरवरी 2019, 04:25

1 उत्तर

सबसे बढ़िया उत्तर

ठीक है तो मैंने कुछ चीजों की कोशिश की है और कई घंटे बिताने के बाद आखिरकार मुझे पता चला। दो चीजें थीं जो मैं गलत कर रहा था और वे मुझे आखिरी बिंदु पर मार रहे थे:

  1. डॉकटर के स्टार्टअप की पहली लॉगिंग ने मुझे दिखाया कि यह दो नेटवर्क बना रहा था server_default और server_webnet यह पहली गलती है। काम करते समय दोनों कंटेनर एक ही नेटवर्क में होने चाहिए।

  2. दूसरी चीज जो मुझे पहले मेरे Node.js एप्लिकेशन depend_on को चलाने के लिए Mongo कंटेनर को चलाने के लिए चाहिए थी। यह ठीक वैसा ही है जैसा मैंने अपने डॉकटर-कंपोज़ कॉन्फ़िगरेशन में depend_on प्रॉपर्टी को पेश करके किया था।

0
Seeker 23 जून 2019, 12:36