Почему мое приложение Docker Laravel (Sail) не отображает переменные `.env` в веб-браузере, но показывает в Tinker?

У меня есть переменная .env в моем приложении Laravel, которая не извлекается из файла только тогда, когда я пытаюсь получить доступ к веб-приложению.

Если я попытаюсь получить доступ к значению конфигурации из Tinker (например, config('clients.stripe.secretKey')), правильное значение отображается, как и ожидалось, в командной строке.

Если я попытаюсь использовать эту переменную конфигурации в клиенте API через веб-браузер, я получу сообщение об ошибке, говорящее о том, что для настроенного ключа установлено значение заполнителя, скопированное из .env.example.

Обновлено: включен вывод ошибок, хотя вывод ошибок буквально говорит вам то же самое, что и то, что я указал в предыдущем абзаце.

Предоставлен недействительный ключ API: test_str*****cret

Если я попытаюсь вывести значение, используя указанную выше функцию config() внутри контроллера (в веб-браузере), я также получу значение заполнителя из .env.example.

Я сделал следующее без успеха:

  • sail artisan config:clear
  • sail artisan cache:clear
  • sail composer dumpautoload
  • sail composer update
  • проверил ковыряться внутри самого контейнера через докер, конфиги появляются

Обновлено: сам разобрался и принял ответ. Просто повторно сгенерируйте ключ приложения.

Можете ли вы буквально показать нам ошибку: «Я получаю сообщение об ошибке, говорящее о том, что для настроенного ключа установлено значение заполнителя»

matiaslauriti 25.04.2023 02:51

Ваше приложение работает в Sail (докере), так как же оно будет доступно снаружи контейнера? Также о какой буквальной ошибке вы говорили.

geertjanknapen 25.04.2023 09:34

Добавлено фактическое сообщение об ошибке. Не совсем уверен, в чем смысл вашего первого вопроса, @geertjanknapen, учитывая его риторический характер. Если вы хотите переформулировать это в актуальный вопрос, я буду рад ответить на него.

dmcoding 25.04.2023 18:05

Это полный файл docker-compose, если не показывать полный файл.

geertjanknapen 26.04.2023 08:20

Возможно, вы захотите показать соответствующую часть вашего файла конфигурации: config('clients.client_name.key')), когда у вас есть ошибка, покажите всю трассировку стека до этой ошибки. Ваша проблема может заключаться в том, чтобы поместить ключ API в кавычки в файл .env.

UnderDog 27.04.2023 06:57

@UnderDog спасибо за предложение! Я сделаю это немедленно.

dmcoding 27.04.2023 23:51
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
3
6
80
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Чтобы исправить это, я запустил

sail artisan optimize:clear

с последующим

sail artisan key:generate

Другие вопросы по теме