開発環境、ステージング、本番環境で読み込む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;
}