簡體   English   中英

將當前日期傳遞給 kubernetes cronjob

[英]Pass current date to kubernetes cronjob

我有一個接收環境變量名稱SINCE_DATE的 docker 圖像。
我創建了一個 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")

您可以通過overwriting container入口點命令並設置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           

筆記:

Nginx docker-entrypoint.sh位於/如果你的鏡像有不同的路徑,你應該使用它,例如exec /usr/local/bin/docker-entrypoint.sh

這個 Stack question中可以找到非常相似的用例

這個解決方案是什么?

它將使用相同的腳本overwrite容器ENTRYPOINT中設置的默認腳本,但預先設置動態環境變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM