standard_init_linux.go: 211: उपयोगकर्ता प्रक्रिया निष्पादित करें "निष्पादन त्रुटि त्रुटि"


11

मैं अजगर स्क्रिप्ट के लिए डॉकरीफाइल का निर्माण कर रहा हूं जो मिनीब्यूब विंडोज 10 सिस्टम में चलेगा नीचे मेरा डायरराइल है

नीचे दिए गए आदेश का उपयोग करके docker का निर्माण करना docker build -t python-helloworld .

और minikube docker दानव में लोड हो रहा है docker save python-helloworld | (eval $(minikube docker-env) && docker load)

डॉकटर फ़ाइल

FROM python:3.7-alpine
#add user group and ass user to that group
RUN addgroup -S appgroup && adduser -S appuser -G appgroup

#creates work dir   
WORKDIR /app

#copy python script to the container folder app
COPY helloworld.py /app/helloworld.py

#user is appuser
USER appuser

ENTRYPOINT  ["python", "/app/helloworld.py"]

pythoncronjob.yml फ़ाइल (क्रॉन जॉब फ़ाइल)

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: python-helloworld
spec:
  schedule: "*/1 * * * *"
  jobTemplate:
    spec:
      backoffLimit: 5
      template:
        spec:
          containers:
          - name: python-helloworld
            image: python-helloworld
            imagePullPolicy: IfNotPresent
            command: [/app/helloworld.py]
          restartPolicy: OnFailure

नीचे यह कुबेरनेट्स नौकरी चलाने की आज्ञा है kubectl create -f pythoncronjob.yml

लेकिन नीचे त्रुटि नौकरी पाने के लिए scuessfully नहीं चल रहा है, लेकिन जब यू अकेले Dockerfile अपने काम ठीक से भाग गया

standard_init_linux.go: 211: "निष्पादित प्रारूप त्रुटि" के कारण उपयोगकर्ता प्रक्रिया निष्पादित करें

जवाबों:


10

मैं देख सकता हूं कि आप command: [/app/helloworld.py]yaml फाइल में कमांड जोड़ते हैं।

इसलिए आपको (डॉकरीफ़ाइल में) की आवश्यकता है:

RUN chmod +x /app/helloworld.py

आपकी pyफ़ाइल के लिए shebang सेट करें :

#!/usr/bin/env python # whatever your defualt python to run the script

या कमांड को उसी तरह सेटअप करें जैसा आपने किया था Dockerfile


7

लॉगस्टैश कंटेनर चलाते समय मुझे हाल ही में समस्या का सामना करना पड़ा

standard_init_linux.go: 211: "निष्पादित प्रारूप त्रुटि" के कारण उपयोगकर्ता प्रक्रिया निष्पादित करें

यह नोट किया गया था कि एंट्रीपॉइंट पर शबंग लाइन (#! / Bin / sh) दर्ज की गई थी। वह दूसरी लाइन में टाइप की गई थी।

जब स्क्रिप्ट में पहली पंक्ति के रूप में शेबंग लाइन बनाई जाती है, तो त्रुटि दूर हो गई और "docker run -it logstashimage: latest sh" ने पूरी तरह से काम किया।


मैं इसे एक मामूली मोड़ के साथ सामना करता हूं, मेरे पास शेबंग नहीं है और इसे वापस जोड़ना था।
जॉन सिउ

2

यदि आप Windows पर docker चलाते हैं, तो दो अन्य कारण इस समस्या को उठा सकते हैं :

  • स्क्रिप्ट लाइन अंत LF नहीं हैं (लिनक्स)
  • स्क्रिप्ट एन्कोडिंग utf-8 + BOM होनी चाहिए
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.