Я пытаюсь запустить несколько команд в задании cron K8s. Однако в журналах отображается только вывод первого задания. У меня это:
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
or&&
;
Посмотреть полный ответздесь
решение2
Просто можно запустить две команды однимстандартная процедура в Под.
command: ["/bin/sh","-c"]
args: ["command one; command two && command three"]
Однако,Я сомневаюсь, что это хорошая идея.и его следует использовать как последнюю надежду. Контейнерыпредназначены для запуска только одного процессаи CronJobs используютСпецификация стручка.
Поэтому я могу порекомендовать следующее: порядок имеет значение.
- Запустите два отдельных задания CronJob, если ваши задачи полностью независимы.
- Запустите два отдельных контейнера в CronJob. CronJob даст сбой, если один из ваших контейнеров выйдет из строя.
- Использовать
initContainers
для достижения некоторого порядка или подготовки заранее.