微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在使用 capistrano 部署的 symfony 项目的暂存中缺少 env 变量,但在哪里设置它?

如何解决在使用 capistrano 部署的 symfony 项目的暂存中缺少 env 变量,但在哪里设置它?

我尝试使用 capistrano 创建我的 staging 环境。但是我遇到了缺少环境变量的错误..

tail -f api-staging/current/var/logs/prod-{current_date}.log

PHP.CRITICAL: Uncaught Exception: Environment variable not found: "{project}__DATABASE_NAME_STAGING". {"exception":"[object] (Symfony\\Component\\DependencyInjection\\Exception\\EnvNotFoundException(code: 0): Environment variable not found: \"{project}__DATABASE_NAME_STAGING\". at /var/www/{project}/api-staging/shared/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Container.PHP:445

我将在 default_env 文件中发送我的 staging.rb

...
set :stage,"staging"
set :symfony_env,"staging"

set :branch,"staging"
set :deploy_to,'/var/www/{project}/api-staging'
set :controllers_to_clear,[]
set :composer_install_flags,'--prefer-dist --no-interaction --optimize-autoloader'

set :default_env,{ 
    ...
    '{project}__DATABASE_NAME_STAGING' => '{project}-staging',...
    'SYMFONY_ENV' => 'staging'
}
...

parameters_staging.yml.dist

parameters:
...    
   database_name: '%env({project}__DATABASE_NAME_STAGING)%'
...

我在 .env/api-staging/api-staging/current 中有一个 /api-staging/shared 文件。 该变量可通过 printenv 命令查看。

还有一个 .env.dist 文件

app_staging.PHP

require __DIR__.'/../vendor/autoload.PHP';
Debug::enable();

if (file_exists(__DIR__ . '/../.env')) {
    $dotenv = new Dotenv();
    $dotenv->load(__DIR__ . '/../.env');
}

$kernel = new AppKernel('staging',false);

$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request,$response);

capistrano 部署脚本:

