From 0208e6286f9176e1469b7ab099fa2daa760649b0 Mon Sep 17 00:00:00 2001 From: yusing Date: Sat, 10 May 2025 11:24:28 +0800 Subject: [PATCH] fix: docker socket handler --- socket-proxy.Dockerfile | 1 + socket-proxy/pkg/handler.go | 17 +++++++++-------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/socket-proxy.Dockerfile b/socket-proxy.Dockerfile index 2ad62b6..98a0f17 100644 --- a/socket-proxy.Dockerfile +++ b/socket-proxy.Dockerfile @@ -47,4 +47,5 @@ COPY --from=builder /app/run /app/run WORKDIR /app +ENV LISTEN_ADDR=0.0.0.0:2375 CMD ["/app/run"] \ No newline at end of file diff --git a/socket-proxy/pkg/handler.go b/socket-proxy/pkg/handler.go index 412c3c2..51c2049 100644 --- a/socket-proxy/pkg/handler.go +++ b/socket-proxy/pkg/handler.go @@ -9,8 +9,6 @@ import ( "time" "github.com/gorilla/mux" - - "net/url" ) var dialer = &net.Dialer{KeepAlive: 1 * time.Second} @@ -22,12 +20,15 @@ func dialDockerSocket(ctx context.Context, _, _ string) (net.Conn, error) { var DockerSocketHandler = dockerSocketHandler func dockerSocketHandler() http.HandlerFunc { - rp := httputil.NewSingleHostReverseProxy(&url.URL{ - Scheme: "http", - Host: "api.moby.localhost", - }) - rp.Transport = &http.Transport{ - DialContext: dialDockerSocket, + rp := &httputil.ReverseProxy{ + Director: func(req *http.Request) { + req.URL.Scheme = "http" + req.URL.Host = "api.moby.localhost" + req.RequestURI = req.URL.String() + }, + Transport: &http.Transport{ + DialContext: dialDockerSocket, + }, } return rp.ServeHTTP