diff --git a/internal/route/provider/docker.go b/internal/route/provider/docker.go index 1d1799a..6ecd8d3 100755 --- a/internal/route/provider/docker.go +++ b/internal/route/provider/docker.go @@ -66,8 +66,8 @@ func (p *DockerProvider) loadRoutesImpl() (route.Routes, gperr.Error) { return nil, gperr.Wrap(err) } - errs := gperr.NewBuilder("") - routes := make(route.Routes) + errs := gperr.NewBuilder() + routes := make(route.Routes, len(containers)) for _, c := range containers { container := docker.FromDocker(&c, p.dockerHost) diff --git a/internal/route/route.go b/internal/route/route.go index f32e5e3..d4aba5e 100644 --- a/internal/route/route.go +++ b/internal/route/route.go @@ -2,6 +2,7 @@ package route import ( "fmt" + "net/url" "strings" "github.com/yusing/go-proxy/agent/pkg/agent" @@ -92,11 +93,11 @@ func (r *Route) Validate() (err gperr.Error) { r.Port.Proxy = 0 } else { switch r.Scheme { - case route.SchemeHTTP, route.SchemeHTTPS: - if r.Port.Listening != 0 { - errs.Addf("unexpected listening port for %s scheme", r.Scheme) - } - case route.SchemeTCP, route.SchemeUDP: + case route.SchemeHTTP, route.SchemeHTTPS: + if r.Port.Listening != 0 { + errs.Addf("unexpected listening port for %s scheme", r.Scheme) + } + case route.SchemeTCP, route.SchemeUDP: r.LisURL = gperr.Collect(errs, url.Parse, fmt.Sprintf("%s://:%d", r.Scheme, r.Port.Listening)) } r.ProxyURL = gperr.Collect(errs, url.Parse, fmt.Sprintf("%s://%s:%d", r.Scheme, r.Host, r.Port.Proxy)) @@ -145,8 +146,8 @@ func (r *Route) Started() bool { } func (r *Route) Reference() string { - if r.Docker != nil { - return r.Docker.Image.Name + if r.Container != nil { + return r.Container.Image.Name } return r.Alias } @@ -378,7 +379,7 @@ func (r *Route) FinalizeHomepageConfig() { panic("alias is empty") } - isDocker := r.Container != nil + isDocker := r.IsDocker() if r.Homepage == nil { r.Homepage = &homepage.ItemConfig{Show: true} diff --git a/internal/route/route_test.go b/internal/route/route_test.go index 29753f4..ee68711 100644 --- a/internal/route/route_test.go +++ b/internal/route/route_test.go @@ -98,7 +98,7 @@ func TestRouteValidate(t *testing.T) { Host: "example.com", Port: route.Port{Proxy: 80}, Metadata: Metadata{ - DockerContainer: &docker.Container{ + Container: &docker.Container{ ContainerID: "test-id", Image: &docker.ContainerImage{ Name: "test-image", diff --git a/internal/task/debug.go b/internal/task/debug.go index f222582..b2df5b5 100644 --- a/internal/task/debug.go +++ b/internal/task/debug.go @@ -51,7 +51,7 @@ func toBool(v uint32) bool { func (t *Task) callbackList() []map[string]any { list := make([]map[string]any, 0, len(t.callbacks)) - for cb, _ := range t.callbacks { + for cb := range t.callbacks { list = append(list, map[string]any{ "about": cb.about, "wait_children": cb.waitChildren, diff --git a/internal/watcher/health/monitor/monitor.go b/internal/watcher/health/monitor/monitor.go index 84d2bdc..1dea243 100644 --- a/internal/watcher/health/monitor/monitor.go +++ b/internal/watcher/health/monitor/monitor.go @@ -52,7 +52,7 @@ func NewMonitor(r route.Route) health.HealthMonCheck { } } if r.IsDocker() { - cont := r.DockerContainer() + cont := r.ContainerInfo() client, err := docker.NewClient(cont.DockerHost) if err != nil { return mon