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/"
Но мое приложение не будет развернуто с такой конфигурацией. Был бы признателен за некоторую помощь, чтобы увидеть где я ошибаюсь.
Спасибо.
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"
Просто обратите внимание, что большинство контейнеров PHP, которые AWS использует в Elastic Beanstalk, автоматически развертываются при запуске composer.phar install сейчас. Вы должны иметь возможность пропустить этот шаг, если у вас нет папки "поставщики". Если вы хотите запустить его вручную, описанные выше методы должны работать, но вам нужно только что-то вроде упомянутого @kewubenduben.
Если вы пытаетесь получить доступ к частному удаленному хранилищу, ознакомьтесь с вопросами и ответами здесь: AWS Elastic Beanstalk с использованием PHP с Частные репозитории композиторов, бесстыдный плагин.
Последовал предложению @tbjes и переместил файлы, связанные с композитором, за пределы корневого каталога моего документа в корневой каталог проекта, и после быстрого тестирования все, похоже, работает "из коробки" без необходимости запускать composer через файлы конфигурации .ebxtensions.