fix(docker): handle commas in container label values (#11477)

This commit is contained in:
Andras Bacsai 2026-08-24 00:25:55 +02:00 committed by GitHub
parent 16352fad23
commit 3da7f5a5a5
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 18 additions and 4 deletions

View file

@ -166,11 +166,13 @@ function format_docker_labels_to_json(string|array $rawOutput): Collection
$outputArray = explode(',', $outputLine);
return collect($outputArray)
->map(function ($outputLine) {
return explode('=', $outputLine);
})
->mapWithKeys(function ($outputLine) {
return [$outputLine[0] => $outputLine[1]];
$label = explode('=', $outputLine, 2);
if (count($label) !== 2) {
return [];
}
return [$label[0] => $label[1]];
});
})[0];
}

View file

@ -94,6 +94,18 @@
->toBe(['first', 'third']);
});
it('filters service containers when another Docker label contains commas', function () {
$containers = collect([
[
'ID' => 'app',
'Labels' => 'traefik.http.routers.app.rule=Host(`one.example.com`,`two.example.com`),coolify.name=app-service-uuid',
],
]);
expect(filterServiceSubContainersByName($containers, 'app-service-uuid')->pluck('ID')->all())
->toBe(['app']);
});
it('does not interpolate the requested service name into the docker ps shell command', function () {
$source = file_get_contents(__DIR__.'/../../../bootstrap/helpers/docker.php');