如何在钩子/安装中运行脚本之前设置环境变量?

Ami*_*mit 17 php bash juju

我正在创建一个简单的魅力来从 git 获取我的 symfony2 webapp 并将其部署在 ec2 上。

从 git 获取源代码后,我想运行 composer 来解决依赖关系,但我不断收到此错误:

INFO juju context.go:221 worker/uniter: HOOK   The HOME or COMPOSER_HOME environment variable must be set for composer to run correctly
Run Code Online (Sandbox Code Playgroud)

我在钩子/安装脚本中使用以下命令运行作曲家

juju-log "Running composer"
/usr/bin/php composer.phar install
Run Code Online (Sandbox Code Playgroud)

我也试过

juju-log "Running composer"
COMPOSER_HOME=${app_dir};/bin/bash -c "/usr/bin/php composer.phar install"
Run Code Online (Sandbox Code Playgroud)

如何设置 HOME 或 COMPOSER_HOME 以便可以执行此命令?

Mar*_*ppi 21

HOME 没有在 Juju 钩子中设置,只有几个环境变量。

你应该可以运行

COMPOSER_HOME="/path/you/want/to/be/home" php composer.phar install
Run Code Online (Sandbox Code Playgroud)

这将在执行 php 之前设置环境变量。

  • 不,`;` 不会使 COMPOSER_HOME 成为环境变量,只是一个变量,您需要 `export COMPOSER_HOME=${app_dir};` 导出使其成为环境变量。我所做的只是将它设置为_just_ 那个命令的环境变量。 (4认同)