Jak ustawić zmienną środowiskową przed uruchomieniem skryptu wewnątrz hooków / instalacji?

16

Tworzę prosty urok, aby pobrać moją aplikację web symfony2 z git i wdrożyć ją na ec2.

Po pobraniu źródła z gita chcę uruchomić kompozytora, aby rozwiązać zależności, ale wciąż pojawia się ten błąd:

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

W moim skrypcie hook / install uruchamiam kompozytora, używając komendy poniżej

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

Też próbowałem

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

Jak ustawić HOME lub COMPOSER_HOME, aby można było wykonać to polecenie?

Amit
źródło
Proszę o kontakt (link na mojej stronie profilu), chciałbym współpracować z tobą w celu uzyskania przepływu pracy w symfony w Ubuntu!
Jorge Castro,
Jasne @JorgeCastro, wyślemy Ci e-maila, gdy mój urok się skończy.
Amit,

Odpowiedzi:

20

HOME nie jest ustawiony w hakach Juju, jest tylko kilka zmiennych środowiskowych.

Powinieneś być w stanie po prostu biec

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

który ustawi zmienną środowiskową przed uruchomieniem php.

Marco Ceppi
źródło
Dzięki Marco. To się udało. Próbowałem podobnie, ale dawałem; przed php, to powinno również zadziałać. COMPOSER_HOME = $ {katalog_aplikacji}; / usr / bin / php composer.phar install
Amit
4
Nie, ;nie sprawi, że COMPOSER_HOME stanie się zmienną środowiskową, tylko zmienną. Potrzebny byłby export COMPOSER_HOME=${app_dir};eksport , która zmieni zmienną środowiskową. Co robiłem jest po prostu ustawić go jako zmiennej środowiskowej dla właśnie tego polecenia.
Marco Ceppi