2017-05-29 11 views
7

मैं OpenEdx के साथ काम के लिए अपना खुद का विनाश बना रहा हूं।सही खींचने वाले edxops/मंचों के रास्ते

मैंने एडीएक्स से आधिकारिक devstack भंडार खींच लिया और मैं इसे संशोधित कर रहा हूं।

मैं अपने स्टैक पर forums जोड़ने की कोशिश कर रहा हूं लेकिन मैं डॉकर रचना के बाद से नहीं चल सकता।

forums: 
    command: bash -c 'source /edx/app/forum/cs_comments_service_env && ruby app.rb -p 18080' 
    container_name: edx.devstack.forums 
    depends_on: 
     # - xqueue:xqueue 
     - mongo 
     - elasticsearch 
     # - rabbitmq:rabbitmq 
     - mysql 
     - memcached 
    environment: 
     CACHE_LOCATION: edx.devstack.memcached:12211 
     DB_HOST: edx.devstack.mysql 
     TEST_ELASTICSEARCH_URL: "http://edx.devstack.elasticsearch:9200" 
    image: edxops/forums:latest 
    ports: 
     - 4567:4567 

के बारे में मैं समय में सही कमांड जो भ्रमित कर रहा हूँ:

studio: 
    command: bash -c 'source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py cms runserver 0.0.0.0:18010 --settings devstack_docker' 

इस स्टूडियो के लिए आदेश है

मैं composer फ़ाइल में जोड़ा है।

forums: 
    command: bash -c 'source /edx/app/forum/cs_comments_service_env && ruby app.rb -p 18080' 

मैंने इसके साथ प्रयास किया लेकिन फ़ोल्डर मौजूद नहीं है।

तो मैं के साथ की कोशिश की: command: bash -c 'ruby app.rb -p 18080' लेकिन मैं इस त्रुटि मिलती है:

edx.devstack.forums | bash: ruby: command not found 
edx.devstack.forums exited with code 127 

तो, मैं forums छवि के बारे में और के बारे में मैं कैसे सही ढंग से काम करता है के लिए यह प्रदान कर सकते हैं संदेह में हूँ।

क्या कोई मेरी मदद कर सकता है? - यह कैसे प्रदान करता है? - इसे कैसे चलाएं (कमांड)?

अद्यतन:

मैं एक नया विन्यास है:

docker-compose logs -f --tail=500 | grep edx.devstack.forums 
Attaching to edx.devstack.forums, edx.devstack.chrome, edx.devstack.firefox, edx.devstack.credentials, edx.devstack.discovery, edx.devstack.elasticsearch, edx.devstack.ecommerce, edx.devstack.studio, edx.devstack.lms, edx.devstack.memcached, edx.devstack.mysql, edx.devstack.mongo 
edx.devstack.forums | /usr/bin/env: ‘ruby’: No such file or directory 

लेकिन, क्यों:

forums: 
    command: bash -c 'cd /edx/app/forum/cs_comments_service && exec /edx/app/forum/cs_comments_service/bin/unicorn -c config/unicorn_tcp.rb' 
    container_name: edx.devstack.forums 
    depends_on: 
     # - xqueue:xqueue 
     - mongo 
     - elasticsearch 
     # - rabbitmq:rabbitmq 
     - mysql 
     - memcached 
    environment: 
     CACHE_LOCATION: edx.devstack.memcached:12211 
     DB_HOST: edx.devstack.mysql 
     SEARCH_SERVER: "http://edx.devstack.elasticsearch:9200" 
     TEST_ELASTICSEARCH_URL: "http://edx.devstack.elasticsearch:9200" 
     MONGOHQ_URL: "mongodb://cs_comments_service:[email protected]:27017/cs_comments_service" 
     GEM_PATH: "/edx/app/forum/.gem" 
     GEM_HOME: "/edx/app/forum/.gem" 
     RBENV_ROOT: "/edx/app/forum/.rbenv" 
    image: edxops/forum:latest 
    ports: 
     - 4567:4567 

