# grpc-fortune-teller This is the grpc server application for the nginx-ingress grpc example. Bazel 0.12 is used for the building and container management. ## Build Builds a statically compiled go binary cross-compiled for linux: ``` $ bazel build //app:fortune Target //app:fortune up-to-date: bazel-bin/app/linux_amd64_static_pure_stripped/fortune ``` > To build for your host system, comment out the `goos` and `goarch` attributes > in the `go_binary` rule. ## Run Builds a minimal docker image that wraps the go_binary, loads it into your local docker image repository, and runs it: ```sh $ bazel run //app:image Loaded image ID: sha256:aa597c897c873116fcbfccafecf5ab0f6f4178a05e4a00c8e79de91ac0d2e9e7 Tagging aa597c897c873116fcbfccafecf5ab0f6f4178a05e4a00c8e79de91ac0d2e9e7 as bazel/app:image 2018/05/01 02:13:43 Restored /tmp/fortune-teller/usr/share/games/fortunes/fortunes.dat 2018/05/01 02:13:43 Restored /tmp/fortune-teller/usr/share/games/fortunes/literature 2018/05/01 02:13:43 Restored /tmp/fortune-teller/usr/share/games/fortunes/literature.dat 2018/05/01 02:13:43 Restored /tmp/fortune-teller/usr/share/games/fortunes/riddles 2018/05/01 02:13:43 Restored /tmp/fortune-teller/usr/share/games/fortunes/riddles.dat 2018/05/01 02:13:43 Restored /tmp/fortune-teller/usr/share/games/fortunes/fortunes 2018/05/01 02:13:43 Assets restored to /tmp/fortune-teller 2018/05/01 02:13:43 Listening for gRPC requests at 50051 ``` Or run it via docker: ```sh $ docker run bazel/app:image ``` Build image and push to the container registry specified in the `container_push` rule: ```sh $ bazel run //app:push ``` ## Invoke ```sh $ grpcurl -plaintext localhost:50051 build.stack.fortune.FortuneTeller/Predict { "message": "Whenever the literary German dives into a sentence, that is the last\nyou are going to see of him until he emerges on the other side of his\nAtlantic with his verb in his mouth.\n\t\t-- Mark Twain \"A Connecticut Yankee in King Arthur's Court\"" } ```