我正在嘗試在 K8s cron 作業中執行多個命令。但是,日誌中僅顯示第一個作業輸出。我有這個:
containers:
- name: myjob
image: postgres
args:
- /bin/sh
- -c
- PGPASSWORD=$(echo $password) psql -h $host -p 5432 -U $username -d $db -c "\copy (select * from blah limit 1) to blah.txt" ; echo bar.txt ; cat bar.txt;
- PGPASSWORD=$(echo $password) psql -h $host -p 5432 -U $username -d $db -c "\copy (select * from foo limit 1) to foo.txt" ; date ; echo foo.txt ; cat foo.txt;
restartPolicy: OnFailure
我只看到第一個命令的輸出。我希望能夠指定多個命令並一一運行它們。
答案1
-c
只需在with&&
或;
運算子之後將它們連接在一行中
看完整答案這裡
答案2
只需透過 a 運行兩個命令Pod 中的標準流程。
command: ["/bin/sh","-c"]
args: ["command one; command two && command three"]
然而,我懷疑這是一個好主意它應該被用作最後的希望。貨櫃被設計為僅運行一個進程和 CronJobs 使用吊艙規格。
因此,我可以推薦以下內容。順序很重要。
- 如果您的任務完全獨立,請執行兩個單獨的 CronJobs。
- 在 CronJob 中運行兩個單獨的容器。如果您的容器之一失敗,CronJob 將會失敗。
- 使用
initContainers
達到某種秩序或之前的準備。