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
&&
with 또는 연산자 ;
다음에 한 줄로 연결하면 됩니다 .
전체 답변 보기여기
답변2
다음을 통해 두 명령을 모두 실행하십시오.포드의 표준 절차.
command: ["/bin/sh","-c"]
args: ["command one; command two && command three"]
하지만,이것이 좋은 생각인지 의심스럽습니다.마지막 희망으로 사용해야 합니다. 컨테이너하나의 프로세스만 실행하도록 설계됨CronJobs와 함께 사용포드 사양.
따라서 다음을 추천할 수 있습니다. 순서가 중요합니다.
- 작업이 완전히 독립적인 경우 두 개의 별도 CronJob을 실행하세요.
- CronJob에서 두 개의 별도 컨테이너를 실행합니다. 컨테이너 중 하나가 실패하면 CronJob이 실패합니다.
- 사용
initContainers
어떤 질서나 준비를 이루다.