➜  {project}-api git:(staging) ✗ cap staging deploy
  INFO [d063be0e] Running /usr/bin/env mkdir -p /tmp as {project}-@deploy-server.net
  INFO [d063be0e] Finished in 0.400 seconds with exit status 0 (successful).
  INFO Uploading /tmp/git-ssh-{project}-staging-peter.sh 100.0%
  INFO [4b870bae] Running /usr/bin/env chmod 700 /tmp/git-ssh-{project}-staging.sh as {project}-@deploy-server.net
  INFO [4b870bae] Finished in 0.093 seconds with exit status 0 (successful).
  INFO [a548962d] Running /usr/bin/env git ls-remote git@github.com:{project}/{project}-api-mobile.git HEAD as {project}-@deploy-server.net
  INFO [a548962d] Finished in 2.485 seconds with exit status 0 (successful).
  INFO [d426eb0c] Running /usr/bin/env mkdir -p /var/www/{project}.com/api-staging/shared /var/www/{project}.com/api-staging/releases as {project}-@deploy-server.net
  INFO [d426eb0c] Finished in 0.097 seconds with exit status 0 (successful).
  INFO [c04dd98c] Running /usr/bin/env mkdir -p /var/www/{project}.com/api-staging/shared/app/logs /var/www/{project}.com/api-staging/shared/vendor /var/www/{project}.com/api-staging/shared/web/vendor /var/www/{project}.com/api-staging/shared/web/assets /var/www/{project}.com/api-staging/shared/web/uploads/user_data as {project}-@deploy-server.net
  INFO [c04dd98c] Finished in 0.129 seconds with exit status 0 (successful).
  INFO [7ada2395] Running /usr/bin/env mkdir -p /var/www/{project}.com/api-staging/shared/app/config as {project}-@deploy-server.net
  INFO [7ada2395] Finished in 0.095 seconds with exit status 0 (successful).
  INFO The repository mirror is at /var/www/{project}.com/api-staging/repo
  INFO [59b8f0ed] Running /usr/bin/env git remote set-url origin git@github.com:{project}/{project}-api-mobile.git as {project}-@deploy-server.net
  INFO [59b8f0ed] Finished in 0.136 seconds with exit status 0 (successful).
  INFO [d95369a4] Running /usr/bin/env git remote update --prune as {project}-@deploy-server.net
  INFO [d95369a4] Finished in 6.133 seconds with exit status 0 (successful).
  INFO [887d5b22] Running /usr/bin/env mkdir -p /var/www/{project}.com/api-staging/releases/20210120093201 as {project}-@deploy-server.net
  INFO [887d5b22] Finished in 0.101 seconds with exit status 0 (successful).
  INFO [b692f95a] Running /usr/bin/env git archive staging | /usr/bin/env tar -x -f - -C /var/www/{project}.com/api-staging/releases/20210120093201 as {project}-@deploy-server.net
  INFO [b692f95a] Finished in 1.008 seconds with exit status 0 (successful).
  INFO [8cd4eca0] Running /usr/bin/env echo "bef560403dcfd018aab49385c0177d8b944a0ae9" > REVISION as {project}-@deploy-server.net
  INFO [8cd4eca0] Finished in 0.111 seconds with exit status 0 (successful).
  INFO [1e4d6687] Running /usr/bin/env mkdir -p /var/www/{project}.com/api-staging/releases/20210120093201/app/config as {project}-@deploy-server.net
  INFO [1e4d6687] Finished in 0.094 seconds with exit status 0 (successful).
  INFO [b17014c7] Running /usr/bin/env ln -s /var/www/{project}.com/api-staging/shared/app/config/parameters.yml /var/www/{project}.com/api-staging/releases/20210120093201/app/config/parameters.yml as {project}-@deploy-server.net
  INFO [b17014c7] Finished in 0.101 seconds with exit status 0 (successful).
  INFO [5668f9db] Running /usr/bin/env ln -s /var/www/{project}.com/api-staging/shared/app/config/parameters_staging.yml /var/www/{project}.com/api-staging/releases/20210120093201/app/config/parameters_staging.yml as {project}-@deploy-server.net
  INFO [5668f9db] Finished in 0.097 seconds with exit status 0 (successful).
  INFO [7b9dcfe3] Running /usr/bin/env mkdir -p /var/www/{project}.com/api-staging/releases/20210120093201/app /var/www/{project}.com/api-staging/releases/20210120093201 /var/www/{project}.com/api-staging/releases/20210120093201/web /var/www/{project}.com/api-staging/releases/20210120093201/web/uploads as {project}-@deploy-server.net
  INFO [7b9dcfe3] Finished in 0.097 seconds with exit status 0 (successful).
  INFO [7801f563] Running /usr/bin/env ln -s /var/www/{project}.com/api-staging/shared/app/logs /var/www/{project}.com/api-staging/releases/20210120093201/app/logs as {project}-@deploy-server.net
  INFO [7801f563] Finished in 0.098 seconds with exit status 0 (successful).
  INFO [2cd97276] Running /usr/bin/env ln -s /var/www/{project}.com/api-staging/shared/vendor /var/www/{project}.com/api-staging/releases/20210120093201/vendor as {project}-@deploy-server.net
  INFO [2cd97276] Finished in 0.095 seconds with exit status 0 (successful).
  INFO [327ccbdf] Running /usr/bin/env ln -s /var/www/{project}.com/api-staging/shared/web/vendor /var/www/{project}.com/api-staging/releases/20210120093201/web/vendor as {project}-@deploy-server.net
  INFO [327ccbdf] Finished in 0.096 seconds with exit status 0 (successful).
  INFO [57a49794] Running /usr/bin/env rm -rf /var/www/{project}.com/api-staging/releases/20210120093201/web/assets as {project}-@deploy-server.net
  INFO [57a49794] Finished in 0.111 seconds with exit status 0 (successful).
  INFO [c397cb05] Running /usr/bin/env ln -s /var/www/{project}.com/api-staging/shared/web/assets /var/www/{project}.com/api-staging/releases/20210120093201/web/assets as {project}-@deploy-server.net
  INFO [c397cb05] Finished in 0.096 seconds with exit status 0 (successful).
  INFO [ff3ef280] Running /usr/bin/env ln -s /var/www/{project}.com/api-staging/shared/web/uploads/user_data /var/www/{project}.com/api-staging/releases/20210120093201/web/uploads/user_data as {project}-@deploy-server.net
  INFO [ff3ef280] Finished in 0.108 seconds with exit status 0 (successful).
  INFO [24f32f8a] Running /usr/bin/env mkdir -pv app/cache as {project}-@deploy-server.net
  INFO [24f32f8a] Finished in 0.093 seconds with exit status 0 (successful).
  INFO [a7cdccc4] Running PHP /var/www/{project}.com/api-staging/shared/composer.phar install --prefer-dist --no-interaction --optimize-autoloader as {project}-@deploy-server.net
  INFO [a7cdccc4] Finished in 6.522 seconds with exit status 0 (successful).
  INFO [8d1b8d47] Running /usr/bin/env PHP bin/console cache:warmup  --no-debug as {project}-@deploy-server.net
  INFO [8d1b8d47] Finished in 5.853 seconds with exit status 0 (successful).
  INFO [4b4cb3e6] Running /usr/bin/env PHP bin/console assets:install web --symlink --no-debug as {project}-@deploy-server.net
  INFO [4b4cb3e6] Finished in 0.293 seconds with exit status 0 (successful).
  INFO [1924899f] Running /usr/bin/env ln -s /var/www/{project}.com/api-staging/releases/20210120093201 /var/www/{project}.com/api-staging/releases/current as {project}-@deploy-server.net
  INFO [1924899f] Finished in 0.093 seconds with exit status 0 (successful).
  INFO [0049a359] Running /usr/bin/env mv /var/www/{project}.com/api-staging/releases/current /var/www/{project}.com/api-staging as {project}-@deploy-server.net
  INFO [0049a359] Finished in 0.094 seconds with exit status 0 (successful).
  INFO Keeping 2 of 3 deployed releases on deploy-server.net
  INFO [ca63560c] Running /usr/bin/env rm -rf /var/www/{project}.com/api-staging/releases/20210118171711 as {project}-@deploy-server.net
  INFO [ca63560c] Finished in 2.403 seconds with exit status 0 (successful).
  INFO [60924dca] Running /usr/bin/env echo "Branch staging (at bef560403dcfd018aab49385c0177d8b944a0ae9) deployed as release 20210120093201 by peter" >> /var/www/{project}.com/api-staging/revisions.log as {project}-@deploy-server.net
  INFO [60924dca] Finished in 0.106 seconds with exit status 0 (successful).

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。