diff --git a/src/Handler.php b/src/Handler.php index a0ddd44491f4823f907d347a5f28a16464b9cbb9..d473919417210209e4425e525dedb785f500a0ed 100644 --- a/src/Handler.php +++ b/src/Handler.php @@ -793,15 +793,26 @@ class Handler extends BaseHandler { */ private function readContainerConfig(): array { try { + $testString = 'This is a test file for LakeDrops GitLab CI'; + $filename = '/tmp/' . random_int(100,999) . '.test'; + file_put_contents($filename, $testString); $output = []; - exec('basename "$(cat /proc/1/cpuset)"', $output); - $id = reset($output); - if ($id === '/') { - $id = getenv('COMPOSE_PROJECT_NAME') . '_l3d'; + exec('docker ps -q', $output); + $id = NULL; + foreach ($output as $id) { + $output = []; + exec('docker exec ' . $id . ' cat ' . $filename . ' 2>&1', $output); + if (reset($output) === $testString) { + // Found the container. + break; + } + } + unlink($filename); + if ($id !== NULL) { + $output = []; + exec('docker container inspect ' . $id, $output); + return json_decode(implode('', $output), TRUE, 512, JSON_THROW_ON_ERROR)[0]; } - $output = []; - exec('docker container inspect ' . $id, $output); - return json_decode(implode('', $output), TRUE)[0]; } catch (\Exception $ex) { // Ignore.