diff --git a/examples/cpp/xds/Dockerfile.client b/examples/cpp/xds/Dockerfile.client new file mode 100644 index 00000000000..a1b0f2101f9 --- /dev/null +++ b/examples/cpp/xds/Dockerfile.client @@ -0,0 +1,37 @@ +# Copyright 2023 The gRPC Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +FROM python:3.9-slim-bookworm + +RUN apt-get update -y && apt-get upgrade -y && apt-get install -y build-essential clang curl + +WORKDIR /workdir + +RUN ln -s /usr/bin/python3 /usr/bin/python +RUN mkdir /artifacts + +COPY . . +RUN tools/bazel build //examples/cpp/xds:xds_greeter_client +RUN cp -rL /workdir/bazel-bin/examples/cpp/xds/xds_greeter_client /artifacts/ + +FROM python:3.9-slim-bookworm + +RUN apt-get update \ + && apt-get -y upgrade \ + && apt-get -y autoremove \ + && apt-get install -y curl + +COPY --from=0 /artifacts ./ + +ENTRYPOINT ["/xds_greeter_client"] diff --git a/examples/cpp/xds/Dockerfile.server b/examples/cpp/xds/Dockerfile.server new file mode 100644 index 00000000000..f5a6582f293 --- /dev/null +++ b/examples/cpp/xds/Dockerfile.server @@ -0,0 +1,37 @@ +# Copyright 2023 The gRPC Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +FROM python:3.9-slim-bookworm + +RUN apt-get update -y && apt-get upgrade -y && apt-get install -y build-essential clang curl + +WORKDIR /workdir + +RUN ln -s /usr/bin/python3 /usr/bin/python +RUN mkdir /artifacts + +COPY . . +RUN tools/bazel build //examples/cpp/xds:xds_greeter_server +RUN cp -rL /workdir/bazel-bin/examples/cpp/xds/xds_greeter_server /artifacts/ + +FROM python:3.9-slim-bookworm + +RUN apt-get update \ + && apt-get -y upgrade \ + && apt-get -y autoremove \ + && apt-get install -y curl + +COPY --from=0 /artifacts ./ + +ENTRYPOINT ["/xds_greeter_server"] diff --git a/examples/cpp/xds/README.md b/examples/cpp/xds/README.md index 7949c772db7..6d28838cab1 100644 --- a/examples/cpp/xds/README.md +++ b/examples/cpp/xds/README.md @@ -35,3 +35,24 @@ $ export GRPC_XDS_BOOTSTRAP=/path/to/bootstrap.json $ tools/bazel run examples/cpp/xds:greeter_client ``` +## Building Docker + +From the gRPC workspace folder: + +Client: +``` +docker build -f examples/cpp/xds/Dockerfile.client examples/cpp/xds +``` +Server: +``` +docker build -f examples/cpp/xds/Dockerfile.server examples/cpp/xds +``` + +To push to a registry, add a tag to the image either by adding a `-t` flag to `docker build` command above or run: + +``` +docker image tag ${sha from build command above} ${tag} +``` + +And then push the tagged image using `docker push` +