Ошибка при запуске команды на cron заданиях kubernetes
Я пытаюсь настроить cronjobs в моем кластере kubernetes, у меня есть микросервис, который импортирует данные из другого API в мою базу данных. Я хочу запускать эту команду каждые 10 минут. У меня есть следующий манифест cronjob
apiVersion: v1
items:
- apiVersion: batch/v1beta1
kind: CronJob
metadata:
labels:
chart: cronjobs-0.1.0
name: cron-cronjob1
namespace: default
spec:
concurrencyPolicy: Forbid
failedJobsHistoryLimit: 1
jobTemplate:
spec:
template:
metadata:
labels:
app: cron
cron: cronjob1
spec:
containers:
command: ["/usr/local/bin/php"]
args: ["artisan bulk:import"]
env:
- name: DB_CONNECTION
value: postgres
- name: DB_HOST
value: postgres
- name: DB_PORT
value: "5432"
- name: DB_DATABASE
value: xxx
- name: DB_USERNAME
value: xxx
- name: DB_PASSWORD
value: xxxx
- name: APP_KEY
value: xxxxx
image: registry.xxxxx.com/xxxx:2ecb785-e927977
imagePullPolicy: IfNotPresent
name: cronjob1
ports:
- containerPort: 80
name: http
protocol: TCP
imagePullSecrets:
- name: xxxxx
restartPolicy: OnFailure
terminationGracePeriodSeconds: 30
schedule: '* * * * *'
successfulJobsHistoryLimit: 3
Я получаю следующую ошибку, когда планировщик cronjob раскручивает модуль
Не удалось открыть входной файл: ремесленник навалом: импорт
Как решить это?
2 ответа
Вот исправление
args:
- "/bin/bash"
- "-c"
- "/var/www/html/artisan bulk:import"
Предполагаемый файл artisan
существует и php
может выполнить это:
command: ["/usr/local/bin/php"]
args: ["artisan", "bulk:import"]
Таким образом, php будет передано два аргумента вместо одного, который, как предполагает php, является файлом для выполнения.