AWS Эластичный бобовый стебель и композитор


У меня есть приложение с зависимостями композитора, которое я хочу развернуть в контейнере эластичного бобового стебля. Однако мой файл composer.json отсутствует в корневой папке проекта. Корневой каталог моего проекта имеет следующую структуру:

- .ebextensions
- scripts
- www (Webroot)
  - composer.json

И я установил корневой каталог документа в /www в параметрах конфигурации контейнера. Проблема в том, что мне нужно установить composer на поле и запустить сценарий установки composer, чтобы добавить зависимости проекта. Я понимаю, что во время развертывания EB проверит, есть ли файл composer.json в корневом каталоге проекта, и установит Composer, но в этом случае мой файл composer.json находится в подкаталоге.

Я подумал, что можно использовать .ebextensions для добавления команд для установки Composer и зависимостей после развертывания приложения. Я создал файл .ebextensions/01-composer.config со следующими командами контейнера:

container_commands:
  01-install-composer:
    command: "curl -sS https://getcomposer.org/installer | php"
  02-install-packages:
    command: "php composer.phar install"
    cwd: "/var/app/current/www/"

Но мое приложение не будет развернуто с такой конфигурацией. Был бы признателен за некоторую помощь, чтобы увидеть где я ошибаюсь.

Спасибо.

Author: Adrian Walls, 2013-07-08

3 answers

Composer уже установлен по умолчанию в PHP AMI Beanstalk.

Также учтите, что команды container_command выполняются через "/var/app/ondeck", а не в текущем режиме. Попробуйте что-то вроде этого:

container_commands:
  01-install-packages:
    command: "composer.phar install -d /var/app/ondeck/www"
 15
Author: Ker Ruben Ramos, 2013-07-08 14:00:30

Просто обратите внимание, что большинство контейнеров PHP, которые AWS использует в Elastic Beanstalk, автоматически развертываются при запуске composer.phar install сейчас. Вы должны иметь возможность пропустить этот шаг, если у вас нет папки "поставщики". Если вы хотите запустить его вручную, описанные выше методы должны работать, но вам нужно только что-то вроде упомянутого @kewubenduben.

Если вы пытаетесь получить доступ к частному удаленному хранилищу, ознакомьтесь с вопросами и ответами здесь: AWS Elastic Beanstalk с использованием PHP с Частные репозитории композиторов, бесстыдный плагин.

 5
Author: four43, 2017-05-23 12:17:31

Последовал предложению @tbjes и переместил файлы, связанные с композитором, за пределы корневого каталога моего документа в корневой каталог проекта, и после быстрого тестирования все, похоже, работает "из коробки" без необходимости запускать composer через файлы конфигурации .ebxtensions.

 1
Author: Adrian Walls, 2013-07-09 08:32:25