fix: Check proxy functionality before removing unnecessary coolify.yaml file and checking Docker Engine
This commit is contained in:
parent
10f3d8aa0f
commit
ace7c17f2b
@ -10,6 +10,9 @@ class CheckProxy
|
|||||||
use AsAction;
|
use AsAction;
|
||||||
public function handle(Server $server, $fromUI = false)
|
public function handle(Server $server, $fromUI = false)
|
||||||
{
|
{
|
||||||
|
if (!$server->isFunctional()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
if ($server->proxyType() === 'NONE') {
|
if ($server->proxyType() === 'NONE') {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -43,10 +43,11 @@ class ServerStatusJob implements ShouldQueue, ShouldBeEncrypted
|
|||||||
try {
|
try {
|
||||||
if ($this->server->isFunctional()) {
|
if ($this->server->isFunctional()) {
|
||||||
$this->cleanup(notify: false);
|
$this->cleanup(notify: false);
|
||||||
$this->removeCoolifyYaml();
|
$this->remove_unnecessary_coolify_yaml();
|
||||||
if (config('coolify.is_sentinel_enabled')) {
|
if (config('coolify.is_sentinel_enabled')) {
|
||||||
$this->server->checkSentinel();
|
$this->server->checkSentinel();
|
||||||
}
|
}
|
||||||
|
$this->check_docker_engine();
|
||||||
}
|
}
|
||||||
} catch (\Throwable $e) {
|
} catch (\Throwable $e) {
|
||||||
send_internal_notification('ServerStatusJob failed with: ' . $e->getMessage());
|
send_internal_notification('ServerStatusJob failed with: ' . $e->getMessage());
|
||||||
@ -54,7 +55,44 @@ class ServerStatusJob implements ShouldQueue, ShouldBeEncrypted
|
|||||||
return handleError($e);
|
return handleError($e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private function removeCoolifyYaml()
|
private function check_docker_engine()
|
||||||
|
{
|
||||||
|
ray('Checking Docker Engine');
|
||||||
|
$version = instant_remote_process([
|
||||||
|
"docker info",
|
||||||
|
], $this->server, false);
|
||||||
|
if (is_null($version)) {
|
||||||
|
send_internal_notification('Docker Engine is not running on ' . $this->server->name . '. Trying to start it.');
|
||||||
|
$os = instant_remote_process([
|
||||||
|
"cat /etc/os-release | grep ^ID=",
|
||||||
|
], $this->server, false);
|
||||||
|
$os = str($os)->after('ID=')->trim();
|
||||||
|
if ($os === 'ubuntu') {
|
||||||
|
try {
|
||||||
|
instant_remote_process([
|
||||||
|
"systemctl start docker",
|
||||||
|
], $this->server);
|
||||||
|
send_internal_notification('Docker Engine started on ' . $this->server->name . '.');
|
||||||
|
} catch (\Throwable $e) {
|
||||||
|
ray($e->getMessage());
|
||||||
|
send_internal_notification('Docker Engine failed to start on ' . $this->server->name . '. Please start it manually.');
|
||||||
|
return handleError($e);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
try {
|
||||||
|
instant_remote_process([
|
||||||
|
"service docker start",
|
||||||
|
], $this->server);
|
||||||
|
send_internal_notification('Docker Engine started on ' . $this->server->name . '. Please start it manually.');
|
||||||
|
} catch (\Throwable $e) {
|
||||||
|
ray($e->getMessage());
|
||||||
|
send_internal_notification('Docker Engine failed to start on ' . $this->server->name . '.');
|
||||||
|
return handleError($e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private function remove_unnecessary_coolify_yaml()
|
||||||
{
|
{
|
||||||
// This will remote the coolify.yaml file from the server as it is not needed on cloud servers
|
// This will remote the coolify.yaml file from the server as it is not needed on cloud servers
|
||||||
if (isCloud() && $this->server->id !== 0) {
|
if (isCloud() && $this->server->id !== 0) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user