Forráskód Böngészése

Updated docker detection implementation

Toby Chui 8 hónapja
szülő
commit
3aedf133ef
3 módosított fájl, 13 hozzáadás és 39 törlés
  1. 1 31
      docker.go
  2. 1 0
      main.go
  3. 11 8
      web/components/rules.html

+ 1 - 31
docker.go

@@ -1,13 +1,9 @@
 package main
 
 import (
-	"bufio"
 	"context"
 	"encoding/json"
 	"net/http"
-	"os"
-	"os/exec"
-	"strings"
 
 	"github.com/docker/docker/api/types"
 	"github.com/docker/docker/api/types/container"
@@ -15,35 +11,9 @@ import (
 	"imuslab.com/zoraxy/mod/utils"
 )
 
-// IsDockerized checks if the program is running in a Docker container.
-func IsDockerized() bool {
-	// Check for the /proc/1/cgroup file
-	file, err := os.Open("/proc/1/cgroup")
-	if err != nil {
-		return false
-	}
-	defer file.Close()
-
-	scanner := bufio.NewScanner(file)
-	for scanner.Scan() {
-		if strings.Contains(scanner.Text(), "docker") {
-			return true
-		}
-	}
-
-	return false
-}
-
-// IsDockerInstalled checks if Docker is installed on the host.
-func IsDockerInstalled() bool {
-	_, err := exec.LookPath("docker")
-	return err == nil
-}
-
 // HandleDockerAvaible check if teh docker related functions should be avaible in front-end
 func HandleDockerAvailable(w http.ResponseWriter, r *http.Request) {
-	dockerAvailable := IsDockerized()
-	js, _ := json.Marshal(dockerAvailable)
+	js, _ := json.Marshal(*runningInDocker)
 	utils.SendJSONResponse(w, string(js))
 }
 

+ 1 - 0
main.go

@@ -44,6 +44,7 @@ var allowMdnsScanning = flag.Bool("mdns", true, "Enable mDNS scanner and transpo
 var mdnsName = flag.String("mdnsname", "", "mDNS name, leave empty to use default (zoraxy_{node-uuid}.local)")
 var ztAuthToken = flag.String("ztauth", "", "ZeroTier authtoken for the local node")
 var ztAPIPort = flag.Int("ztport", 9993, "ZeroTier controller API port")
+var runningInDocker = flag.Bool("docker", false, "Run Zoraxy in docker compatibility mode")
 var acmeAutoRenewInterval = flag.Int("autorenew", 86400, "ACME auto TLS/SSL certificate renew check interval (seconds)")
 var enableHighSpeedGeoIPLookup = flag.Bool("fastgeoip", false, "Enable high speed geoip lookup, require 1GB extra memory (Not recommend for low end devices)")
 var staticWebServerRoot = flag.String("webroot", "./www", "Static web server root folder. Only allow chnage in start paramters")

+ 11 - 8
web/components/rules.html

@@ -31,7 +31,7 @@
                         
                         <small>E.g. 192.168.0.101:8000 or example.com</small>
                     </div>
-                    <div class="field" class="dockerOptimizations" style="display:none;">
+                    <div class="field dockerOptimizations" style="display:none;">
                         <button class="ui basic button" onclick="openDockerContainersList();"><i class="blue docker icon"></i> Pick from Docker Containers</button>
                     </div>
                     <div class="field">
@@ -433,13 +433,16 @@
     }
 
     /* Docker Optimizations */
-    $("/api/docker/available", function(dockerAvailable){
-        if (dockerAvailable){
-            $(".dockerOptimizations").show();
-        }else{
-            $(".dockerOptimizations").hide();
-        }
-    })
+    function initDockerUXOptimizations(){
+        $("/api/docker/available", function(dockerAvailable){
+            if (dockerAvailable){
+                $(".dockerOptimizations").show();
+            }else{
+                $(".dockerOptimizations").hide();
+            }
+        });
+    }
+    initDockerUXOptimizations();
     
     function openDockerContainersList(){
         showSideWrapper('snippet/dockerContainersList.html');