ingress-nginx-helm/images/grpc-fortune-teller
Manuel de Brito Fontes bb4d483837
Update go dependencies
2018-05-26 16:27:45 -04:00
..
app Example of using nginx-ingress with gRPC 2018-05-03 20:39:38 -06:00
proto/fortune Update go dependencies 2018-05-26 16:27:45 -04:00
.gitignore Update go version in fortune teller image 2018-05-13 09:24:04 -04:00
BUILD.bazel Example of using nginx-ingress with gRPC 2018-05-03 20:39:38 -06:00
Gopkg.lock Example of using nginx-ingress with gRPC 2018-05-03 20:39:38 -06:00
README.md Example of using nginx-ingress with gRPC 2018-05-03 20:39:38 -06:00
WORKSPACE Update go version in fortune teller image 2018-05-13 09:24:04 -04:00

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:

$ 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:

$ docker run bazel/app:image

Build image and push to the container registry specified in the container_push rule:

$ bazel run //app:push

Invoke

$ 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\""
}