2015-11-19 13 views
6

जब मैं docker-compose up के साथ डॉकर कंटेनर शुरू करता हूं, तो यह सामान्य रूप से शुरू होता है, लेकिन अंत में कंटेनर स्वचालित रूप से कुछ भी बिना बाहर निकलता है जो मैं बता सकता हूं वर्बोज़ लॉग में उपयोगी है।डॉकर "डॉकर-कंपोज़ अप अप 'के दौरान" ग्रेसली स्टॉपिंग ", लेकिन' डॉकर-कंपोज़ रन - इंट्रीपॉइंट '

जब मैं बजाय एक ही docker-compose.yml विन्यास (समान entrypoint सेट के साथ) और एक ही Dockerfile साथ docker-compose up --entrypoint run-tests.sh चलाने, डोकर कंटेनर कहते हैं, "शान से रोक" अपने दम पर और सभी कंटेनर बंद हो जाता है।

खराब व्यवहार समतुल्य docker-compose run के बजाय docker-compose up चलाने से आता है।

कंटेनर बंद होने से पहले अलग-अलग समय तक रहना प्रतीत होता है। एक उदाहरण में यह 7 मिनट तक, दूसरों में अलग-अलग समय तक रहा।

क्या कोई यह जानता है कि इसका निवारण कैसे करें?

डोकर संस्करणों:

Docker version 1.9.0, build 76d6bc9 
docker-compose version: 1.5.0 
docker-machine version 0.5.0 (HEAD) 

docker-compose --verbose up लॉग:

docker-compose --verbose --project-name monkeycore up monkeycore-autotest 
... lots of startup log (let me know if you need to see this) ... 
# Scala Play1 Framework tests, not likely relevant 
monkeycore-autotest_1 | ~ MonkeyTest...     PASSED  30s 
monkeycore-autotest_1 | ~ WhateverDataTest...    PASSED  33s 
monkeycore-autotest_1 | ~ SauceTest...     PASSED  1 min 44s 
Gracefully stopping... (press Ctrl+C again to force) 
compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=False, filters={u'label': [u'com.docker.compose.project=monkeycore', u'com.docker.compose.oneoff=False']}) 
compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 2 items) 
compose.cli.verbose_proxy.proxy_callable: docker inspect_container <- (u'617bf28c3f7ae3779f383f7e2a96f66e552e92f755a15d07ac6b73329ba3860f') 
compose.cli.verbose_proxy.proxy_callable: docker inspect_container -> {u'AppArmorProfile': u'', 
u'Args': [u'-c', u'build.sh && play auto-test'], 
u'Config': {u'AttachStderr': False, 
      u'AttachStdin': False, 
      u'AttachStdout': False, 
      u'Cmd': None, 
      u'CpuShares': 0, 
      u'Cpuset': u'', 
      u'Domainname': u'', 
      u'Entrypoint': [u'bash', u'-c', u'build.sh && play auto-test'], 
... 
compose.cli.verbose_proxy.proxy_callable: docker inspect_container <- (u'4963e9287ed10d587a79f57a52eaf86c07c6947b2119072bd5d68a3ed0eb161e') 
compose.cli.verbose_proxy.proxy_callable: docker inspect_container -> {u'AppArmorProfile': u'', 
u'Args': [u'/usr/local/etc/redis/redis.conf'], 
u'Config': {u'AttachStderr': False, 
      u'AttachStdin': False, 
      u'AttachStdout': False, 
      u'Cmd': None, 
      u'CpuShares': 0, 
      u'Cpuset': u'', 
      u'Domainname': u'', 
      u'Entrypoint': [u'redis-server', 
... 
Stopping monkeycore_monkeycore-autotest_1 ... 
compose.cli.verbose_proxy.proxy_callable: docker stop <- (u'617bf28c3f7ae3779f383f7e2a96f66e552e92f755a15d07ac6b73329ba3860f', timeout=10) 
Stopping monkeycore_monkeycore-autotest_1 ... done 
ERROR: compose.cli.main.main: Couldn't connect to Docker daemon - you might need to run `docker-machine start default`. 

docker-compose.yml:

monkeycore-base: 
    build: ../ 
    dockerfile: "docker/monkeycore/Dockerfile" 
    ports: 
     - "8000:8000" 
     - "8082:8082" 
     - "9000:9000" 
    stdin_open: true 
    tty: true 
    working_dir: "/path/to/dir" 
    volumes: 
     - src:dest 
    environment: 
     LOTS_OF_ENVIRONMENT_VARIABLES: "defined" 

monkeycore-autotest: 
    extends: 
     service: monkeycore-base 
    links: 
     - redis 
    entrypoint: "run-tests.sh" 

redis: 
    build: ./redis 
    ports: 
     - "6379:6379" 

उत्तर

5

मुझे एक ही समस्या थी। कंपोज़ के भंडार में इसके लिए open issue है।

किसी समस्या के अनुसार, docker-compose up -d चलाने के लिए किसी कार्यवाही के रूप में। कनेक्शन विफलता होने पर भी कंटेनर चलते रहेंगे। कंटेनर लॉग देखने के लिए बस docker-compose logs चलाएं।

उस सुझाव ने अब संकुचित डाउनग्रेड करने की चिंता किए बिना समस्या का समाधान किया।

+0

क्या आप गिटहब पर इस मुद्दे से लिंक कर सकते हैं? – Neil

+0

@ नेइल बस किया। – nbap

3

किसी कारण अपने डोकर ग्राहक आप के साथ कम्युनिकेशन खो के लिए इंजन डोकर। शायद पर कुछ समस्या monkeycore_monkeycore-autotest_1 कंटेनर ने इसका कारण बना दिया।

जांच करें कि आपके डोकर मशीन अभी भी चल रहा है:

$ docker machine ls 

और यदि आपके envs चर सेट कर रहे हैं, 'डोकर' वाले: अपने डोकर मशीन को पुनः आरंभ करने

env | grep -i "docker" 

प्रयास करें, रीसेट अपने env

eval "$(docker-machine env default)" ### or your machine name. 

वार्स और (कंटेनर के अंदर मैन्युअल परीक्षण चलाने का प्रयास docker exec -ti container-name /bin/bash) यह देखने के लिए कि क्या गलत हो रहा है।

+0

मैंने प्रश्न अपडेट किया। मुझे पता चला है कि 'डॉकर-कंपोज़ अप' चलाने पर बुरा व्यवहार होता है, जहां यह 'डॉकर-कंपोज रन - एंटरपॉइंट' चलाने पर नहीं होता है, जहां एक ही एंट्रीपॉइंट सेट होता है। – Neil

+0

मेरी डॉकर-मशीन चल रही है, और मैं इसे एसएसएच कर सकता हूं। मैं 'डॉकर-कंपोज़ रन 'को सफलतापूर्वक निष्पादित कर सकता हूं और उन परीक्षणों को पास कर सकता हूं,' डॉकर-कंपोज़ अप 'की असफलताओं के बीच, जिसमें एक ही प्रविष्टि बिंदु है।समस्या केवल 'डॉकर-कंपोज़ अप' के साथ ही प्रतीत होती है। – Neil

+0

मुझे उस डॉकर-कंपोज़ मुद्दे के बारे में पता नहीं था। मैं हमेशा '-d' ध्वज का उपयोग करके डॉकर-रचना शुरू करता हूं। – wsilva

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