fix(docker-compose): respect preserveRepository when injecting --project-directory

When adding --project-directory to custom docker compose start commands,
use the application's host workdir if preserveRepository is true, otherwise
use the container workdir. Add tests for both scenarios and explicit paths.
This commit is contained in:
Andras Bacsai
2026-03-13 13:53:03 +01:00
parent 6408718ad1
commit a97612b29e
4 changed files with 59 additions and 9 deletions
+2 -1
View File
@@ -573,7 +573,8 @@ class ApplicationDeploymentJob implements ShouldBeEncrypted, ShouldQueue
if (data_get($this->application, 'docker_compose_custom_start_command')) {
$this->docker_compose_custom_start_command = $this->application->docker_compose_custom_start_command;
if (! str($this->docker_compose_custom_start_command)->contains('--project-directory')) {
$this->docker_compose_custom_start_command = str($this->docker_compose_custom_start_command)->replaceFirst('compose', 'compose --project-directory '.$this->workdir)->value();
$projectDir = $this->preserveRepository ? $this->application->workdir() : $this->workdir;
$this->docker_compose_custom_start_command = str($this->docker_compose_custom_start_command)->replaceFirst('compose', 'compose --project-directory '.$projectDir)->value();
}
}
if (data_get($this->application, 'docker_compose_custom_build_command')) {