Laravel和Envoy的环境变量

时间:2016-08-09 21:42:28

标签: php laravel laravel-envoy

我正在开发一个部署脚本,它可以完成一些额外的任务。这些任务需要一些敏感的密码,所以我想到了Laravel .env变量,以避免硬编码。是否可以在Envoy任务中使用我声明的.env变量?

2 个答案:

答案 0 :(得分:1)

以下是允许我在Envoy中正确使用环境变量的原因:

@include('vendor/autoload.php');
@setup
  $dotenv = new \Dotenv\Dotenv(__DIR__);
  $dotenv->load();
@endsetup

@servers(['staging' => getenv('STAGING_SSH_HOST')])

## Get remote git status.    
@task('git.status', ['on' => 'staging'])
    echo "Fetching git status on staging environment ..."
    cd {{ getenv('STAGING_ROOT') }}
    git status
@endtask

Drinke9提出的非常相似的方法对我不起作用,我必须使用此特定设置。

答案 1 :(得分:0)

@task('env')
  db_name=$(cat .env | grep DB_USERNAME)
  echo $db_name
@endtask

OR

@include('vendor/autoload.php')
@servers(['web' => 'foot@xxx.xxxx.com'])

@setup
    Dotenv\Dotenv::create(__DIR__)->load();
    $db=$_ENV['DB_DATABASE']
@endsetup

@task('env')
    echo {{$db}}
@endtask