Comment définir la variable d'environnement avant d'exécuter le script dans hooks / install?

16

Je crée un charme simple pour obtenir ma webapp symfony2 depuis git et la déployer sur ec2.

Après avoir obtenu la source de git, je veux exécuter Composer pour résoudre les dépendances mais je reçois toujours cette erreur:

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

J'exécute le compositeur en utilisant la commande ci-dessous dans mon script hooks / install

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

J'ai aussi essayé

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

Comment puis-je définir HOME ou COMPOSER_HOME pour que cette commande puisse être exécutée?

Amit
la source
Veuillez me contacter (lien dans ma page de profil), j'adorerais travailler avec vous pour obtenir un workflow symfony dans Ubuntu!
Jorge Castro,
Bien sûr, @JorgeCastro, je vous enverrai un e-mail une fois mon charme terminé.
Amit

Réponses:

20

HOME n'est pas défini dans les crochets Juju, seules quelques variables d'environnement le sont.

Vous devriez pouvoir simplement exécuter

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

qui définira la variable d'environnement avant d'exécuter php.

Marco Ceppi
la source
Merci Marco. Ça a marché. J'essayais similaire mais je donnais; avant php, cela aurait aussi dû marcher. COMPOSER_HOME = $ {app_dir}; / usr / bin / php composer.phar install
Amit
4
Non, ;cela ne fera pas de COMPOSER_HOME une variable d'environnement, juste une variable, vous auriez besoin que export COMPOSER_HOME=${app_dir};l'exportation en fasse une variable d'environnement. Ce que j'ai fait, c'est simplement le définir comme une variable d'environnement pour juste cette commande.
Marco Ceppi