feat: use docker login credentials from server

This commit is contained in:
Andras Bacsai 2023-10-17 12:35:04 +02:00
parent f5ae222a6e
commit fd488a561a
4 changed files with 10 additions and 5 deletions

View File

@ -71,6 +71,9 @@ class ApplicationDeploymentJob implements ShouldQueue, ShouldBeEncrypted
private $log_model;
private Collection $saved_outputs;
private string $serverUser = 'root';
private string $serverUserHomeDir = '/root';
public $tries = 1;
public function __construct(int $application_deployment_queue_id)
{
@ -92,7 +95,7 @@ public function __construct(int $application_deployment_queue_id)
}
$this->destination = $this->application->destination->getMorphClass()::where('id', $this->application->destination->id)->first();
$this->server = $this->destination->server;
$this->serverUser = $this->server->user;
$this->basedir = "/artifacts/{$this->deployment_uuid}";
$this->workdir = "{$this->basedir}" . rtrim($this->application->base_directory, '/');
$this->configuration_dir = application_configuration_dir() . "/{$this->application->uuid}";
@ -160,6 +163,8 @@ public function handle(): void
return "--add-host $name:$ip";
})->implode(' ');
// Get user home directory
$this->serverUserHomeDir = instant_remote_process(["echo \$HOME"], $this->server);
try {
if ($this->application->dockerfile) {
$this->deploy_simple_dockerfile();
@ -458,7 +463,7 @@ private function prepare_builder_image()
{
$pull = "--pull=always";
$helperImage = config('coolify.helper_image');
$runCommand = "docker run {$pull} -d --network {$this->destination->network} -v /:/host --name {$this->deployment_uuid} --rm -v /var/run/docker.sock:/var/run/docker.sock {$helperImage}";
$runCommand = "docker run {$pull} -d --network {$this->destination->network} -v /:/host --name {$this->deployment_uuid} --rm -v {$this->serverUserHomeDir}/.docker/config.json:/root/.docker/config.json:ro -v /var/run/docker.sock:/var/run/docker.sock {$helperImage}";
$this->execute_remote_command(
[

View File

@ -7,7 +7,7 @@
// The release version of your application
// Example with dynamic git hash: trim(exec('git --git-dir ' . base_path('.git') . ' log --pretty="%h" -n1 HEAD'))
'release' => '4.0.0-beta.87',
'release' => '4.0.0-beta.88',
// When left empty or `null` the Laravel environment will be used
'environment' => config('app.env'),

View File

@ -1,3 +1,3 @@
<?php
return '4.0.0-beta.87';
return '4.0.0-beta.88';

View File

@ -4,7 +4,7 @@
"version": "3.12.36"
},
"v4": {
"version": "4.0.0-beta.87"
"version": "4.0.0-beta.88"
}
}
}