Files
wehub-resource-sync 36b3af2e3d
PR Check / Code Quality: Format (push) Failing after 1s
PR Check / Code Quality: Lint (darwin) (push) Failing after 0s
PR Check / Code Quality: Lint (freebsd) (push) Failing after 1s
PR Check / Code Quality: Lint (windows) (push) Failing after 1s
PR Check / Code Quality: Lint (linux) (push) Failing after 1s
PR Check / Security: Vulnerability Scan (push) Failing after 0s
Update Documentation / update-docs (push) Failing after 2s
PR Check / Code Quality: Vendor (push) Failing after 1s
PR Check / Code Quality: Coverage (push) Failing after 0s
PR Check / Tests: Unit (macos-latest) (push) Has been cancelled
PR Check / Tests: Unit (ubuntu-24.04) (push) Has been cancelled
PR Check / Tests: Unit (ubuntu-24.04-arm) (push) Has been cancelled
PR Check / Tests: Unit (windows-latest) (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:22:06 +08:00

43 lines
857 B
Go

package proc
import (
"os/exec"
"strings"
)
func resolveDockerProxyContainer(cmdline string) string {
var containerIP string
parts := strings.Fields(cmdline)
for i, part := range parts {
if part == "-container-ip" && i+1 < len(parts) {
containerIP = parts[i+1]
break
}
}
if containerIP == "" {
return ""
}
out, err := exec.Command("docker", "network", "inspect", "bridge",
"--format", "{{range .Containers}}{{.Name}}:{{.IPv4Address}}{{\"\\n\"}}{{end}}").Output()
if err != nil {
return ""
}
for _, line := range strings.Split(strings.TrimSpace(string(out)), "\n") {
if line == "" {
continue
}
colonIdx := strings.Index(line, ":")
if colonIdx == -1 {
continue
}
name := line[:colonIdx]
ip := strings.Split(line[colonIdx+1:], "/")[0]
if ip == containerIP {
return "target: " + name
}
}
return ""
}