简体   繁体   English

Laravel和Envoy的环境变量

[英]Environment variables with Laravel and Envoy

I'm developing a deployment script which makes some extra tasks. 我正在开发一个执行一些额外任务的部署脚本。 Those tasks require some sensitive passwords so I thought about Laravel .env variables to avoid hardcoding them. 这些任务需要一些敏感的密码,因此我考虑了Laravel .env变量,以避免对其进行硬编码。 Is it possible to use my declared .env variables within Envoy tasks? 是否可以在Envoy任务中使用我声明的.env变量?

The following is what has allowed me to properly use environment variables with Envoy: 以下是使我可以在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

The very similar approach presented by drinke9 did not work for me, I had to use this specific setup. Drinke9提出的非常相似的方法对我不起作用,我必须使用此特定设置。

@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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM