Docker中的Laravel没有识别环境variables
我在Docker中使用环境variables时遇到了问题。
出于某种原因,Laravel无法看到我在Dockerfile中设置的环境variables。 像APP_KEY,APP_ENV等,但是当我SSH进入docker集装箱:
docker exec -it [container_name] bash
并运行以下命令:
php artisan tinker > print_r($_ENV)
环境variables存在并被设置为适当的值。 但是,当我试图在刀片模板中做同样的事情时,我根本没有看到APP_KEY,APP_ENVvariables。 我已经编辑了Docker容器中的php.ini
文件,以便它显示
variables_order = 'EGPCS'
.env
文件是我可以将环境variables传递给Laravel的唯一方法吗?
我感谢你的帮助。
干杯
我解决了它! 其实我的一个朋友给了我线索。
原来是FPMconfiguration是删除由Elastic Beanstalk设置的环境variables。
基于这个文件: http : //php.net/manual/en/install.fpm.configuration.php
clear_env boolean
清晰的FPM工作环境。 通过在添加此池configuration中指定的envvariables之前清除工作器中的环境,防止任意环境variables到达FPM工作器进程。 自PHP 5.4.27,5.5.11和5.6.0。 默认值:是。
所以在你的php-fpm.conf
文件中查找这个variables并将其设置如下:
clear_env = no
而且你很好走! 然后,您的Laravel应用程序可以通过使用env()
来获取在Elastic Beanstalk中设置的环境variables
我希望能帮助别人。 干杯!
使用EB CLI而不是.env
,可以将环境variables传递到Elastic Beanstalk中的.env
容器。
例如:
$ eb setenv APP_KEY=xxx APP_ENV=xxx
请阅读以下文档: http : //docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb3-setenv.html
- docker-compose .env和direnv .envrc
- 通过应用程序使用的jar文件传递环境variables
- 如何在Dockerfile中设置ENVvariables.txt文件中的内容?
- 环境variables传递给docker运行
- Docker环境variables作为计算的参数
- Docker – 与引用的卷容器共享环境variables
- 如何设置将root用户的所有环境variables复制到另一个特定的用户
- 使用sudo运行docker-compose时,在docker-compose.yml文件中进行variablesreplace
- 带有env的Docker命令var prepended(local env var)