github.com/klaytn/klaytn@v1.10.2/cmd/homi/docker/service/grafana.go (about) 1 package service 2 3 import ( 4 "bytes" 5 "fmt" 6 "text/template" 7 ) 8 9 type GrafanaService struct { 10 IP string 11 } 12 13 func (gf GrafanaService) String() string { 14 tmpl, err := template.New("GrafanaService").Parse(grafanaServiceTemplate) 15 if err != nil { 16 fmt.Printf("Failed to parse template, %v", err) 17 return "" 18 } 19 20 result := new(bytes.Buffer) 21 err = tmpl.Execute(result, gf) 22 if err != nil { 23 fmt.Printf("Failed to render template, %v", err) 24 return "" 25 } 26 return result.String() 27 } 28 29 var grafanaServiceTemplate = `grafana: 30 hostname: grafana 31 image: grafana/grafana:5.2.2 32 ports: 33 - 3000:3000 34 networks: 35 app_net: 36 ipv4_address: {{ .IP }} 37 restart: "no" 38 ` 39 40 func NewGrafanaService(ip string) *GrafanaService { 41 return &GrafanaService{ 42 IP: ip, 43 } 44 }