У меня есть два сервера Elastic Beanstalk для одной и той же базы кода. Один - производство, другой - постановка.
Я пытаюсь использовать условную container_command
для создания crontab, который будет работать только в рабочей среде. Эти условные операторы прекрасно работают для обычных commands
, но всегда оцениваются как истинные для container_commands
. Однако, согласно другим постам и примерам SO, они должны работать одинаково для обоих типов команд.
Вот что я пытаюсь сделать:
container_commands:
01_activate_cronjob:
test: '[ "${BEANSTALK_ENVIRONMENT}" == "production" ]'
command: "cat .ebextensions/my_cron_file > /etc/cron.d/my_cron_file && chmod 644 /etc/cron.d/my_cron_file"
leader_only: true
BEANSTALK_ENVIRONMENT
- это переменная Elastic Beanstalk, установленная в моих конфигурациях beanstalk, и я подтвердил, что echo $BEANSTALK_ENVIRONMENT
выводит «production» и «staging» соответственно.
Я также пробовал эту test
строку:
test: test $BEANSTALK_ENVIRONMENT == production
Кроме того, я проверил правильность этих тестовых команд в терминале.
test $BEANSTALK_ENVIRONMENT == production && echo yes || echo no
# outputs "yes" on the production server and "no" on the staging server
Я знаю, что могу взломать / исправить это, вставив условный оператор в часть command
; однако, как я сказал ранее, все, что есть в сети, показывает, что это должно работать, поэтому я в тупике.