@@ -4,7 +4,6 @@ package dockerdiscovery
44import (
55 "context"
66 "fmt"
7- "log"
87 "log/slog"
98 "net"
109 "net/http"
@@ -35,7 +34,7 @@ func HasConfigInEnv() bool {
3534 return os .Getenv ("DOCKER_URL" ) != ""
3635}
3736
38- func New () (erdiscovery.Reader , error ) {
37+ func New (logger * slog. Logger ) (erdiscovery.Reader , error ) {
3938 dockerURL , err := envvar .Required ("DOCKER_URL" )
4039 if err != nil {
4140 return nil , err
@@ -67,13 +66,15 @@ func New() (erdiscovery.Reader, error) {
6766 dockerNetworkName : dockerNetworkName ,
6867 dockerURL : dockerURL ,
6968 dockerClient : dockerClient ,
69+ logger : logger ,
7070 }, nil
7171}
7272
7373type dockerDiscovery struct {
7474 dockerNetworkName string
7575 dockerURL string
7676 dockerClient * http.Client
77+ logger * slog.Logger
7778}
7879
7980func (s * dockerDiscovery ) ReadApplications (ctx context.Context ) ([]erconfig.Application , error ) {
@@ -82,7 +83,7 @@ func (s *dockerDiscovery) ReadApplications(ctx context.Context) ([]erconfig.Appl
8283 return nil , err
8384 }
8485
85- bareContainers , err := discoverDockerContainers (ctx , s .dockerURL , s .dockerNetworkName , s .dockerClient , swarmServices )
86+ bareContainers , err := discoverDockerContainers (ctx , s .dockerURL , s .dockerNetworkName , s .dockerClient , swarmServices , s . logger )
8687 if err != nil {
8788 return nil , err
8889 }
@@ -96,7 +97,9 @@ func (s *dockerDiscovery) ReadApplications(ctx context.Context) ([]erconfig.Appl
9697 for _ , service := range swarmServicesAndBareContainers {
9798 app , err := traefikAnnotationsToApp (service )
9899 if err != nil {
99- log .Println (fmt .Errorf ("%s: traefikAnnotationsToApp: %w" , service .Name , err ).Error ())
100+ s .logger .Error ("traefikAnnotationsToApp" ,
101+ "service" , service .Name ,
102+ "error" , err )
100103 continue
101104 }
102105 if app == nil { // non-error skip
@@ -209,6 +212,7 @@ func discoverDockerContainers(
209212 dockerNetworkName string ,
210213 dockerClient * http.Client ,
211214 alreadyDiscoveredFromSwarm []Service ,
215+ logger * slog.Logger ,
212216) ([]Service , error ) {
213217 services := []Service {}
214218
@@ -276,7 +280,7 @@ func discoverDockerContainers(
276280 if settings , found := container .NetworkSettings .Networks ["host" ]; ! ipFound () && found {
277281 // when host network, settings doesn't specify IP address
278282 if settings .IPAddress != "" {
279- slog .Warn ("IPAddress not expected for host" , "container" , container .Id )
283+ logger .Warn ("IPAddress not expected for host" , "container" , container .Id )
280284 continue
281285 }
282286 ipAddress = "127.0.0.1"
0 commit comments