Як встановити змінну середовища перед запуском сценарію всередині гачків / встановлення?


16

Я створюю простий шарм, щоб отримати мій symfony2 webapp від git і розгорнути його на ec2.

Отримавши джерело від git, я хочу запустити композитора для вирішення залежностей, але я продовжую отримувати цю помилку:

INFO juju context.go:221 worker/uniter: HOOK   The HOME or COMPOSER_HOME environment variable must be set for composer to run correctly

Я запускаю композитора, використовуючи команду нижче, всередині мого сценарію гачок / встановлення

juju-log "Running composer"
/usr/bin/php composer.phar install

Я також спробував

juju-log "Running composer"
COMPOSER_HOME=${app_dir};/bin/bash -c "/usr/bin/php composer.phar install"

Як я можу встановити HOME або COMPOSER_HOME, щоб ця команда могла бути виконана?


Будь ласка, зв'яжіться зі мною (посилання на моїй сторінці профілю), я хотів би попрацювати з вами над тим, щоб отримати симфонічний робочий процес в Ubuntu!
Хорхе Кастро

Звичайно, @JorgeCastro, я надішлю вам електронний лист, коли мій шарм буде завершений.
Аміт

Відповіді:


20

HOME не встановлено в гачках Juju, є лише кілька змінних середовища.

Ви повинні вміти просто бігати

COMPOSER_HOME="/path/you/want/to/be/home" php composer.phar install

який встановить змінну середовища перед виконанням php.


Дякую Марко. Це спрацювало. Я намагався подібне, але давав; перед php, це теж повинно було працювати. COMPOSER_HOME = $ {app_dir}; / usr / bin / php composer.phar install
Amit

4
Ні, команда ;COMPOSER_HOME не зробить змінною середовища, а лише змінною. export COMPOSER_HOME=${app_dir};Експорт знадобиться змінною середовища. Що я зробив, це просто встановити його як змінну середовища для саме цієї команди.
Марко Цеппі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.