Подождите, пока другой сервис будет запущен на этапе сборки - PullRequest
0 голосов
/ 27 февраля 2019

Если есть очень простой рабочий процесс Lando для настройки проекта с нуля.Он включает в себя клонирование git с открытым исходным кодом, использование composer для установки всех зависимостей и запуска его установщика из CLI.

Я использую рецепт LAMP в качестве основы для этого потока:

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

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

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

...