问题
My App will not deploy because it is missing required environment variables.
When I set these from within Forge, they appear. As soon as I hit deploy they all disappear, then my deploy fails.
I am using Symfony2 with Digital Ocean - but shouldn't make a difference, the issue is all environment variables get deleted prior to a deploy. That can't be right?
Here is the error message from Symfony, but it is due to the environment variable not being set (in forge I can see it get deleted right before a deploy)
- Installing tedivm/stash-bundle (v0.4.2)
Loading from cache
- Installing twig/extensions (v1.2.0)
Loading from cache
Generating autoload files
Creating the "app/config/parameters.yml" file
PHP Fatal error: Class 'Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle' not found in /home/forge/beta.dashboardhub.io/app/AppKernel.php on line 31
PHP Stack trace:
PHP 1. {main}() /home/forge/beta.dashboardhub.io/app/console:0
PHP 2. Symfony\Component\Console\Application->run() /home/forge/beta.dashboardhub.io/app/console:27
PHP 3. Symfony\Bundle\FrameworkBundle\Console\Application->doRun() /home/forge/beta.dashboardhub.io/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:126
PHP 4. Symfony\Component\HttpKernel\Kernel->boot() /home/forge/beta.dashboardhub.io/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Application.php:70
PHP 5. Symfony\Component\HttpKernel\Kernel->initializeBundles() /home/forge/beta.dashboardhub.io/app/bootstrap.php.cache:2343
PHP 6. AppKernel->registerBundles() /home/forge/beta.dashboardhub.io/app/bootstrap.php.cache:2513
Fatal error: Class 'Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle' not found in /home/forge/beta.dashboardhub.io/app/AppKernel.php on line 31
Call Stack:
0.0002 225112 1. {main}() /home/forge/beta.dashboardhub.io/app/console:0
0.0253 3126784 2. Symfony\Component\Console\Application->run() /home/forge/beta.dashboardhub.io/app/console:27
0.0279 3329440 3. Symfony\Bundle\FrameworkBundle\Console\Application->doRun() /home/forge/beta.dashboardhub.io/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:126
0.0279 3329664 4. Symfony\Component\HttpKernel\Kernel->boot() /home/forge/beta.dashboardhub.io/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Application.php:70
0.0279 3329960 5. Symfony\Component\HttpKernel\Kernel->initializeBundles() /home/forge/beta.dashboardhub.io/app/bootstrap.php.cache:2343
0.0279 3330560 6. AppKernel->registerBundles() /home/forge/beta.dashboardhub.io/app/bootstrap.php.cache:2513
Script Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::clearCache handling the post-install-cmd event terminated with an exception
[RuntimeException]
An error occurred when executing the "'cache:clear --no-warmup'" command.
install [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-dev] [--no-plugins] [--no-custom-installers] [--no-autoloader] [--no-scripts] [--no-progress] [-v|vv|vvv|--verbose] [-o|--optimize-autoloader] [--ignore-platform-reqs] [packages1] ... [packagesN]
回答1:
This is an issue / feature of Forge. It does reset the environment variables before a deploy.
Here is the response from their support...
Yeah that has been a point of confusion I will fix today. Basically the original thought was if you are installing a new project you will want new environment variables, but many people set the environment variables before installing.
Taylor Otwell
So it looks like it will be fixed soon.
I have not been able to find a Forge Ticket, Twitter Account or Deployment changelog to follow this progress.
Temporary Solution / Work around
No there is not currently a deployment change log. I will let you know when it is ready to go. It’s a little trickier than it sounds… for now, you could install the project and just un-check the “Install Composer” step, then add your environment variables, then click the “Deploy” button so it picks up the composer install step.
Taylor Otwell
来源:https://stackoverflow.com/questions/29512315/laravel-forge-deployment-environment-variable-issue