Ответ 1
Я думаю, что единственный способ сделать это - с условиями оболочки:
commands:
make-directory:
command: |
if [ ! -f "${DIR}" ]; then
mkdir "${DIR}"
fi
См. более крупный пример в jcabi-beanstalk-maven-plugin.
Мне бы хотелось использовать условную конфигурацию .ebextensions, но я не знаю, как ее использовать, мой текущий случай:
Один из компонентов конфигурации .ebextensions создает папку, на самом деле папку, которая должна быть создана только один раз, потому что, если я развертываю приложение во второй раз или более, у меня есть ошибка, и ошибка говорит "папка уже существуют".
Итак, мне нужно дать условное значение, если папка уже существует, не нужно снова запускать команду для создания папки.
Если у кого-то есть какие-либо идеи или указания относительно того, как это может быть достигнуто, я был бы очень признателен. Спасибо!
Я думаю, что единственный способ сделать это - с условиями оболочки:
commands:
make-directory:
command: |
if [ ! -f "${DIR}" ]; then
mkdir "${DIR}"
fi
См. более крупный пример в jcabi-beanstalk-maven-plugin.
Файлы конфигурации .ebextensions позволяют выполнять условную команду с помощью директивы test:
по команде. Затем команда запускается только в том случае, если тест верен (возвращает 0).
Пример .ebextensions/create_dir.config
file:
commands:
01_create_dir:
test: test ! -d "${DIR}"
command: mkdir "${DIR}"
Другой пример (фактически протестированный на EB) для условного запуска script, если каталог отсутствует:
commands:
01_intall_foo:
test: test ! -d /home/ec2-user/foo
command: "/home/ec2-user/install-foo.sh"
cwd: "/home/ec2-user/"
Редкая документация от AWS находится здесь:
PS.
Если вам просто нужно условно создать каталог, вы можете сделать это без условностей, используя параметр -p
для mkdir
, чтобы условно создать каталог следующим образом:
commands:
01_create_dir:
command: mkdir -p "${DIR}"