&& \ apk upgrade && \ apk add git make ADD . $GOPATH/src/app WORKDIR $GOPATH/src/app RUN make dep-install RUN make dep RUN make RUN mkdir /app && \ cp -a $GOPATH/src/app/full-routaas /app && \ cp -a $GOPATH/src/app/config.tml /app && \ cp -a $GOPATH/src/app/rib* /app FROM busybox WORKDIR /root/ COPY --from=builder app . CMD ["./full-routaas"] Dockerfile https://system-admins.ru/vnedrenie-docker/
:= grpc.Dial("localhost:50051", timeout, grpc.WithBlock(), grpc.WithInsecure()) if rpcErr != nil { log.Fatal("GoBGP is probably not running on the local server ... Please start gobgpd process !\n") log.Fatal(rpcErr) return } client := api.NewGobgpApiClient(conn) //࠶ͼgRPCɻ ͜͜ͷίʔυgobgpͷ֤APIΛͨͨ͘ҝʹɺ gRPCΫϥΠΞϯτΛ৽͘͠ఆ͓͖ٛͯ͠·͢ɻ gRPCͷ֤ଐੑΛ٧ΊࠐΜͩมclientΛ͍·Θ͠·͢ɻ TCPͳͷͰGCߟྀͯ͠λΠϜΞτඞਢͰ͢ɻ
!= nil { fmt.Println(err) os.Exit(1) } for _, p := range []*table.Path{path} { arg := &api.AddPathRequest{ Resource: api.Resource_GLOBAL, VrfId: "", Path: api.ToPathApi(p), } r, err := client.AddPath(context.Background(), arg) if err != nil { fmt.Println(err) os.Exit(1) } var b []byte var u uuid.UUID b = r.Uuid u, err = uuid.FromBytes(b) if err != nil { fmt.Println(err) os.Exit(1) } fmt.Println("Added a route's UUID is, ", u.String()) } CLI string CLI PARSE API //CLIΛύʔε͢ΔAPIΛܦ༝ͨ͠ޙɺ ಘͨPathܕͷมΛgRPCʹแΜͰɺ GoBGPଆʹ͢Πϝʔδ //CLIΛύʔε͢ΔAPIΛܦ༝͠ͳ͍ͱܕͱ͔໘ gobgpd service grpc service gobgp ops API //ࠨAddPathؔʹಥͬࠐΜ͍Δɻ VRFͷࢦఆͳΜ͔͜͜ͰΔɻ //ͪͳΈʹGoBGPܦ࿏ͷཧΛUUIDͰΕΔɻ (DeletePath()UUIDࢦఆ͚ͩͰ̤̠)