Я очень плохо знаком с шеф-поваром и нахожусь на последней части головоломки. Я пытаюсь создать файл .env в корне проекта, используя переменные, заданные в AWS Opsworks. Я не могу на всю жизнь понять это.
У кого-нибудь есть какие-либо предложения или рабочий рецепт шеф-повара для этого? Я погуглил до конца.
Вы обычно не используете .env
файл, если вы используете AWS *. Файл .env имитирует переменные среды, которые фактически устанавливаются на уровне операционной системы, это полезно, когда вы разрабатываете локально или на хостинговой платформе, которая не позволяет вам устанавливать их самостоятельно.
Итак, все, что вам нужно сделать, это установить переменные среды для вашего приложения в Opsworks, и все готово. Они будут загружены из операционной системы PHP и затем доступны для вашего приложения Laravel.
* Причина этого в том, что у вас обычно хранятся конфиденциальные данные, такие как база данных и учетные данные API. Вы абсолютно хотите сохранить их отдельно от вашего кода и вне контроля исходного кода.
Редактировать:
При необходимости вы можете написать .env файл во время развертывания, например, так. Вот как будет выглядеть ваш сценарий Chef:
node[:deploy].each do |application, deploy|
# write out .env file
template "#{deploy[:deploy_to]}/current/.env" do
source 'env.erb'
mode '0660'
owner deploy[:user]
group deploy[:group]
variables(
:env => deploy[:environment_variables]
)
end
end
Вот как будет выглядеть ваш файл .env:
<% @env.each do |key, value| %>
<%= key %>=<%= value %>
<% end %>
Других решений пока нет …