web-dev-qa-db-ja.com

standard_init_linux.go:211:execユーザープロセスが「exec形式エラー」を引き起こした

pythonのDockerfileを構築しています。以下のminikube windows 10システムで実行されるスクリプトは、私のDockerfileです。

以下のコマンドを使用してドッカーを構築する_docker build -t python-helloworld ._

そしてそれをminikube docker demon docker save python-helloworld | (eval $(minikube docker-env) && docker load)にロードします

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

pythoncronjob.ymlファイル(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
_

以下は、このKubernetesジョブを実行するコマンド_kubectl create -f pythoncronjob.yml_です。

しかし、以下のエラージョブを取得することはうまく実行されていませんが、Dockerfileを単独で実行した場合、その作業はうまくいきます

standard_init_linux.go:211:execユーザープロセスが「exec形式エラー」を引き起こした

7
Pandit Biradar

Windowsでdockerを実行すると、別の2つの理由でこの問題が発生する可能性があります。

  • スクリプトの行末がLF(linux)ではない
  • スクリプトのエンコードはutf-8 + BOMである必要があります
1
DennisKot