每当在 Laravel AWS 管道中推送新版本时,我的环境就会被删除

My env gets deleted whenever new release is pushed in a Laravel AWS pipeline

  1. 我在 AWS Elastic Beanstalk 上安装了一个 Laravel 项目
  2. 我在服务器上创建了一个环境
  3. 我 运行 php artisan key:generate 命令并填充了我所有的环境变量

这很好用,我的应用程序启动了。但是后来我通过我的 CI 管道在我的服务器上推送了一些其他工作,但它会自动删除 env 文件。

另请注意,我已经在 .gitignore 中添加了我的环境,因此它不会推送我的环境。

我认为这是因为 Elastic Beanstalk 会在发布新版本时自动删除旧文件并创建新文件。

以下是我的 composer.json 脚本部分:

    "autoload": {
        "psr-4": {
            "App\": "app/",
            "Database\Factories\": "database/factories/",
            "Database\Seeders\": "database/seeders/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "Tests\": "tests/"
        }
    },
    "minimum-stability": "dev",
    "prefer-stable": true,
    "scripts": {
        "post-autoload-dump": [
            "Illuminate\Foundation\ComposerScripts::postAutoloadDump",
            "@php artisan package:discover --ansi"
        ],
        "post-root-package-install": [
            "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "@php artisan key:generate --ansi"
        ]
    }
}

我发现我需要在每次发布新版本时都创建 env,或者我可以在 AWS 给出的 ebextension config settings 中设置 env 变量,所以我最终将 env 变量设置到里面的配置文件ebextension.

因此,每当您通过管道发送新版本时,env 都会被删除,因为它包含在 git ignore 中是正常的。