standard_init_linux.go: 211: exec kullanıcı işlemi “exec format hatası” na neden oldu


12

Minikube windows 10 sisteminde çalışacak python komut dosyası için Dockerfile oluşturuyorum benim Dockerfile

Aşağıdaki komutu kullanarak liman işçisini oluşturma docker build -t python-helloworld .

ve minikube liman işçisi iblisine docker save python-helloworld | (eval $(minikube docker-env) && docker load)

Docker Dosyası

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 dosyası (cron iş dosyası)

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

Bu Kubernetes işini çalıştırma komutu aşağıdadır kubectl create -f pythoncronjob.yml

Ancak aşağıdaki hata işini almak titizlikle çalışmıyor ancak Dockerfile'ı tek başına çalıştırdığında iyi çalışıyor

standard_init_linux.go: 211: exec kullanıcı işlemi "exec format hatası" na neden oldu

Yanıtlar:


11

Komutu command: [/app/helloworld.py]yaml dosyasına eklediğinizi görebiliyorum .

yani (Dockerfile dosyasında):

RUN chmod +x /app/helloworld.py

shebang pydosyasını dosyanıza ayarlayın:

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

veya komutu, yaptığınız gibi kurun Dockerfile


7

Son zamanlarda bir günlük kümesi kapsayıcısını çalıştırırken sorunla karşılaştım

standard_init_linux.go: 211: exec kullanıcı işlemi "exec format hatası" na neden oldu

Entrypoint.sh dosyasındaki shebang satırının (#! / Bin / sh) entrypoint.sh dosyasının ilk satırı yerine ikinci satıra yazıldığını fark ettim.

Mesele satırı komut dosyasında ilk satır olarak yapıldığında, hata gitti ve "docker run -it logstashimage: latest sh" mükemmel çalıştı.


Ben hafif bir bükülme ile karşılaşıyorum, ben shebang yok ve geri eklemek zorunda kaldı.
John Siu

2

Windows'ta docker çalıştırırsanız başka bir iki neden de bu sorunu artırabilir :

  • komut dosyaları satır sonları LF (linux) değil
  • kodlama kodları utf-8 + BOM olmalıdır
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.