2017-05-29 70 views
7

我正在與OpenEdx作品我自己的devstack。正確拉動edxops /論壇的方式

我從edx拉出官方devstack存儲庫,我正在修改它。

我試圖添加forums到我的堆棧,但我無法運行,因爲碼頭構成。

我說這composer文件:

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' 

這是工作室的命令。

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形象,我如何能夠正確地提供它的作品。

任何人都可以幫助我嗎? - 如何提供? - 如何運行它(命令)?

UPDATE:

我有一個新的配置:

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 

,但我仍然有這樣的問題:

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 

但是,爲什麼呢?

回答

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文件中設置所有這些變量。一旦完成command應該

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

否則,如果你想避免寫所有這些變量只寫一個自定義腳本來爲你做它或將要結婚,這些配置默認的命令來啓動。