2017-02-27 6 views
16

डोकर इस त्रुटि फेंक शुरू कर दिया:standard_init_linux.go: 178: कार्यकारी उपयोगकर्ता प्रक्रिया की वजह से "कार्यकारी प्रारूप त्रुटि"

standard_init_linux.go:178: exec user process caused "exec format error"

जब भी मैं किसी भी परिवर्तन करने के लिए कोई संबंध के साथ अध्यक्ष एवं प्रबंध निदेशक या ENTRYPOINT के साथ एक विशिष्ट डोकर कंटेनर चलाने के लिए, फाइल को तब सीएमडी या एंटरपॉइंट हटा दें। यहां करीब एक घंटे पहले तक पूरी तरह से काम किया डोकर फ़ाइल मैं जिसके साथ काम कर रहा है है:

FROM buildpack-deps:jessie 

ENV PATH /usr/local/bin:$PATH 

ENV LANG C.UTF-8 

RUN apt-get update && apt-get install -y --no-install-recommends \ 
     tcl \ 
     tk \ 
    && rm -rf /var/lib/apt/lists/* 

ENV GPG_KEY 0D96DF4D4110E5C43FBFB17F2D347EA6AA65421D 
ENV PYTHON_VERSION 3.6.0 

ENV PYTHON_PIP_VERSION 9.0.1 

RUN set -ex \ 
    && buildDeps=' \ 
     tcl-dev \ 
     tk-dev \ 
    ' \ 
    && apt-get update && apt-get install -y $buildDeps --no-install-recommends && rm -rf /var/lib/apt/lists/* \ 
    \ 
    && wget -O python.tar.xz "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz" \ 
    && wget -O python.tar.xz.asc "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc" \ 
    && export GNUPGHOME="$(mktemp -d)" \ 
    && gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$GPG_KEY" \ 
    && gpg --batch --verify python.tar.xz.asc python.tar.xz \ 
    && rm -r "$GNUPGHOME" python.tar.xz.asc \ 
    && mkdir -p /usr/src/python \ 
    && tar -xJC /usr/src/python --strip-components=1 -f python.tar.xz \ 
    && rm python.tar.xz \ 
    \ 
    && cd /usr/src/python \ 
    && ./configure \ 
     --enable-loadable-sqlite-extensions \ 
     --enable-shared \ 
    && make -j$(nproc) \ 
    && make install \ 
    && ldconfig \ 
    \ 
    && if [ ! -e /usr/local/bin/pip3 ]; then : \ 
     && wget -O /tmp/get-pip.py 'https://bootstrap.pypa.io/get-pip.py' \ 
     && python3 /tmp/get-pip.py "pip==$PYTHON_PIP_VERSION" \ 
     && rm /tmp/get-pip.py \ 
    ; fi \ 
    && pip3 install --no-cache-dir --upgrade --force-reinstall "pip==$PYTHON_PIP_VERSION" \ 
    && [ "$(pip list |tac|tac| awk -F '[()]+' '$1 == "pip" { print $2; exit }')" = "$PYTHON_PIP_VERSION" ] \ 
    \ 
    && find /usr/local -depth \ 
     \(\ 
      \(-type d -a -name test -o -name tests \) \ 
      -o \ 
      \(-type f -a -name '*.pyc' -o -name '*.pyo' \) \ 
     \) -exec rm -rf '{}' + \ 
    && apt-get purge -y --auto-remove $buildDeps \ 
    && rm -rf /usr/src/python ~/.cache 

RUN cd /usr/local/bin \ 
    && { [ -e easy_install ] || ln -s easy_install-* easy_install; } \ 
    && ln -s idle3 idle \ 
    && ln -s pydoc3 pydoc \ 
    && ln -s python3 python \ 
    && ln -s python3-config python-config 

RUN pip install uwsgi 

RUN mkdir /config 

RUN mkdir /logs 

ENV HOME /var/www 

WORKDIR /config 

ADD conf/requirements.txt /config 

RUN pip install -r /config/requirements.txt 

ADD conf/wsgi.py /config 

ADD conf/wsgi.ini /config 

ADD conf/__init__.py /config 

ADD start.sh /bin/start.sh 

RUN chmod +x /bin/start.sh 

EXPOSE 8000 

ENTRYPOINT ["start.sh", "uwsgi", "--ini", "wsgi.ini"] 

उत्तर

44

मैं श फ़ाइल, समस्या हल के शीर्ष पर

#!/bin/bash 

डाल करने के लिए भूल गया था।

+1

धन्यवाद! बालों को खींचने के एक घंटे बाद, और आर्किटेक्चर (आर्म/एक्स 64 इत्यादि) से मेल खाने के 10 बार जांचने के बाद, आपका जवाब दिन बचाता है! p.s .: मेरे जैसे विंडोज उपयोगकर्ता एक लिनक्स डॉकर बनाने के लिए, अपनी फाइल से विंडोज़ न्यूलाइन (\ r) वर्णों को हटाने के लिए मत भूलना, अन्यथा त्रुटियां दिखाई दे रही हैं! –

+0

मुझे इस समाधान का उपयोग करने के बाद यह काम मिल गया, इससे पहले मुझे एक ही समस्या का सामना करना पड़ा। –

+1

मेरे पास मेरे "#!/Bin/bash" के सामने एक जगह थी – ArunTejCh

1

फ़ाइल लाइन एंडिंग्स (सीआरएलएफ) के साथ फ़ाइल सहेजी गई है, तो इसका एक और संभावित कारण हो सकता है। यूनिक्स लाइन एंडिंग्स (एलएफ) के साथ इसे सहेजें और फ़ाइल मिलेगी।

0

मुझे आरएचईएल 7.3, डॉकर 17.05-सीई में ऑफ़लाइन लोड की गई छवि चलाने पर एक ही समस्या का सामना करना पड़ा है। ऐसा लगता है कि आरएचईएल/सेंटोस का डिफॉल्ट स्टोरेज ड्राइवर device-mapper से ओवरले में बदल गया है। ड्राइवर को वापस devicemapper करने के लिए समस्या को हल कर समस्या को ठीक किया।

dockerd --storage-driver=devicemapper 

या

/etc/docker/daemon.json 
{ 
    "storage-driver": "devicemapper" 
} 
संबंधित मुद्दे