Estoy intentando ejecutar varios comandos en un trabajo cron de K8. Sin embargo, en los registros solo se muestran los resultados de los primeros trabajos. Tengo esto:
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
Solo veo el resultado del primer comando. Me gustaría poder especificar varios comandos y ejecutarlos uno por uno.
Respuesta1
simplemente únelos en una sola línea después -c
con el operador &&
u;
Ver la respuesta completaaquí
Respuesta2
Sólo puedo ejecutar dos comandos por unProcedimiento estándar en Pod.
command: ["/bin/sh","-c"]
args: ["command one; command two && command three"]
Sin embargo,dudo que sea una buena ideay debería utilizarse como última esperanza. ContenedoresEstán diseñados para ejecutar un solo proceso.y uso de CronJobsEspecificación de la cápsula.
Por lo tanto, puedo recomendar las siguientes cosas. El orden importa.
- Ejecute dos CronJobs separados si sus tareas son completamente independientes.
- Ejecute dos contenedores separados en CronJob. El CronJob fallará si uno de sus contenedores falla.
- Usar
initContainers
para lograr algún orden o preparación antes.