【问题标题】:Laravel Enviroment Variables are not working within Google Cloud RunLaravel 环境变量在 Google Cloud Run 中不起作用
【发布时间】:2022-01-03 07:24:25
【问题描述】:

我已经成功地将 Laravel 项目部署到 Cloud Run 的次数太多了,但现在

看起来 Cloud Run 无法读取环境变量(我已经在 Cloud Run 实例的变量和秘密部分中指定了)。

我正在使用 Laravel 8。出于测试目的(并确保 Cloud Run 正在读取环境变量),我在 api.php 部分添加了一个简单的路由,如下所示:

Route::get('/test-env', function () {
    echo 'debuggeando<br>';
   dd(config('variables.test_env'));
});

在我的config/variables.php 中,我有以下内容:

<?php
return [
    'test_env' => env('TEST_ENV', 'no se encontro la variable')
];

这是我的最终结果:

我做错了什么?为什么 Cloud Run 无法从 Laravel 读取环境变量?

【问题讨论】:

    标签: laravel google-cloud-platform laravel-8 google-cloud-run


    【解决方案1】:

    你只能让 Laravel 获取环境变量,反之则不行。

    config(['test_env' => getenv('TEST_ENV')]);
    

    可能需要运行 php artisan config:clearphp artisan config:cache。另一种选择可能是在部署期间生成一个新的.env 文件,这仅转换为:在缓存之前已经定义了值。

    【讨论】:

    • 谢谢。事实上,整个 Laravel 项目中的任何环境变量都没有从 Cloud Run 中检测到(这包括所有 APP_ENV 变量以使 Laravel 工作)。我的 TEST_ENV 变量是为了测试目的而制作的。我无法在 Cloud Run 中执行任何 php artisan 命令,因为我将我的项目构建到 Dockerfile 中,然后 Cloud Run 获取该文件并将其上传并构建为容器。
    猜你喜欢
    • 2022-10-02
    • 1970-01-01
    • 1970-01-01
    • 2019-07-12
    • 2021-02-13
    • 2021-07-23
    • 2019-01-24
    • 2020-12-06
    • 2020-09-29
    相关资源
    最近更新 更多