Como definir a variável de ambiente antes de executar o script dentro de hooks / install?

16

Eu criei um encanto simples para obter meu symfony2 webapp do git e implementá-lo no ec2.

Depois de obter a fonte do git, desejo executar o compositor para resolver dependências, mas continuo recebendo este erro:

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

Estou executando o compositor usando o comando abaixo dentro do meu script hooks / install

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

Eu também tentei

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

Como posso definir HOME ou COMPOSER_HOME para que este comando possa ser executado?

Amit
fonte
Entre em contato comigo (link na minha página de perfil), eu adoraria trabalhar com você para obter um fluxo de trabalho symfony no Ubuntu!
Jorge Castro
Claro @JorgeCastro, enviarei um e-mail assim que meu encanto estiver completo.
Amit

Respostas:

20

HOME não está definido nos ganchos Juju, apenas algumas variáveis ​​de ambiente são.

Você deve ser capaz de executar

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

que definirá a variável de ambiente antes de executar o php.

Marco Ceppi
fonte
Obrigado Marco. Isso funcionou. Eu estava tentando semelhante, mas estava dando; antes do php, isso também deveria ter funcionado. COMPOSER_HOME = $ {app_dir}; / usr / bin / php composer.phar install
Amit
4
Não, ;isso não tornará COMPOSER_HOME uma variável de ambiente, apenas uma variável. Você precisaria que export COMPOSER_HOME=${app_dir};a exportação a torne uma variável de ambiente. O que eu fiz é apenas configurá-lo como uma variável de ambiente para apenas esse comando.
Marco Ceppi