Meh*_*ein 3 php environment-variables laravel docker docker-compose
一切顺利,
我有一个项目,最近从 laravel 6 升级到 laravel 8。
它对于开发和生产都进行了 dockerized,不幸的是,更新后,应用程序不会检索 docker-compose 文件传递的 env 值,并且仅当我将 .env 文件传递到容器时才有效。
此时,在容器内我仍然可以执行以下操作:
php artisan tinker>> print_r(env("DB_HOST"))&&print_r($_ENV)并查看 env 值,即使不传递文件本身
因此 compose 文件将 env 值传递给容器,但 laravel 应用程序不会获取它们
还有其他人在 Laravel 8 中遇到过这个问题吗?
先感谢您,
这可能是一个缓存问题。还请确保通过config()调用访问所有环境变量,而不是env()直接访问 - 如果您正在缓存配置,这将无法解决。
这是我用于生产 Laravel 图像的入口点脚本:
#!/bin/sh
artisan="/usr/local/bin/php /var/www/artisan"
$artisan down
$artisan cache:clear
$artisan config:clear
$artisan config:cache
$artisan event:clear
$artisan event:cache
$artisan route:clear
$artisan view:clear
$artisan up
apache2-foreground
Run Code Online (Sandbox Code Playgroud)
这将清除所有缓存并在启动容器时再次缓存它们,以确保重新启动后所有值都是最新的。
| 归档时间: |
|
| 查看次数: |
2402 次 |
| 最近记录: |