Cron с эластичностью c beanstalk и symfony - не работает - PullRequest
0 голосов
/ 29 мая 2020

Я новичок в разработке ie и возился с Symfony и AWS. У меня есть приложение Symfony, развернутое через beanstalk elasti c, и я каждую минуту пытаюсь добавить задание cron.

В основном я хочу, чтобы задание cron выполняло созданную мной команду Symfony: update-pings, которая должна обновлять некоторые поля в моей базе данных RDS.

Я использую 02 -crons.config в моем каталоге ./ebextensions, который выглядит следующим образом (в значительной степени вдохновлен AWS документацией https://aws.amazon.com/fr/premiumsupport/knowledge-center/cron-job-elastic-beanstalk/):

files:
  "/etc/cron.d/mycron":
    mode: "000644"
    owner: root
    group: root
    content: |
      * * * * * root php /var/app/current/bin/console app:update-pings


commands:
  remove_old_cron:
    command: "rm -f /etc/cron.d/mycron.bak"

Ну, во-первых, это не работает, поля в БД не обновляются. Итак, я подключился в S SH к своему экземпляру EC2, чтобы посмотреть, что происходит.

Файл mycron в /etc/cron.d/ был правильно создан с * * * * * root php /var/app/current/bin/console app:update-pings внутри

Теперь я попытался заменить содержимое этого файла простым * * * * * root echo test >> /tmp/cron_temp, это работает отлично, строка с 'test' добавляется в мой cron_temp файл каждую минуту

Я пробовал запустить начальную команду php /var/app/current/bin/console app:update-pings вручную на экземпляре, отлично работает как ec2-user

Когда я переключаюсь на пользователя root с помощью sudo su -, команда все еще работает. Но когда я пытаюсь запустить его с помощью sudo, он терпит неудачу, не уверен, что это имеет какое-то отношение:

In EnvVarProcessor.php line 171:
Environment variable not found: "DATABASE_DBNAME".

Я считаю, что мне чего-то не хватает с linux пользователями / правами, но я Я новичок ie с этим и не могу найти, что происходит

Есть идеи? Заранее большое спасибо ! :)

Редактировать 1: я знаю, что записываю в файл стерр команды в файл, и я получаю ту же ошибку переменной среды, что и при попытке запустить команду вручную с помощью sudo

In EnvVarProcessor.php line 171:
Environment variable not found: "DATABASE_DBNAME".

Команда отлично работает без sudo, хотя

...