web-dev-qa-db-fra.com

standard_init_linux.go: 211: le processus utilisateur exec a provoqué une "erreur de format exec"

Je construis le Dockerfile pour python qui fonctionnera dans le système minikube windows 10 ci-dessous est mon Dockerfile

Construire le docker en utilisant la commande ci-dessous docker build -t python-helloworld .

et le charger dans le démon docker minikube docker save python-helloworld | (eval $(minikube docker-env) && docker load)

Fichier Docker

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"]

fichier pythoncronjob.yml (fichier de tâche cron)

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

Vous trouverez ci-dessous la commande pour exécuter ce travail Kubernetes kubectl create -f pythoncronjob.yml

Mais obtenir le travail d'erreur ci-dessous ne fonctionne pas correctement, mais lorsque vous avez exécuté le Dockerfile seul, son travail fonctionne correctement

standard_init_linux.go: 211: le processus utilisateur exec a provoqué une "erreur de format exec"

7
Pandit Biradar

Deux autres raisons pourraient soulever ce problème si vous exécutez Docker sur Windows:

  • les fins de ligne des scripts ne sont pas LF (linux)
  • l'encodage des scripts doit être utf-8 + BOM
1
DennisKot