fix: ensure unique environment files are included for applications and services

This commit is contained in:
Andras Bacsai 2025-11-10 14:42:34 +01:00
parent f5fa09790e
commit b9846c08cc

View file

@ -1302,7 +1302,13 @@ function applicationParser(Application $resource, int $pull_request_id = 0, ?int
}
// Auto-inject .env file so Coolify environment variables are available inside containers
// This makes Applications behave consistently with manual .env file usage
$payload['env_file'] = ['.env'];
$existingEnvFiles = data_get($service, 'env_file');
$envFiles = collect(is_null($existingEnvFiles) ? [] : (is_array($existingEnvFiles) ? $existingEnvFiles : [$existingEnvFiles]))
->push('.env')
->unique()
->values();
$payload['env_file'] = $envFiles;
if ($isPullRequest) {
$serviceName = addPreviewDeploymentSuffix($serviceName, $pullRequestId);
}
@ -2284,7 +2290,13 @@ function serviceParser(Service $resource): Collection
}
// Auto-inject .env file so Coolify environment variables are available inside containers
// This makes Services behave consistently with Applications
$payload['env_file'] = ['.env'];
$existingEnvFiles = data_get($service, 'env_file');
$envFiles = collect(is_null($existingEnvFiles) ? [] : (is_array($existingEnvFiles) ? $existingEnvFiles : [$existingEnvFiles]))
->push('.env')
->unique()
->values();
$payload['env_file'] = $envFiles;
$parsedServices->put($serviceName, $payload);
}