diff --git a/tensorflow_runtime_dockerfiles/test.import_tpu.sh b/tensorflow_runtime_dockerfiles/test.import_tpu.sh
new file mode 100755
index 0000000000000000000000000000000000000000..45f7f69d60cab7b00b49155376b302439b70e286
--- /dev/null
+++ b/tensorflow_runtime_dockerfiles/test.import_tpu.sh
@@ -0,0 +1,19 @@
+#!/usr/bin/env bash
+
+# Copyright 2024 The TensorFlow Authors. All Rights Reserved.
+#
+# 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.
+# ============================================================================
+
+set -euxo pipefail
+python -c 'import tensorflow as tf'
diff --git a/tensorflow_runtime_dockerfiles/tpu.Dockerfile b/tensorflow_runtime_dockerfiles/tpu.Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..501b410e5d470f4f1e987bde0f92fcb8a934ab8a
--- /dev/null
+++ b/tensorflow_runtime_dockerfiles/tpu.Dockerfile
@@ -0,0 +1,53 @@
+# Copyright 2024 The TensorFlow Authors. All Rights Reserved.
+#
+# 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 ubuntu:22.04 as base
+ENV DEBIAN_FRONTEND=noninteractive
+ENV LANG C.UTF-8
+
+COPY setup.sources.sh /setup.sources.sh
+COPY setup.packages.sh /setup.packages.sh
+COPY tpu.packages.txt /tpu.packages.txt
+RUN /setup.sources.sh
+RUN /setup.packages.sh /tpu.packages.txt
+
+
+ARG PYTHON_VERSION=python3.11
+ARG TENSORFLOW_PACKAGE=tf-nightly-tpu
+COPY setup.python.sh /setup.python.sh
+COPY cpu.requirements.txt /tpu.requirements.txt
+RUN /setup.python.sh $PYTHON_VERSION /tpu.requirements.txt
+RUN pip install --no-cache-dir ${TENSORFLOW_PACKAGE} -f https://storage.googleapis.com/libtpu-tf-releases/index.html 
+
+COPY bashrc /etc/bash.bashrc
+RUN chmod a+rwx /etc/bash.bashrc
+
+FROM base as jupyter
+
+COPY jupyter.requirements.txt /jupyter.requirements.txt
+COPY setup.jupyter.sh /setup.jupyter.sh
+RUN python3 -m pip install --no-cache-dir -r /jupyter.requirements.txt -U
+RUN /setup.jupyter.sh
+COPY jupyter.readme.md /tf/tensorflow-tutorials/README.md
+
+WORKDIR /tf
+EXPOSE 8888
+
+CMD ["bash", "-c", "source /etc/bash.bashrc && jupyter notebook --notebook-dir=/tf --ip 0.0.0.0 --no-browser --allow-root"]
+
+FROM base as test
+
+COPY test.import_tpu.sh /test.import_tpu.sh
+RUN /test.import_tpu.sh
diff --git a/tensorflow_runtime_dockerfiles/tpu.packages.txt b/tensorflow_runtime_dockerfiles/tpu.packages.txt
new file mode 100644
index 0000000000000000000000000000000000000000..cd1867a5fd4365739df59ad83e74d50bf1db241b
--- /dev/null
+++ b/tensorflow_runtime_dockerfiles/tpu.packages.txt
@@ -0,0 +1,5 @@
+build-essential
+pkg-config
+curl
+software-properties-common
+unzip
diff --git a/tensorflow_runtime_dockerfiles/tpu.requirements.txt b/tensorflow_runtime_dockerfiles/tpu.requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..2ae252fb7614adf314c8312210b89b249594ed31
--- /dev/null
+++ b/tensorflow_runtime_dockerfiles/tpu.requirements.txt
@@ -0,0 +1 @@
+# nothing!