我正在尝试使用 CronJob 以 1 分钟的定期间隔运行 shell 脚本。
我在我的 openshift 模板中创建了以下 Cron 作业:
- kind: CronJob
apiVersion: batch/v2alpha1
metadata:
name: "${APPLICATION_NAME}"
spec:
schedule: "*/1 * * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: mycron-container
image: alpine:3
imagePullPolicy: IfNotPresent
command: [ "/bin/sh" ]
args: [ "/var/httpd-init/croyscript.sh" ]
volumeMounts:
- name: script
mountPath: "/var/httpd-init/"
volumes:
- name: script
configMap:
name: ${APPLICATION_NAME}-croyscript
restartPolicy: OnFailure
terminationGracePeriodSeconds: 0
concurrencyPolicy: Replace
以下是在此作业中作为卷插入的 configmap:
- kind: ConfigMap
apiVersion: v1
metadata:
name: ${APPLICATION_NAME}-croyscript
labels:
app: "${APPLICATION_NAME}"
data:
croyscript.sh: |
#!/bin/sh
if [ "${APPLICATION_PATH}" != "" ]; then
mkdir -p /var/httpd-resources/${APPLICATION_PATH}
fi
mkdir temp
cd temp
###### SOME CODE ######
此 Cron 作业正在运行。正如我所看到的那样,工作名称每 1 分钟被替换一次(按照我的工作计划)。但它没有执行 shell 脚本 croyscript.sh 我在这里做错了吗?(可能是我插入了配置映射错误,所以 Job 无法访问 shell 脚本)