Переменные среды с 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