From 4db0b183684648b165a8f54408c3f3bec315507d Mon Sep 17 00:00:00 2001 From: jurgenhaas <juergen.haas@lakedrops.com> Date: Thu, 12 Jan 2023 16:03:11 +0100 Subject: [PATCH] docker/gitlab-drupal-ci#17 Save solution to find the correct self container --- bin/volume.php | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/bin/volume.php b/bin/volume.php index 31300a1..414f280 100644 --- a/bin/volume.php +++ b/bin/volume.php @@ -3,15 +3,27 @@ function readContainerConfig() { 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) { + return []; } $output = []; exec('docker container inspect ' . $id, $output); - return json_decode(implode('', $output), TRUE)[0]; + return json_decode(implode('', $output), TRUE, 512, JSON_THROW_ON_ERROR)[0]; } catch (\Exception $ex) { // Ignore. -- GitLab