我有一个接收 env var name 的 docker 映像SINCE_DATE。
我创建了一个 cronjob 来运行该容器,并且想将当前日期传递给它。
我该怎么做?
尝试这个,我得到了文字字符串date -d "yesterday 23:59"
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: my-cron
spec:
schedule: "* * * * *"
jobTemplate:
spec:
template:
spec:
restartPolicy: Never
containers:
- name: my-cron
image: {{ .Values.image.repository }}:{{ .Values.image.tag }}
imagePullPolicy: {{ .Values.image.pullPolicy }}
env:
- name: SINCE_DATE
value: $(date -d "yesterday 23:59")
Run Code Online (Sandbox Code Playgroud)
您可以通过overwriting container Entrypoint命令和 set来实现它environment variable。在你的情况下,它看起来像:
containers:
- name: my-cron
image: nginx
#imagePullPolicy: {{ .Values.image.pullPolicy }}
command:
- bash
- -c
- |
export SINCE_DATE=`date -d "yesterday 23:59"`
exec /docker-entrypoint.sh
Run Code Online (Sandbox Code Playgroud)
笔记:
Nginxdocker-entrypoint.sh位于/如果您的图像有不同的路径,您应该使用它,例如exec /usr/local/bin/docker-entrypoint.sh
可以在这个堆栈问题中找到非常相似的用例
这个解决方案有什么作用?
它将使用相同的overwrite脚本在容器中设置默认脚本,但预先动态设置环境变量。ENTRYPOINT
| 归档时间: |
|
| 查看次数: |
2157 次 |
| 最近记录: |