anchor.diff:      xz-utils
   
   # Install protoc
  -WORKDIR /tmp
  -ADD https://github.com/protocolbuffers/protobuf/releases/download/v${PROTOBUF_VERSION}/protoc-${PROTOBUF_VERSION}-linux-x86_64.zip /tmp/
  -RUN unzip /tmp/protoc-${PROTOBUF_VERSION}-linux-x86_64.zip
  +ADD https://github.com/protocolbuffers/protobuf/releases/download/v${PROTOC_VERSION}/protoc-${PROTOC_VERSION}-linux-x86_64.zip /tmp/
  +RUN unzip /tmp/protoc-${PROTOC_VERSION}-linux-x86_64.zip
  +RUN mkdir -p ${OUTDIR}/usr/bin
  +RUN mv /tmp/bin/protoc ${OUTDIR}/usr/bin
   
   # Install necessary protoc includes
  +# TODO: Need to pin include file versions
  +
   RUN mkdir -p ${OUTDIR}/usr/include/protobuf/google/protobuf
  -RUN mkdir -p ${OUTDIR}/usr/include/protobuf/google/rpc
  -RUN mkdir -p ${OUTDIR}/usr/include/protobuf/google/api
  -RUN mkdir -p ${OUTDIR}/usr/include/protobuf/gogoproto
  -RUN mkdir -p ${OUTDIR}/usr/include/protobuf/validate
  -
   RUN for f in any duration descriptor empty struct timestamp wrappers; do \
               curl -L -o ${OUTDIR}/usr/include/protobuf/google/protobuf/${f}.proto https://raw.githubusercontent.com/google/protobuf/master/src/google/protobuf/${f}.proto; \
           done
  +
  +RUN mkdir -p ${OUTDIR}/usr/include/protobuf/google/rpc
   RUN for f in code error_details status; do \
               curl -L -o ${OUTDIR}/usr/include/protobuf/google/rpc/${f}.proto https://raw.githubusercontent.com/istio/gogo-genproto/master/googleapis/google/rpc/${f}.proto; \
           done
  +
  +RUN mkdir -p ${OUTDIR}/usr/include/protobuf/google/api
   RUN for f in http annotations; do \
               curl -L -o ${OUTDIR}/usr/include/protobuf/google/api/${f}.proto https://raw.githubusercontent.com/istio/gogo-genproto/master/googleapis/google/api/${f}.proto; \
           done
  +
  +RUN mkdir -p ${OUTDIR}/usr/include/protobuf/validate
   RUN curl -L -o ${OUTDIR}/usr/include/protobuf/validate/validate.proto https://raw.githubusercontent.com/envoyproxy/protoc-gen-validate/${PROTOC_GEN_VALIDATE_VERSION}/validate/validate.proto
  +
  +RUN mkdir -p ${OUTDIR}/usr/include/protobuf/gogoproto
   RUN curl -L -o ${OUTDIR}/usr/include/protobuf/gogoproto/gogo.proto https://raw.githubusercontent.com/gogo/protobuf/master/gogoproto/gogo.proto
   
  -# Install a bunch of Go tools
  +RUN mkdir -p ${OUTDIR}/usr/include/protobuf/k8s.io/api
  +RUN git clone --depth 1 --single-branch --branch master https://github.com/kubernetes/api.git
  +WORKDIR /tmp/api
  +RUN find . -name \*proto -exec cp -a --parents {} ${OUTDIR}/usr/include/protobuf/k8s.io/api \;
  +WORKDIR /tmp
  +
  +RUN mkdir -p ${OUTDIR}/usr/include/protobuf/k8s.io/apimachinery
  +RUN git clone --depth 1 --single-branch --branch master https://github.com/kubernetes/apimachinery.git
  +WORKDIR /tmp/apimachinery
  +RUN find . -name \*proto -exec cp -a --parents {} ${OUTDIR}/usr/include/protobuf/k8s.io/apimachinery \;
  +WORKDIR /tmp
  +
  +RUN mkdir -p ${OUTDIR}/usr/include/protobuf/github.com/gogo/protobuf
  +RUN git clone --depth 1 --single-branch --branch master https://github.com/gogo/protobuf.git
  +WORKDIR /tmp/protobuf
  +RUN find . -name \*proto -exec cp -a --parents {} ${OUTDIR}/usr/include/protobuf/github.com/gogo/protobuf \;
  +RUN rm -fr ${OUTDIR}/usr/include/protobuf/github.com/gogo/protobuf/test
  +RUN rm -fr ${OUTDIR}/usr/include/protobuf/github.com/gogo/protobuf/protoc-gen-gogo/testdata
  +RUN rm -fr ${OUTDIR}/usr/include/protobuf/github.com/gogo/protobuf/jsonpb/jsonpb_test_proto
  +RUN rm -fr ${OUTDIR}/usr/include/protobuf/github.com/gogo/protobuf/conformance
  +RUN rm -fr ${OUTDIR}/usr/include/protobuf/github.com/gogo/protobuf/vanity/test
  +RUN rm -fr ${OUTDIR}/usr/include/protobuf/github.com/gogo/protobuf/proto/test_proto
  +WORKDIR /tmp
  +
  +# Build and install a bunch of Go tools
   RUN GO111MODULE=on go get github.com/golang/protobuf/protoc-gen-go@${GOLANG_PROTOBUF_VERSION}
   RUN GO111MODULE=on go get github.com/gogo/protobuf/protoc-gen-gofast@${GOGO_PROTOBUF_VERSION}
   RUN GO111MODULE=on go get github.com/gogo/protobuf/protoc-gen-gogofast@${GOGO_PROTOBUF_VERSION}
  
positive.code: RUN gem install --no-wrappers --no-document mdl -v ${MDL_VERSION}
  RUN gem install --no-wrappers --no-document html-proofer -v ${HTMLPROOFER_VERSION}
  RUN gem install --no-wrappers --no-document awesome_bot -v ${AWESOMEBOT_VERSION}
  
  #############
  # Base OS
  
negative.code: COPY --from=ruby_tools_context /usr/local/lib /usr/local/lib
  COPY --from=nodejs_tools_context /usr/local /usr/local
  COPY --from=nodejs_tools_context /node_modules/ /node_modules/
  COPY --from=python_context /usr/local/bin /usr/local/bin
  COPY --from=python_context /usr/local/lib /usr/local/lib
  
  RUN mkdir -p /gocache && \
      mkdir -p /go/pkg/mod
  