blob: f45115c17fc9552f0788aa01166eb53f7499207e [file] [edit]
# Copyright 2020 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
ARG BASE_REGISTRY_URI=us-docker.pkg.dev/chromeos-partner-moblab/base-containers
FROM ${BASE_REGISTRY_URI}/debian:trixie-slim AS download
RUN apt-get update && apt-get install --no-install-recommends -yq \
ca-certificates \
curl \
dh-autoreconf \
g++ \
gcc-multilib \
git \
make \
unzip \
zlib1g-dev
WORKDIR /
RUN curl -L -o protobuf.zip https://github.com/protocolbuffers/protobuf/releases/download/v21.7/protoc-21.7-linux-x86_64.zip
RUN unzip protobuf.zip
RUN curl -L -o /usr/local/bin/protoc-gen-grpc-web https://github.com/grpc/grpc-web/releases/download/1.4.2/protoc-gen-grpc-web-1.4.2-linux-x86_64
RUN chmod uog+x /usr/local/bin/protoc-gen-grpc-web
# install bazel
RUN \
curl -sL https://github.com/bazelbuild/bazel/releases/download/6.4.0/bazel-6.4.0-linux-x86_64 > /usr/local/bin/bazel && \
chmod +x /usr/local/bin/bazel
# build and install protoc-gen-js
RUN \
git clone https://github.com/protocolbuffers/protobuf-javascript.git && \
cd protobuf-javascript && \
# b/349692635
git reset --hard 45fbfcb2776630f24b71ed44f0b5f7438d790d7a && \
bazel build //generator:protoc-gen-js && \
cp bazel-bin/generator/protoc-gen-js /usr/local/bin/protoc-gen-js
##############################################################################
FROM ${BASE_REGISTRY_URI}/debian:trixie-slim
RUN mkdir -p /protoc
COPY --from=download bin/protoc /protoc
COPY --from=download /include /protoc/include
COPY --from=download /usr/local/bin/protoc-gen-grpc-web /protoc
COPY --from=download /usr/local/bin/protoc-gen-js /protoc
RUN cp -r /protoc/* /usr/local/bin/