Переменные среды с Laravel и Envoy

Я разрабатываю сценарий развертывания, который выполняет некоторые дополнительные задачи. Эти задачи требуют паролей, поэтому я подумал о переменных.env Laravel, чтобы избежать их жесткого кодирования. Можно ли использовать мои объявленные переменные.env в задачах Envoy?

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, у меня не сработал, мне пришлось использовать эту конкретную настройку.

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

ИЛИ

@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
Другие вопросы по тегам