[Documentation] Create docker file for xds example server and client for Python (#37779)

This will help us quote Xds examples in user guides without having to
involve observability examples only which are dockerized today.
diff --git a/examples/python/xds/BUILD.bazel b/examples/python/xds/BUILD.bazel
new file mode 100644
index 0000000..e4f4805
--- /dev/null
+++ b/examples/python/xds/BUILD.bazel
@@ -0,0 +1,41 @@
+# Copyright 2019 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.
+
+load("@rules_python//python:defs.bzl", "py_binary")
+
+py_binary(
+    name = "xds_greeter_server",
+    srcs = ["server.py"],
+    main = "server.py",
+    python_version = "PY3",
+    srcs_version = "PY2AND3",
+    deps = [
+        "//examples/protos:helloworld_py_pb2",
+        "//examples/protos:helloworld_py_pb2_grpc",
+        "//src/python/grpcio/grpc:grpcio",
+    ],
+)
+
+py_binary(
+    name = "xds_greeter_client",
+    srcs = ["client.py"],
+    main = "client.py",
+    python_version = "PY3",
+    srcs_version = "PY2AND3",
+    deps = [
+        "//examples/protos:helloworld_py_pb2",
+        "//examples/protos:helloworld_py_pb2_grpc",
+        "//src/python/grpcio/grpc:grpcio",
+    ],
+)
diff --git a/examples/python/xds/Dockerfile.client b/examples/python/xds/Dockerfile.client
new file mode 100644
index 0000000..1ce56ab
--- /dev/null
+++ b/examples/python/xds/Dockerfile.client
@@ -0,0 +1,26 @@
+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/python/xds:xds_greeter_client
+RUN cp -rL /workdir/bazel-bin/examples/python/xds/xds_greeter_client* /artifacts/
+
+FROM python:3.9-slim-bookworm
+
+RUN apt-get update -y \
+  && apt-get install -y python3 \
+  && apt-get -y autoremove \
+  && apt-get install -y curl \
+  && rm -rf /var/lib/apt/lists/*
+
+RUN ln -s /usr/bin/python3 /usr/bin/python
+
+COPY --from=0 /artifacts ./
+
+ENTRYPOINT ["/xds_greeter_client"]
diff --git a/examples/python/xds/Dockerfile.server b/examples/python/xds/Dockerfile.server
new file mode 100644
index 0000000..40a6405
--- /dev/null
+++ b/examples/python/xds/Dockerfile.server
@@ -0,0 +1,26 @@
+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/python/xds:xds_greeter_server
+RUN cp -rL /workdir/bazel-bin/examples/python/xds/xds_greeter_server* /artifacts/
+
+FROM python:3.9-slim-bookworm
+
+RUN apt-get update -y \
+    && apt-get install -y python3 \
+    && apt-get -y autoremove \
+    && apt-get install -y curl \
+    && rm -rf /var/lib/apt/lists/*
+
+RUN ln -s /usr/bin/python3 /usr/bin/python
+
+COPY --from=0 /artifacts ./
+
+ENTRYPOINT ["/xds_greeter_server"]
diff --git a/examples/python/xds/README.md b/examples/python/xds/README.md
index 5436ccd..c1a8331 100644
--- a/examples/python/xds/README.md
+++ b/examples/python/xds/README.md
@@ -121,3 +121,20 @@
 ```
 python client.py xds:///my-backend --secure true
 ```
+
+## Building Docker
+
+From the gRPC workspace folder:
+
+Client:
+```
+docker build -f examples/python/xds/Dockerfile.client -t "${xds-example-python-client-tag}" .
+```
+
+Server:
+```
+docker build -f examples/python/xds/Dockerfile.server -t "${xds-example-python-server-tag}" .
+```
+
+And then push the tagged image using `docker push`.
+