2016-07-17 9 views
5

द्वारा लॉन्च की गई शेल स्क्रिप्ट में इनपुट इनपुट मैं एक स्क्रिप्ट स्क्रिप्ट से डॉकर कंटेनर में एक django-tornado हाइब्रिड ऐप लॉन्च करने के लिए काम कर रहा हूं और --noinput को एक अपरिचित तर्क के रूप में प्राप्त कर रहा हूंmanage.py collectstatic: त्रुटि: अपरिचित तर्क: - डॉकर

usage: manage.py collectstatic [-h] [--version] [-v {0,1,2,3}] 
           [--settings SETTINGS] [--pythonpath PYTHONPATH] 
           [--traceback] [--no-color] [--noinput] 
           [--no-post-process] [-i PATTERN] [-n] [-c] [-l] 
           [--no-default-ignore] 
manage.py collectstatic: error: unrecognized arguments: --noinput 

मैं क्यों हो रही हो जाएगा --noinput अपरिचित तर्क के रूप में: Django आदेश के लिए? मेरे Dockerfile एक तैनाती खोल स्क्रिप्ट जो collectstatic और migrate आदेश निष्पादित करता कहता है (दोनों --noinput तर्क है, जो दोनों के लिए विफल हो रहा है के साथ। मैं चारों ओर बाहरी लाइनों, आदि, कोई लाभ नहीं हुआ हटाने के आदेश के आसपास खाली स्थान के समायोजन, साथ खेला है। मैं किसी भी मुद्दे के बिना स्थानीय स्तर पर खोल स्क्रिप्ट चला सकते हैं, यह केवल खोल स्क्रिप्ट को डोकर कंटेनर RUN कॉल में एक समस्या लगती है

Dockerfile:

FROM python:2.7 

RUN apt-get update 
RUN apt-get install -y build-essential 
RUN apt-get install -y python-dev 
RUN apt-get install -y libmysqlclient-dev 

RUN mkdir /code 
ADD . /code/ 
WORKDIR /code 
RUN pip install -r requirements.txt 

CMD ["sh","./deploy.sh"] 

EXPOSE 8888 

deploy.sh:

#!/bin/sh 
python manage.py collectstatic --noinput 
python manage.py migrate --noinput 
python main.py 

यदि मैं RUN python manage.py collectstatic --noinput के साथ डॉकरफ़ाइल में django आदेश चलाता हूं तो कोई समस्या नहीं है, लेकिन मैं CMD कॉल में एप्लिकेशन-विशिष्ट आदेश प्राप्त करने का प्रयास कर रहा हूं, क्योंकि मुझे अपनी तैनाती के लिए लोचदार बीनस्टॉक से डेटाबेस वातावरण वर्र्स की आवश्यकता है वातावरण।

उत्तर

5

लग रहा है मेरी समस्या की तरह खोल स्क्रिप्ट में लाइन अंत था। मुझे लगता है कि श अजगर में --noinput\R में खिला था, तो यह --noinput की तरह लग रही के रूप में टर्मिनल में ही पेश किया गया था, लेकिन वास्तव में यह एक CR चरित्र हो रही थी और साथ ही है कि इसके खिलाफ मिलान किया गया था।

जब मैं स्थानीय रूप से परीक्षण कर रहा था, तो यह डॉकर क्विकस्टार्ट टर्मिनल (जहां यह काम करता था) में था, और डॉकर कंटेनर हमेशा उबंटू (जहां यह असफल रहा) में चल रहे थे।

मैंने अतीत में इस तरह से हिट किया है जहां विंडोज़ पर लिखे गए शैल स्क्रिप्ट में अलग-अलग पंक्ति समाप्ति लिनक्स पर्यावरण में चीजों को गड़बड़ कर रही है, और मुझे याद रखना होगा कि रेखा अंत में सही तरीके से सेट करना कितना महत्वपूर्ण है मेरे संपादक ...

+0

क्या इसके आसपास कोई रास्ता है? मैं इसे समझने में सक्षम नहीं हूं। – Cognoscis

+0

सुनिश्चित करें कि आपका संपादक शैल स्क्रिप्ट के लिए 'CR' वर्णों को सम्मिलित नहीं करता है। यदि आपका वर्जनिंग सॉफ़्टवेयर सही तरीके से कॉन्फ़िगर किया गया है, तो यह सुनिश्चित करना चाहिए कि चीजों को चेक आउट करने के लिए सही लाइन समाप्ति हो। मैंने अपनी '.gitattributes' फ़ाइल' * text = auto' और '* .sh text eol = lf' में जोड़ा। अगर, आपका संपादक अभी भी 'एलएफ' के बजाय' सीआरएलएफ 'जोड़ रहा है, तो यह स्वयं की चीजों को ठीक नहीं करता है, हालांकि, मेरी बड़ी समस्या थी। –

+0

उत्तर के लिए धन्यवाद। मैं अगली बार इसे ध्यान में रखूंगा – Cognoscis

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