एक CircleCI काम में एक मोंगो replicaset बनाना

वोट
1

मैं कोड है कि MongoDB लेन-देन का उपयोग करता है पर CircleCI में एकीकरण परीक्षण चलाने के लिए कोशिश कर रहा हूँ। मैं वर्तमान में निम्न त्रुटि हो रही है:

(IllegalOperation) Transaction numbers are only allowed on a replica set member or mongos

वहाँ परीक्षण चलाने से पहले एक replicaset आरंभ करने के लिए एक तरीका है?

मैं का उपयोग कर की कोशिश की है docker execकिसी भी सफलता के बिना कंटेनर पर आदेशों को चलाने के लिए।

किसी को भी पहले ऐसा करने में कामयाब रहे है?

वर्तमान में मेरे circleci कॉन्फ़िग फ़ाइल इस तरह दिखता है:

 integration:
    docker:
      - image: circleci/golang:1.13
      - image: circleci/mongo:3
    steps:
      - attach_workspace:
          at: .

      - run: go test ./... -mod vendor -v -race -tags integration
09/10/2019 को 12:55
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


1 जवाब

वोट
0

सबसे पहले, आप एक प्रतिकृति सेट के रूप में mongod प्रारंभ करने की जरूरत है। डोकर: अनुभाग है कि शुरू से चलाया जा सकता एक कमांड टैग लेता है

- image: circleci/mongo:4.0
  command: [--replSet,rs0]

अब मोंगो कंटेनर स्वचालित रूप से एक replSet के रूप में शुरू कर देंगे। लेकिन अगर आप अभी तक मातम से बाहर नहीं हैं। तुम अब भी rs.Initiate () चलाने की आवश्यकता है, और उस (यह mongod सर्वर चल रहा है के बाद से) मोंगो कंटेनर के बाहर चलने किया जाना चाहिए।

जब भी आप का उपयोग runयह पहली कंटेनर, जो इस मामले में golang कंटेनर है से संबंधित है। आप (मोंगो-CLI कि कंटेनर में और फिर चलाने rs.initiate स्थापित करने की आवश्यकता)

मेरे मामले में, मैं एक अल्पाइन डोकर कंटेनर चल रहा था और इस कोड के साथ इसका समाधान नहीं होता

  - run:
    name: "Initialize Replica Set"
    command: |
      echo 'http://dl-cdn.alpinelinux.org/alpine/v3.6/main' >> /etc/apk/repositories
      echo 'http://dl-cdn.alpinelinux.org/alpine/v3.6/community' >> /etc/apk/repositories
      apk update
      apk add mongodb=3.4.4-r0
      mongo mongodb://localhost:27017 --eval "rs.initiate()"

हालांकि मुझे लगता है कि सर्कल: golang कंटेनर डेबियन के बंद चल रहे हैं। के अनुसार इस ब्लॉग ऐसा लगता है कि आप चला सकते हैं

  - run:
    name: "Initialize Replica Set"
    command: |
      echo "deb http://repo.mongodb.org/apt/debian "$(lsb_release -sc)"/mongodb-org/4.0 main" | sudo tee /etc/apt/sources.list.d/mongodb.list
      sudo apt-get update
      sudo apt-get install mongodb-org
      mongo mongodb://localhost:27017 --eval "rs.initiate()"
12/10/2019 को 18:05
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more