Come impostare la variabile d'ambiente prima di eseguire lo script all'interno di hook / install?


16

Sto creando un semplice fascino per ottenere la mia webapp symfony2 da git e distribuirla su ec2.

Dopo aver ottenuto la fonte da Git, voglio eseguire il compositore per risolvere le dipendenze ma continuo a ricevere questo errore:

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

Sto eseguendo il compositore usando il comando seguente all'interno dei miei hook / script di installazione

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

Ho anche provato

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

Come posso impostare HOME o COMPOSER_HOME in modo che questo comando possa essere eseguito?


Vi prego di contattarmi (link nella mia pagina del profilo), mi piacerebbe lavorare con voi per ottenere un flusso di lavoro di symfony in Ubuntu!
Jorge Castro,

Certo @JorgeCastro, ti invierò un'email una volta che il mio fascino sarà completo.
Amit

Risposte:


20

HOME non è impostato negli hook di Juju, lo sono solo alcune variabili d'ambiente.

Dovresti essere in grado di correre

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

che imposterà la variabile d'ambiente prima di eseguire php.


Grazie Marco Ha funzionato Stavo provando simili ma stavo dando; prima di php, anche quello avrebbe dovuto funzionare. COMPOSER_HOME = $ {app_dir}; / usr / bin / php composer.phar install
Amit

4
No, il ;non renderà COMPOSER_HOME una variabile d'ambiente, solo una variabile. Avresti bisogno che export COMPOSER_HOME=${app_dir};l'esportazione la trasformi in una variabile d'ambiente. Quello che ho fatto è semplicemente impostarlo come variabile d'ambiente solo per quel comando.
Marco Ceppi
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.