Laravel8 docker環境で読み込むenvファイルを指定する方法

開発環境、ステージング、本番環境で読み込むenvファイルは、bootstrap\app.phpで以下のようにして制御したりする。

switch ($_SERVER['SERVER_NAME'] ?? 'localhost'){
    // ローカル(開発)環境
    case 'localhost':
        $app->loadEnvironmentFrom('.env.dev');
        break;
    // ステージング環境
    case 'xxx.xxx.com':
        $app->loadEnvironmentFrom('.env.stg');
        break;
    // 本番環境
    default:
        $app->loadEnvironmentFrom('.env.prod');
        break;
}

つまり、docker環境の場合、上記のswitch文のcaseを何にしたら良いか?

nginxのdefault.confのserver_nameに指定した文字列を指定すれば良い。

server {
  listen 80;
  server_name  docker;  ←この行

※server_nameの行がない場合は追加すればOK。

上記のようにserver_nameを’docker’にした場合は、以下のようにすれば、env.dockerが読み込まれる。

switch ($_SERVER['SERVER_NAME'] ?? 'localhost'){
    // ローカル(開発)環境
    case 'localhost':
        $app->loadEnvironmentFrom('.env.dev');
        break;
    // docker環境
    case 'docker':
        $app->loadEnvironmentFrom('.env.docker');
        break;
    // ステージング環境
    case 'xxx.xxx.com':
        $app->loadEnvironmentFrom('.env.stg');
        break;
    // 本番環境
    default:
        $app->loadEnvironmentFrom('.env.prod');
        break;
}

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です