go + realize + grpc-gateway をDocker上で動かしホットリロードを行うためのサンプルです。
ここのファイル一式を以下に設置
$GOPATH/src/github.com/gosagawa/realize_sample
local.realize_sample.netをhostsファイル(MacOSなら/etc/hosts)に登録する
127.0.0.1 local.realize_sample.net
make bundle
docker-compose up
まず、以下が表示できる事を確認。
$curl http://local.realize_sample.net/user/1
{"id":1,"name":"John","age":18}
その後adapter/grpc/user.goを書き換えて保存後、APIの値が変われば成功です(自動でビルドされて、反映されます)。
curl http://local.realize_sample.net/user/1
{"id":1,"name":"John","age":18}
adapter/grpc/protoDifinition以下にproto定義を持っています。 protoは保存しても即時反映されず、protoのmakeした後に反映されます。
make proto
このサンプルをGopher道場advent calendar 2018 12/13公開の記事で解説します。公開後にリンクします。