gpt4 book ai didi

php - Laravel 8 没有读取 docker-compose 传递的环境值

转载 作者:行者123 更新时间:2023-12-05 02:43:35 24 4
gpt4 key购买 nike

希望你一切都好

我有一个项目,最近从 laravel 6 升级到了 laravel 8。

它已针对开发和生产环境进行了 docker 化,不幸的是,在更新后,应用程序不会检索由 docker-compose 文件传递​​的 env 值,并且仅当我将 .env 文件传递​​给容器时才有效。

此时,在容器内我仍然可以做:php artisan tinker >> print_r(env("DB_HOST")) && print_r($_ENV)即使没有通过文件本身

因此 compose 文件将 env 值传递给容器,但 laravel 应用程序不接收它们

还有其他人在使用 laravel 8 时遇到过这个问题吗?

提前谢谢你,

最佳答案

这可能是缓存问题。还请确保通过 config() 调用访问所有 env 变量,而不是直接访问 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

这会清除所有缓存并在启动容器时再次缓存它们,以确保所有值在重启后都是最新的。

关于php - Laravel 8 没有读取 docker-compose 传递的环境值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66867528/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com