问题描述
我正在使用Openshift部署django应用程序,该应用程序使用pyodbc连接到外部数据库。 目前,我想使用yaml文件在openshift中安排cronjob。创建cronjob没问题,但是在运行时抛出此错误: (“ IM004”,“ [IM004] [unixODBC] [驱动程序管理器] SQL_HANDLE_HENV上驱动程序的SQLAllocHandle失败(0)(SQLDriverConnect)”)
在运行容器时,由于Openshift覆盖uid,因此发生了此错误。我通过以下解决方法解决了该错误:https://github.com/VeerMuchandi/mssql-openshift-tools/blob/master/mssql-client/uid_entrypoint.sh
运行cronjob时,此错误再次弹出,这可能是由于相同的uid问题引起的。以下是我用于安排cronjob的yaml文件:
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: samplecron
spec:
securityContext:
runAsUser: 1001
runAsGroup: 0
schedule: "*/5 * * * *"
concurrencyPolicy: "Forbid"
startingDeadlineSeconds: 60
suspend:
successfulJobsHistoryLimit: 3
failedJobsHistoryLimit: 3
jobTemplate:
spec:
template:
metadata:
labels:
parent: "cronjobpi"
spec:
containers:
- name: samplecron
image: docker-registry.default.svc:5000/image-name
volumeMounts:
- mountPath: /path-to-mount
name: "volume-name"
command: [ "python3","/script.py" ]
volumes:
- name: "vol-name"
restartPolicy: Never
有人可以建议我如何在cronjob的yaml文件中提供相同用户名的信息,或者以其他任何方式解决此问题?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)