लेकिन मैं अभी भी इस समस्या है?

उत्तर

4

मैंने छवि का निरीक्षण किया और विवरण निकाला जो कंटेनर चलाने में सहायक होगा। मैं नीचे के रूप में अपने निष्कर्षों को नीचे सूची जाएगा:

  • Supervisord: Supervisord कंटेनर में प्रक्रिया चलाने के लिए इस्तेमाल किया गया है। हालांकि कंटेनर केवल एक ही प्रक्रिया चला रहा है, मुझे यहां एक प्रोसेस मैनेजर का उपयोग करने का उद्देश्य नहीं दिख रहा है। इसलिए, यदि आप छवि की स्थानीय प्रतिलिपि बना रहे हैं तो बस इससे छुटकारा पाएं। लेकिन अब इसे छोड़ दें, CMD मैं एक कंटेनर में एक प्रक्रिया शुरू करने का सही तरीका प्रदान कर रहा हूं।

  • स्टार्टअप: प्रति डोकर छवि के CMD के रूप में स्टार्टअप अनुक्रम है:

    docker run => supervisord => launch script 
    

    जहां लांच स्क्रिप्ट /edx/app/forum/forum-supervisor.sh लिए जिम्मेदार है:

    1. /edx/app/forum/forum_env से लोड हो रहा है वातावरण चर।
    2. निर्देशिका को /edx/app/forum/cs_comments_service पर स्विच करना।
    3. unicorn सर्वर से शुरू।

इसके अलावा, गहरे लाल रंग का पालन एक कस्टम पथ पर स्थापित किया गया है:

[email protected]:/edx/app# which ruby 
    /edx/app/forum/.rbenv/shims/ruby 

तो वातावरण चर इसका इस्तेमाल करने के लोड की जरूरत है। वातावरण चर स्टार्टअप के हिस्से के रूप लोड में शामिल हैं:

export LISTEN_HOST="0.0.0.0" 
export NEW_RELIC_APP_NAME="default_env-default_deployment-forum" 
export DATA_DIR="/edx/var/forum" 
export LISTEN_PORT="4567" 
export MONGOHQ_URL="mongodb://cs_comments_service:[email protected]:27017/cs_comments_service" 
export GEM_PATH="/edx/app/forum/.gem" 
export RACK_ENV="staging" 
export WORKER_PROCESSES="4" 
export NEW_RELIC_ENABLE="False" 
export SINATRA_ENV="staging" 
export SEARCH_SERVER="http://es.edx:9200" 
export PATH="/edx/app/forum/cs_comments_service/bin:/edx/app/forum/.rbenv/bin:/edx/app/forum/.rbenv/shims:/edx/app/forum/.gem/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" 
export API_KEY="password" 
export HOME="/edx/app/forum" 
export GEM_HOME="/edx/app/forum/.gem" 
export RBENV_ROOT="/edx/app/forum/.rbenv" 
यह जानकारी आपके लिए आवश्यक विन्यास के साथ छवि चला सकते हैं के साथ

उदाहरण के लिए environment अनुभाग में अपनी कॉन्फ़िगरेशन के अनुसार वैरिएबल की सूची सेट करें। आपको इन सभी चर को yml फ़ाइल में सेट करने की आवश्यकता होगी। ऐसा करने के बाद अगर आप सिर्फ यह तुम्हारे लिए क्या या डिफ़ॉल्ट आदेश जो इन config को शादी होगी साथ शुरू करने के लिए एक कस्टम स्क्रिप्ट लिखने इन सभी चर लेखन से बचना चाहते हैं command

bash -c 'cd /edx/app/forum/cs_comments_service && exec /edx/app/forum/cs_comments_service/bin/unicorn -c config/unicorn_tcp.rb' 
बाकी

होना चाहिए।

संबंधित मुद्दे