Wie setze ich die Umgebungsvariable, bevor ich ein Skript in hooks / install starte?

16

Ich erstelle einen einfachen Charme, um meine symfony2-Webapplikation von git zu erhalten und auf ec2 bereitzustellen.

Nachdem ich die Quelle von Git erhalten habe, möchte ich Composer ausführen, um Abhängigkeiten aufzulösen, aber ich erhalte weiterhin den folgenden Fehler:

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

Ich führe Composer mit dem folgenden Befehl in meinem Hooks / Install-Skript aus

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

Ich habe es auch versucht

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

Wie kann ich HOME oder COMPOSER_HOME so einstellen, dass dieser Befehl ausgeführt werden kann?

Amit
quelle
Bitte kontaktieren Sie mich (Link auf meiner Profilseite), ich würde gerne mit Ihnen zusammenarbeiten, um einen Symfony-Workflow in Ubuntu zu erhalten!
Jorge Castro
Sicher @JorgeCastro, ich werde Ihnen eine E-Mail senden, sobald mein Charme vollständig ist.
Amit

Antworten:

20

HOME ist nicht in den Juju Hooks gesetzt, nur ein paar Umgebungsvariablen sind.

Du solltest einfach laufen können

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

Dadurch wird die Umgebungsvariable gesetzt, bevor PHP ausgeführt wird.

Marco Ceppi
quelle
Danke Marco. Das hat funktioniert. Ich versuchte es ähnlich, gab aber; vor php hätte das auch funktionieren sollen. COMPOSER_HOME = $ {app_dir}; / usr / bin / php composer.phar installieren
Amit
4
Nein, ;COMPOSER_HOME wird nicht zu einer Umgebungsvariablen, sondern nur zu einer Variablen. Sie müssten export COMPOSER_HOME=${app_dir};den Export zu einer Umgebungsvariablen machen. Was ich getan habe , ist es einfach als eine Umgebungsvariable für nur diesen Befehl.
Marco Ceppi