From 7049546225ad50b0b030bd2ae5195a70be5afd3a Mon Sep 17 00:00:00 2001 From: lixiangwuxian Date: Sat, 29 Mar 2025 15:01:17 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=A2=9E=E5=BC=BA=20DockerContainer=20?= =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E9=80=BB=E8=BE=91=EF=BC=8C=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E9=87=8D=E8=AF=95=E6=9C=BA=E5=88=B6=E5=92=8C=E8=AF=A6?= =?UTF-8?q?=E7=BB=86=E6=97=A5=E5=BF=97=E8=AE=B0=E5=BD=95=EF=BC=8C=E4=BB=A5?= =?UTF-8?q?=E7=A1=AE=E4=BF=9D=E5=AE=B9=E5=99=A8=E6=88=90=E5=8A=9F=E5=88=9B?= =?UTF-8?q?=E5=BB=BA=E5=92=8C=E5=90=AF=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- service/exec/exec.go | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/service/exec/exec.go b/service/exec/exec.go index 87c86c6..4e71480 100644 --- a/service/exec/exec.go +++ b/service/exec/exec.go @@ -19,15 +19,33 @@ var DockerContainer *dockerContainer func init() { //检测docker服务是否已运行 go func() { + maxRetries := 5 + retryCount := 0 for { // Initialize DockerContainer with memory, CPU, and disk limits - DockerContainer, err := NewDockerContainer(int64(2*1024*1024*1024), int64(1000000000)) + container, err := NewDockerContainer(int64(2*1024*1024*1024), int64(1000000000)) if err != nil { - log.Println("NewDockerContainer failed", err) - time.Sleep(1 * time.Second) + retryCount++ + if retryCount > maxRetries { + log.Fatalf("Failed to initialize Docker container after %d retries: %v", maxRetries, err) + } + log.Printf("NewDockerContainer failed (attempt %d/%d): %v", retryCount, maxRetries, err) + time.Sleep(2 * time.Second) continue } - DockerContainer.CreateAndStartContainer() + + if err := container.CreateAndStartContainer(); err != nil { + retryCount++ + if retryCount > maxRetries { + log.Fatalf("Failed to create and start container after %d retries: %v", maxRetries, err) + } + log.Printf("CreateAndStartContainer failed (attempt %d/%d): %v", retryCount, maxRetries, err) + time.Sleep(2 * time.Second) + continue + } + + DockerContainer = container + log.Println("Docker container successfully initialized") return } }()