Update Docker installation command and add support for SLES
This commit is contained in:
		@@ -15,7 +15,7 @@ class InstallDocker
 | 
			
		||||
        if (!$supported_os_type) {
 | 
			
		||||
            throw new \Exception('Server OS type is not supported for automated installation. Please install Docker manually before continuing: <a target="_blank" class="underline" href="https://coolify.io/docs/servers#install-docker-engine-manually">documentation</a>.');
 | 
			
		||||
        }
 | 
			
		||||
        ray('Installing Docker on server: ' . $server->name . ' (' . $server->ip . ')' . ' with OS: ' . $supported_os_type);
 | 
			
		||||
        ray('Installing Docker on server: ' . $server->name . ' (' . $server->ip . ')' . ' with OS type: ' . $supported_os_type);
 | 
			
		||||
        $dockerVersion = '24.0';
 | 
			
		||||
        $config = base64_encode('{
 | 
			
		||||
            "log-driver": "json-file",
 | 
			
		||||
@@ -44,18 +44,25 @@ class InstallDocker
 | 
			
		||||
                "ls -l /tmp"
 | 
			
		||||
            ]);
 | 
			
		||||
        } else {
 | 
			
		||||
            if ($supported_os_type === 'debian') {
 | 
			
		||||
            if ($supported_os_type->contains('debian')) {
 | 
			
		||||
                $command = $command->merge([
 | 
			
		||||
                    "echo 'Installing Prerequisites...'",
 | 
			
		||||
                    "command -v jq >/dev/null || apt-get update",
 | 
			
		||||
                    "command -v jq >/dev/null || apt-get update -y",
 | 
			
		||||
                    "command -v jq >/dev/null || apt install -y jq",
 | 
			
		||||
 | 
			
		||||
                ]);
 | 
			
		||||
            } else if ($supported_os_type === 'rhel') {
 | 
			
		||||
            } else if ($supported_os_type->contains('rhel')) {
 | 
			
		||||
                $command = $command->merge([
 | 
			
		||||
                    "echo 'Installing Prerequisites...'",
 | 
			
		||||
                    "command -v jq >/dev/null || dnf update -y",
 | 
			
		||||
                    "command -v jq >/dev/null || dnf install -y jq",
 | 
			
		||||
                ]);
 | 
			
		||||
            } else if ($supported_os_type->contains('sles')) {
 | 
			
		||||
                $command = $command->merge([
 | 
			
		||||
                    "echo 'Installing Prerequisites...'",
 | 
			
		||||
                    "command -v jq >/dev/null || zypper update -y",
 | 
			
		||||
                    "command -v jq >/dev/null || zypper install -y jq",
 | 
			
		||||
                ]);
 | 
			
		||||
            } else {
 | 
			
		||||
                throw new \Exception('Unsupported OS');
 | 
			
		||||
            }
 | 
			
		||||
 
 | 
			
		||||
@@ -194,7 +194,8 @@ class Server extends BaseModel
 | 
			
		||||
    {
 | 
			
		||||
        return instant_remote_process(["df /| tail -1 | awk '{ print $5}' | sed 's/%//g'"], $this, false);
 | 
			
		||||
    }
 | 
			
		||||
    public function definedResources() {
 | 
			
		||||
    public function definedResources()
 | 
			
		||||
    {
 | 
			
		||||
        $applications = $this->applications();
 | 
			
		||||
        $databases = $this->databases();
 | 
			
		||||
        $services = $this->services();
 | 
			
		||||
@@ -342,12 +343,16 @@ class Server extends BaseModel
 | 
			
		||||
            $collectedData->put($item->before('=')->value(), $item->after('=')->lower()->replace('"', '')->value());
 | 
			
		||||
        }
 | 
			
		||||
        $ID = data_get($collectedData, 'ID');
 | 
			
		||||
        $ID_LIKE = data_get($collectedData, 'ID_LIKE');
 | 
			
		||||
        $VERSION_ID = data_get($collectedData, 'VERSION_ID');
 | 
			
		||||
        // ray($ID, $ID_LIKE, $VERSION_ID);
 | 
			
		||||
        if (collect(SUPPORTED_OS)->contains($ID_LIKE)) {
 | 
			
		||||
        // $ID_LIKE = data_get($collectedData, 'ID_LIKE');
 | 
			
		||||
        // $VERSION_ID = data_get($collectedData, 'VERSION_ID');
 | 
			
		||||
        $supported = collect(SUPPORTED_OS)->filter(function ($supportedOs) use ($ID) {
 | 
			
		||||
            if (str($supportedOs)->contains($ID)) {
 | 
			
		||||
                return str($ID);
 | 
			
		||||
            }
 | 
			
		||||
        });
 | 
			
		||||
        if ($supported->count() === 1) {
 | 
			
		||||
            ray('supported');
 | 
			
		||||
            return str($ID_LIKE)->explode(' ')->first();
 | 
			
		||||
            return $supported->first();
 | 
			
		||||
        } else {
 | 
			
		||||
            ray('not supported');
 | 
			
		||||
            return false;
 | 
			
		||||
 
 | 
			
		||||
@@ -29,6 +29,7 @@ const SPECIFIC_SERVICES = [
 | 
			
		||||
];
 | 
			
		||||
 | 
			
		||||
const SUPPORTED_OS = [
 | 
			
		||||
    'debian',
 | 
			
		||||
    'rhel centos fedora'
 | 
			
		||||
    'ubuntu debian raspbian',
 | 
			
		||||
    'centos fedora rhel ol rocky',
 | 
			
		||||
    'sles opensuse-leap opensuse-tumbleweed'
 | 
			
		||||
];
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user