diff --git a/Dockerfile b/Dockerfile
index 521d7c40..c2c65278 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -30,18 +30,22 @@ RUN curl -sSL \
-o /usr/local/bin/protoc-gen-grpc-web && \
chmod +x /usr/local/bin/protoc-gen-grpc-web
-ENV YARPC_VERSION=1.37.1
+ENV YARPC_VERSION=1.37.2
RUN git clone --depth 1 -b v${YARPC_VERSION} https://github.com/yarpc/yarpc-go.git /go/src/go.uber.org/yarpc && \
cd /go/src/go.uber.org/yarpc && \
GO111MODULE=on go mod init && \
GO111MODULE=on go install ./encoding/protobuf/protoc-gen-yarpc-go && \
mv /go/bin/protoc-gen-yarpc-go /usr/local/bin/
-ENV TWIRP_VERSION=5.5.2
-RUN git clone --depth 1 -b v${TWIRP_VERSION} https://github.com/twitchtv/twirp.git /go/src/github.com/twitchtv/twirp && \
- cd /go/src/github.com/twitchtv/twirp && \
- go install ./protoc-gen-twirp ./protoc-gen-twirp_python && \
- mv /go/bin/protoc-gen-twirp* /usr/local/bin/
+ENV TWIRP_VERSION=5.7.0
+RUN curl -sSL \
+ https://github.com/twitchtv/twirp/releases/download/v${TWIRP_VERSION}/protoc-gen-twirp-Linux-x86_64 \
+ -o /usr/local/bin/protoc-gen-twirp && \
+ curl -sSL \
+ https://github.com/twitchtv/twirp/releases/download/v${TWIRP_VERSION}/protoc-gen-twirp_python-Linux-x86_64 \
+ -o /usr/local/bin/protoc-gen-twirp_python && \
+ chmod +x /usr/local/bin/protoc-gen-twirp && \
+ chmod +x /usr/local/bin/protoc-gen-twirp_python
ENV PROTOBUF_VERSION=3.6.1
RUN mkdir -p /tmp/protoc && \
@@ -86,5 +90,5 @@ ENV GOGO_PROTOBUF_VERSION=1.2.1 \
GOLANG_PROTOBUF_VERSION=1.3.1 \
GRPC_GATEWAY_VERSION=1.8.5 \
GRPC_WEB_VERSION=1.0.4 \
- TWIRP_VERSION=5.5.2 \
- YARPC_VERSION=1.37.1
+ TWIRP_VERSION=5.7.0 \
+ YARPC_VERSION=1.37.2
diff --git a/docs/development.md b/docs/development.md
index 0d369bec..e0d05c15 100644
--- a/docs/development.md
+++ b/docs/development.md
@@ -41,3 +41,5 @@ of `protoc`. Note that `etc/config/example/prototool.yaml` is automatically upda
update `DefaultProtocVersion` in `internal/vars/vars.go` and you run `make generate`.
See https://github.com/uber/prototool/pull/418 for an example of updating versions of dependencies.
+
+See https://github.com/uber/prototool/pull/437 for an example of updating versions for Docker.
diff --git a/docs/docker.md b/docs/docker.md
index 92bc1c3e..a57bc601 100644
--- a/docs/docker.md
+++ b/docs/docker.md
@@ -36,8 +36,8 @@ commonly-used, stable, maintained libraries.
| [gogo/protobuf] | 1.2.1 | protoc-gen-gofast
protoc-gen-gogo
protoc-gen-gogofast
protoc-gen-gogofaster
protoc-gen-gogoslick |
| [grpc-gateway] | 1.8.5 | protoc-gen-grpc-gateway
protoc-gen-swagger |
| [grpc-web] | 1.0.4 | protoc-gen-grpc-web |
-| [twirp] | 5.5.2 | protoc-gen-twirp
protoc-gen-twirp_python |
-| [yarpc] | 1.37.1 | protoc-gen-yarpc-go |
+| [twirp] | 5.7.0 | protoc-gen-twirp
protoc-gen-twirp_python |
+| [yarpc] | 1.37.2 | protoc-gen-yarpc-go |
The Well-Known Types are copied to `/usr/include`. The packages `bash`, `curl`, and `git` are also installed.
@@ -59,6 +59,8 @@ Note that for version changes, the versions are copied in four places: once for
Dockerfile (sharing these is harder than you think), once in [etc/docker/testing/bin/test.sh](../etc/docker/testing/bin/test.sh),
and once in this documentation.
+See https://github.com/uber/prototool/pull/437 for an example of updating versions.
+
Updates of `protobuf` and `grpc` must match the current versions for `alpine:edge` for now. See [here](https://pkgs.alpinelinux.org/packages?name=protobuf&branch=edge&repo=main&arch=x86_64) and [here](https://pkgs.alpinelinux.org/packages?name=grpc&branch=edge&repo=testing&arch=x86_64) for the current versions.
Local development commands:
diff --git a/etc/docker/testing/bin/test.sh b/etc/docker/testing/bin/test.sh
index f56cf169..9f6299cc 100644
--- a/etc/docker/testing/bin/test.sh
+++ b/etc/docker/testing/bin/test.sh
@@ -63,8 +63,8 @@ check_env GRPC_VERSION 1.19.1
check_env GRPC_GATEWAY_VERSION 1.8.5
check_env GRPC_WEB_VERSION 1.0.4
check_env PROTOBUF_VERSION 3.6.1
-check_env TWIRP_VERSION 5.5.2
-check_env YARPC_VERSION 1.37.1
+check_env TWIRP_VERSION 5.7.0
+check_env YARPC_VERSION 1.37.2
check_env PROTOTOOL_PROTOC_BIN_PATH /usr/bin/protoc
check_env PROTOTOOL_PROTOC_WKT_PATH /usr/include
check_command_output "libprotoc 3.6.1" protoc --version