wip
This commit is contained in:
parent
19ec042a0a
commit
12ef88b90f
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace App\Console;
|
namespace App\Console;
|
||||||
|
|
||||||
|
use App\Jobs\ContainerStatusJob;
|
||||||
use Illuminate\Console\Scheduling\Schedule;
|
use Illuminate\Console\Scheduling\Schedule;
|
||||||
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
|
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
|
||||||
|
|
||||||
@ -12,6 +13,7 @@ class Kernel extends ConsoleKernel
|
|||||||
*/
|
*/
|
||||||
protected function schedule(Schedule $schedule): void
|
protected function schedule(Schedule $schedule): void
|
||||||
{
|
{
|
||||||
|
$schedule->job(new ContainerStatusJob)->everyMinute();
|
||||||
// $schedule->command('inspire')->hourly();
|
// $schedule->command('inspire')->hourly();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -50,7 +50,15 @@ public function deployment()
|
|||||||
{
|
{
|
||||||
$deployment_uuid = request()->route('deployment_uuid');
|
$deployment_uuid = request()->route('deployment_uuid');
|
||||||
|
|
||||||
$application = Application::where('uuid', request()->route('application_uuid'))->first();
|
$project = session('currentTeam')->load(['projects'])->projects->where('uuid', request()->route('project_uuid'))->first();
|
||||||
|
if (!$project) {
|
||||||
|
return redirect()->route('home');
|
||||||
|
}
|
||||||
|
$environment = $project->load(['environments'])->environments->where('name', request()->route('environment_name'))->first()->load(['applications']);
|
||||||
|
if (!$environment) {
|
||||||
|
return redirect()->route('home');
|
||||||
|
}
|
||||||
|
$application = $environment->applications->where('uuid', request()->route('application_uuid'))->first();
|
||||||
if (!$application) {
|
if (!$application) {
|
||||||
return redirect()->route('home');
|
return redirect()->route('home');
|
||||||
}
|
}
|
||||||
|
@ -27,6 +27,13 @@ class DeployApplication extends Component
|
|||||||
protected $destination;
|
protected $destination;
|
||||||
protected $source;
|
protected $source;
|
||||||
|
|
||||||
|
public function mount($application_uuid) {
|
||||||
|
$this->application_uuid = $application_uuid;
|
||||||
|
}
|
||||||
|
public function render()
|
||||||
|
{
|
||||||
|
return view('livewire.deploy-application');
|
||||||
|
}
|
||||||
private function execute_in_builder(string $command)
|
private function execute_in_builder(string $command)
|
||||||
{
|
{
|
||||||
if ($this->application->settings->is_debug) {
|
if ($this->application->settings->is_debug) {
|
||||||
@ -46,7 +53,6 @@ private function generate_docker_compose()
|
|||||||
'services' => [
|
'services' => [
|
||||||
$this->application->uuid => [
|
$this->application->uuid => [
|
||||||
'image' => "{$this->application->uuid}:TAG",
|
'image' => "{$this->application->uuid}:TAG",
|
||||||
'expose' => $this->application->ports_exposes,
|
|
||||||
'container_name' => $this->application->uuid,
|
'container_name' => $this->application->uuid,
|
||||||
'restart' => 'always',
|
'restart' => 'always',
|
||||||
'labels' => $this->set_labels_for_applications(),
|
'labels' => $this->set_labels_for_applications(),
|
||||||
@ -234,12 +240,16 @@ public function deploy()
|
|||||||
$deploymentUrl = "$currentUrl/deployment/$this->deployment_uuid";
|
$deploymentUrl = "$currentUrl/deployment/$this->deployment_uuid";
|
||||||
return redirect($deploymentUrl);
|
return redirect($deploymentUrl);
|
||||||
}
|
}
|
||||||
public function cancel()
|
|
||||||
|
public function stop()
|
||||||
{
|
{
|
||||||
|
$application = Application::where('uuid', $this->application_uuid)->first();
|
||||||
|
$destination = $application->destination->getMorphClass()::where('id', $application->destination->id)->first();
|
||||||
|
$command[] = "docker rm -f {$application->uuid} >/dev/null 2>&1";
|
||||||
|
remoteProcess($command, $destination->server, null, $application);
|
||||||
|
}
|
||||||
|
public function checkStatus() {
|
||||||
ContainerStatusJob::dispatch();
|
ContainerStatusJob::dispatch();
|
||||||
}
|
}
|
||||||
public function render()
|
|
||||||
{
|
|
||||||
return view('livewire.deploy-application');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -46,13 +46,13 @@ public function handle(): void
|
|||||||
});
|
});
|
||||||
$found_application->status = $container['State'];
|
$found_application->status = $container['State'];
|
||||||
$found_application->save();
|
$found_application->save();
|
||||||
Log::info('Found application: ' . $found_application->uuid . ' settings status to: ' . $found_application->status);
|
// Log::info('Found application: ' . $found_application->uuid . ' settings status to: ' . $found_application->status);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
foreach ($not_found_applications as $not_found_application) {
|
foreach ($not_found_applications as $not_found_application) {
|
||||||
$not_found_application->status = 'exited';
|
$not_found_application->status = 'exited';
|
||||||
$not_found_application->save();
|
$not_found_application->save();
|
||||||
Log::info('Not found application: ' . $not_found_application->uuid . ' settings status to: ' . $not_found_application->status);
|
// Log::info('Not found application: ' . $not_found_application->uuid . ' settings status to: ' . $not_found_application->status);
|
||||||
}
|
}
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
Log::error($e->getMessage());
|
Log::error($e->getMessage());
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
<div>
|
<div>
|
||||||
<button wire:click='deploy'>Deploy</button>
|
<button wire:click='deploy'>Deploy</button>
|
||||||
<button wire:click='cancel'>Cancel</button>
|
<button wire:click='stop'>Stop</button>
|
||||||
|
<button wire:click='checkStatus'>CheckStatus</button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<div>
|
<div>
|
||||||
@isset($activity?->id)
|
@isset($activity?->id)
|
||||||
<pre style="width: 100%;overflow-y: scroll;" @if ($isKeepAliveOn) wire:poll.750ms="polling" @endif>{{ data_get($activity, 'description') }}</pre>
|
<pre style="width: 100%;overflow-y: scroll;" @if ($isKeepAliveOn) wire:poll.750ms="polling" @endif>{{ data_get($activity, 'description') ?? 'Logs will be here soon...' }}</pre>
|
||||||
@endisset
|
@endisset
|
||||||
</div>
|
</div>
|
||||||
|
@ -24,7 +24,7 @@
|
|||||||
Route::get('/project/{project_uuid}/{environment_name}', [ProjectController::class, 'resources'])->name('project.resources');
|
Route::get('/project/{project_uuid}/{environment_name}', [ProjectController::class, 'resources'])->name('project.resources');
|
||||||
|
|
||||||
Route::get('/project/{project_uuid}/{environment_name}/application/{application_uuid}', [ProjectController::class, 'application'])->name('project.application');
|
Route::get('/project/{project_uuid}/{environment_name}/application/{application_uuid}', [ProjectController::class, 'application'])->name('project.application');
|
||||||
// Route::get('/project/{project_uuid}/{environment_name}/application/{application_uuid}/deployment/{deployment_uuid}', [ProjectController::class, 'deployment'])->name('project.deployment');
|
Route::get('/project/{project_uuid}/{environment_name}/application/{application_uuid}/deployment/{deployment_uuid}', [ProjectController::class, 'deployment'])->name('project.deployment');
|
||||||
|
|
||||||
// Route::get('/database/{database_uuid}', [ProjectController::class, 'database'])->name('project.database');
|
// Route::get('/database/{database_uuid}', [ProjectController::class, 'database'])->name('project.database');
|
||||||
// Route::get('//service/{service_uuid}', [ProjectController::class, 'service'])->name('project.service');
|
// Route::get('//service/{service_uuid}', [ProjectController::class, 'service'])->name('project.service');
|
||||||
|
Loading…
Reference in New Issue
Block a user