From 3c96485e3d69c206e79547095b6d71838681561a Mon Sep 17 00:00:00 2001 From: Andras Bacsai Date: Fri, 13 Oct 2023 21:39:49 +0200 Subject: [PATCH] fix: custom dockerfile location for dockerfile buildpack fix: able to use custom port for git cloning --- .../Project/New/GithubPrivateRepositoryDeployKey.php | 4 ++-- app/Jobs/ApplicationDeploymentJob.php | 9 +++++++-- .../2023_03_27_081716_create_applications_table.php | 1 + 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/app/Http/Livewire/Project/New/GithubPrivateRepositoryDeployKey.php b/app/Http/Livewire/Project/New/GithubPrivateRepositoryDeployKey.php index 522eb8845..e8974436a 100644 --- a/app/Http/Livewire/Project/New/GithubPrivateRepositoryDeployKey.php +++ b/app/Http/Livewire/Project/New/GithubPrivateRepositoryDeployKey.php @@ -98,7 +98,6 @@ class GithubPrivateRepositoryDeployKey extends Component 'name' => generate_random_name(), 'git_repository' => $this->git_repository, 'git_branch' => $this->branch, - 'git_full_url' => $this->git_repository, 'build_pack' => 'nixpacks', 'ports_exposes' => $this->port, 'publish_directory' => $this->publish_directory, @@ -112,7 +111,6 @@ class GithubPrivateRepositoryDeployKey extends Component 'name' => generate_random_name(), 'git_repository' => $this->git_repository, 'git_branch' => $this->branch, - 'git_full_url' => "git@$this->git_host:$this->git_repository.git", 'build_pack' => 'nixpacks', 'ports_exposes' => $this->port, 'publish_directory' => $this->publish_directory, @@ -158,6 +156,8 @@ class GithubPrivateRepositoryDeployKey extends Component $this->git_host = $this->repository_url_parsed->getHost(); $this->git_repository = $this->repository_url_parsed->getSegment(1) . '/' . $this->repository_url_parsed->getSegment(2); $this->git_repository = Str::finish("git@$this->git_host:$this->git_repository", '.git'); + } else { + $this->git_repository = $this->repository_url; } $this->git_source = 'other'; } diff --git a/app/Jobs/ApplicationDeploymentJob.php b/app/Jobs/ApplicationDeploymentJob.php index dc1607234..f8197d41d 100644 --- a/app/Jobs/ApplicationDeploymentJob.php +++ b/app/Jobs/ApplicationDeploymentJob.php @@ -510,8 +510,13 @@ class ApplicationDeploymentJob implements ShouldQueue, ShouldBeEncrypted } } if ($this->application->deploymentType() === 'deploy_key') { + $port = 22; + preg_match('/(?<=:)\d+(?=\/)/', $this->application->git_repository, $matches); + if (count($matches) === 1) { + $port = $matches[0]; + } $private_key = base64_encode($this->application->private_key->private_key); - $git_clone_command = "GIT_SSH_COMMAND=\"ssh -o LogLevel=ERROR -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i /root/.ssh/id_rsa\" {$git_clone_command} {$this->application->git_full_url} {$this->basedir}"; + $git_clone_command = "GIT_SSH_COMMAND=\"ssh -p $port -o LogLevel=ERROR -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i /root/.ssh/id_rsa\" {$git_clone_command} {$this->application->git_repository} {$this->basedir}"; $git_clone_command = $this->set_git_import_settings($git_clone_command); $commands = collect([ executeInDocker($this->deployment_uuid, "mkdir -p /root/.ssh"), @@ -799,7 +804,7 @@ COPY ./nginx.conf /etc/nginx/conf.d/default.conf"); ); } else { $this->execute_remote_command([ - executeInDocker($this->deployment_uuid, "docker build --network host -f {$this->workdir}/Dockerfile {$this->build_args} --progress plain -t $this->production_image_name {$this->workdir}"), "hidden" => true + executeInDocker($this->deployment_uuid, "docker build --network host -f {$this->workdir}/{$this->dockerfile_location} {$this->build_args} --progress plain -t $this->production_image_name {$this->workdir}"), "hidden" => true ]); } } diff --git a/database/migrations/2023_03_27_081716_create_applications_table.php b/database/migrations/2023_03_27_081716_create_applications_table.php index ec91f0737..5e298986f 100644 --- a/database/migrations/2023_03_27_081716_create_applications_table.php +++ b/database/migrations/2023_03_27_081716_create_applications_table.php @@ -23,6 +23,7 @@ return new class extends Migration $table->string('git_repository'); $table->string('git_branch'); $table->string('git_commit_sha')->default('HEAD'); + // TODO: remove this column, it is not used $table->string('git_full_url')->nullable(); $table->string('docker_registry_image_name')->nullable();