Kry*_*ten 8 git configuration docker laravel-5
我正试着.env在Laravel 5中进行配置.
这是我的故事:我正在将现有的Laravel 4应用程序转换为Laravel 5.我目前有不同的环境(local和production),并且级联配置系统运行良好.我将环境特定的应用程序配置放在单独的文件夹下app/config.
我的应用程序目前在Docker容器中部署(和开发).为了构建部署,我使用Dockerfile来构建我的应用程序映像(基于我的master分支),然后将其推送到存储库并在生产服务器上提取.
所以现在我正在尝试将我的配置转换为Laravel 5,我有点困惑.我读到的所有内容都说您将.env文件添加到.gitignore文件中,因此它不会包含在您的存储库中.我理解这样做的安全原因 - 不要将敏感的API密钥/密码/提交到您的存储库.但是我不确定如果我的生成.env文件不是存储库的一部分,如何确保我的生成文件包含在我的构建步骤中.
我的想法是将我的生产.env文件放在我的开发环境之外的文件系统中,然后在需要时复制它.
这是管理这个的"最佳实践"吗?这是别人怎么做的?
谢谢!
.env 文件将包含您将在配置文件中使用 env('variable') 应用的变量。最佳实践是在配置文件中设置与环境无关的任何参数(意味着在生产和开发中都适用),并在 .env 文件中设置任何环境相关变量
示例:在您的开发和临时服务器上,您将使用 gmail smtp 发送电子邮件,但在生产服务器上您将使用您自己的 smtp 服务器。只需按如下方式设置电子邮件配置:
配置文件:
return [
'driver' => 'smtp',
'host' => env('MAIL_HOST'),
'port' => env('MAIL_PORT'),
'from' => ['address' => env('MAIL_FROM_EMAIL'), 'name' => env('MAIL_FROM_NAME')],
'encryption' => 'tls',
'username' => env('MAIL_USERNAME'),
'password' => env('MAIL_PASSWORD'),
'sendmail' => '/usr/sbin/sendmail -bs',
'pretend' => false
];
Run Code Online (Sandbox Code Playgroud)
开发和登台上的 .env
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_FROM_EMAIL=email@gmail.com
MAIL_FROM_NAME=email@gmail.com
MAIL_USERNAME=email@gmail.com
MAIL_PASSWORD=password
Run Code Online (Sandbox Code Playgroud)
生产环境中的 .env
MAIL_HOST=smtp.domain.com
MAIL_PORT=587
MAIL_FROM_EMAIL=noreply@domain.com
MAIL_FROM_NAME=noreply@domain.com
MAIL_USERNAME=noreply@domain.com
MAIL_PASSWORD=password
Run Code Online (Sandbox Code Playgroud)
切勿在 git 存储库中包含 .env 文件。相反,制作一个副本并将其命名为“.env.sample”并添加它。因此,一旦克隆存储库,您的开发团队就可以设置自己的 .env 文件。您需要将 .env 添加到 .gitignore 以防止其添加到存储库。
| 归档时间: |
|
| 查看次数: |
647 次 |
| 最近记录: |