docker
This commit is contained in:
44
auto-check/verify_dispatch_main.go
Normal file
44
auto-check/verify_dispatch_main.go
Normal file
@@ -0,0 +1,44 @@
|
||||
//go:build ignore
|
||||
|
||||
// 临时验证程序:验证 镜像上传 + docker load 分发链路(用完即删)
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"auto-check/pkg/sshclient"
|
||||
)
|
||||
|
||||
func main() {
|
||||
ip := os.Args[1]
|
||||
cfg := sshclient.NewConfig("admin", "admin123", "", 22, 10*time.Second)
|
||||
cli, err := sshclient.Connect(ip, cfg)
|
||||
if err != nil {
|
||||
fmt.Println("SSH 连接失败:", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
defer cli.Close()
|
||||
sshclient.EnsureHome(cli)
|
||||
|
||||
v, _ := sshclient.RunCommand(cli, "echo 'admin123' | sudo -S -- docker version --format '{{.Server.Version}}' 2>/dev/null")
|
||||
fmt.Printf("Docker 版本: %q\n", strings.TrimSpace(v))
|
||||
|
||||
exists, _ := sshclient.RunCommand(cli, "echo 'admin123' | sudo -S -- docker images stress-test:latest --format '{{.Repository}}:{{.Tag}}' 2>/dev/null")
|
||||
fmt.Printf("镜像状态: %q\n", strings.TrimSpace(exists))
|
||||
|
||||
if strings.TrimSpace(exists) == "" {
|
||||
if err := sshclient.UploadFile(cli, "docker/stress-test/stress-test.tar", "/tmp/auto-check-image.tar"); err != nil {
|
||||
fmt.Println("上传失败:", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
out, err := sshclient.RunCommand(cli, "echo 'admin123' | sudo -S -- docker load -i /tmp/auto-check-image.tar 2>&1")
|
||||
sshclient.RunCommand(cli, "rm -f /tmp/auto-check-image.tar")
|
||||
fmt.Printf("load 输出: %s (err=%v)\n", out, err)
|
||||
exists, _ = sshclient.RunCommand(cli, "echo 'admin123' | sudo -S -- docker images stress-test:latest --format '{{.Repository}}:{{.Tag}}' 2>/dev/null")
|
||||
fmt.Printf("load 后镜像状态: %q\n", strings.TrimSpace(exists))
|
||||
}
|
||||
fmt.Println("验证完成")
|
||||
}
|
||||
Reference in New Issue
Block a user