Подождите, пока другой сервис будет запущен на этапе сборки
Если у вас есть очень простой рабочий процесс Lando для создания проекта с нуля. Он включает в себя клонирование git с открытым исходным кодом, использование composer для установки всех зависимостей и запуска его установщика из CLI.
Я использую рецепт ЛАМПЫ в качестве основы для этого потока:
name: project
recipe: lamp
config:
webroot: framework/
services:
appserver:
build:
- /bin/sh -c "if [ -d framework ]; then rm -Rf framework; fi"
- git clone --depth 1 --branch 1.0 https://github.com/framework/framework.git /app/framework
- cd /app/framework && composer install
run:
- php /app/framework/install.php --db_server=database --db_name=lamp --db_user=lamp --db_password=lamp
- cd /app/framework && composer install
Теперь проблема в том, что установка обычно завершается неудачно, поскольку служба базы данных еще не запущена.
Итак, я попытался поиграть с событиями, пытаясь post-rebuild
post-start
и т. д. Однако, это часто случается, приводя к множественным установкам композитора.
Мой ход мыслей был о конкретных действиях с конкретными контейнерами, например:
events:
post-start:
- database: install-framework
Но очевидно, что это не работает, так как он будет запускать эту команду внутри службы базы данных.
Итак, вкратце, где я могу разместить команды сборки, основанные на запуске служб? Это вообще возможно?