Подождите, пока другой сервис будет запущен на этапе сборки

Если у вас есть очень простой рабочий процесс 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-rebuildpost-start и т. д. Однако, это часто случается, приводя к множественным установкам композитора.

Мой ход мыслей был о конкретных действиях с конкретными контейнерами, например:

events:
    post-start:
        - database: install-framework

Но очевидно, что это не работает, так как он будет запускать эту команду внутри службы базы данных.

Итак, вкратце, где я могу разместить команды сборки, основанные на запуске служб? Это вообще возможно?

0 ответов

Другие вопросы по тегам