问题描述
我正在为将在 minikube windows 10 系统中运行的 python 脚本构建 Dockerfile,下面是我的 Dockerfile
I am building the Dockerfile for python script which will run in minikube windows 10 system below is my Dockerfile
使用以下命令构建 dockerdocker build -t python-helloworld .
Building the docker using the below commanddocker build -t python-helloworld .
并将其加载到 minikube docker Demon 中docker save python-helloworld |(eval $(minikube docker-env) && docker load)
and loading that in minikube docker demondocker 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 作业文件)
pythoncronjob.yml file (cron job file)
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
Below is the command to run this Kubernetes jobkubectl create -f pythoncronjob.yml
但是获得以下错误作业并没有成功运行,但是当您单独运行 Dockerfile 时,它的工作正常
But getting the below error job is not running scuessfully but when u ran the Dockerfile alone its work fine
standard_init_linux.go:211: exec 用户进程导致exec 格式错误"
standard_init_linux.go:211: exec user process caused "exec format error"
推荐答案
我可以看到你在 yaml 文件中添加了命令 command: [/app/helloworld.py]
.
I can see that you add the command command: [/app/helloworld.py]
to yaml file.
所以你需要(在 Dockerfile 中):
so you need to (in Dockerfile):
RUN chmod +x /app/helloworld.py
将shebang设置为您的py
文件:
set shebang to your py
file:
#!/usr/bin/env python # whatever your defualt python to run the script
或者像在Dockerfile
这篇关于standard_init_linux.go:211: exec 用户进程导致“exec 格式错误";的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!