From e1c5ace342900373bcc7cdaef5cffc421f3443ae Mon Sep 17 00:00:00 2001 From: Andras Bacsai Date: Thu, 27 Feb 2025 12:17:12 +0100 Subject: [PATCH] fix(docker): Improve Docker compose file validation process - Increase UUID length for better uniqueness - Add server existence check before validation - Implement cleanup of temporary compose file in finally block --- bootstrap/helpers/docker.php | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/bootstrap/helpers/docker.php b/bootstrap/helpers/docker.php index 59318eec5..ebbdcd5da 100644 --- a/bootstrap/helpers/docker.php +++ b/bootstrap/helpers/docker.php @@ -834,9 +834,12 @@ function generateCustomDockerRunOptionsForDatabases($docker_run_options, $docker function validateComposeFile(string $compose, int $server_id): string|Throwable { - $uuid = Str::random(10); + $uuid = Str::random(18); + $server = Server::ownedByCurrentTeam()->find($server_id); try { - $server = Server::ownedByCurrentTeam()->findOrFail($server_id); + if (! $server) { + throw new \Exception('Server not found'); + } $base64_compose = base64_encode($compose); instant_remote_process([ "echo {$base64_compose} | base64 -d | tee /tmp/{$uuid}.yml > /dev/null", @@ -848,6 +851,12 @@ function validateComposeFile(string $compose, int $server_id): string|Throwable return 'OK'; } catch (\Throwable $e) { return $e->getMessage(); + } finally { + if (filled($server)) { + instant_remote_process([ + "rm /tmp/{$uuid}.yml", + ], $server, throwError: false); + } } }