commit 767c5f7ff0384683377588a2ddb0a9d1f4ad6e45 Author: Ambrose Chua Date: Thu Sep 26 10:20:05 2019 +0800 Initial Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..0e5c2b7 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,62 @@ + +# Configurable TensorFlow setup +ARG TF_SRC_TAG=v2.0.0-rc2 +ARG TF_V2 +ARG TF_MKL + +# Configurable Python setup +ARG USE_PYTHON_3_NOT_2 +ARG _DOCKER_SUFFIX=${USE_PYTHON_3_NOT_2:+-py3} +ARG _PY_SUFFIX=${USE_PYTHON_3_NOT_2:+3} +ARG PYTHON=python${_PY_SUFFIX} +ARG PIP=pip${_PY_SUFFIX} + +# Build stage +FROM tensorflow/tensorflow:latest-devel${_DOCKER_SUFFIX} AS builder + +WORKDIR /tensorflow_src +RUN git checkout ${TF_SRC_TAG} + +ARG _TF_CONFIG_V2=${TF_V2:+--config=v2} +ARG _TF_CONFIG_V1=${_TF_CONFIG_V2:---config=opt} +ARG _TF_FLAGS="${TF_MKL:+--config=mkl} ${TF_MONOLITHIC:+--config=monolithic}" + +# Build settings. Likely will change between versions +ENV PYTHON_BIN_PATH=/usr/bin/${PYTHON} +ENV USE_DEFAULT_PYTHON_LIB_PATH=1 +ENV TF_ENABLE_XLA=1 +ENV TF_NEED_OPENCL_SYCL=0 +ENV TF_NEED_ROCM=0 +ENV TF_NEED_CUDA=0 +ENV TF_DOWNLOAD_CLANG=0 +ENV TF_NEED_MPI=0 +ENV CC_OPT_FLAGS="-march=native -Wno-sign-compare" +ENV TF_SET_ANDROID_WORKSPACE=0 + +RUN ./configure +RUN bazel build ${_TF_FLAGS} ${_TF_CONFIG_V2}${_TF_CONFIG_V1} //tensorflow/tools/pip_package:build_pip_package +RUN ./bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg + +# Install stage. Copied from https://github.com/tensorflow/tensorflow/blob/master/tensorflow/tools/dockerfiles/dockerfiles/cpu.Dockerfile +FROM ubuntu:18.04 as base + +RUN apt-get update && apt-get install -y curl + +ENV LANG C.UTF-8 + +RUN apt-get update && apt-get install -y \ + ${PYTHON} \ + ${PYTHON}-pip + +RUN ${PIP} --no-cache-dir install --upgrade \ + pip \ + setuptools + +# Some TF tools expect a "python" binary +RUN ln -s $(which ${PYTHON}) /usr/local/bin/python + +COPY --from=builder /tmp/tensorflow_pkg/tensorflow-*.whl . +RUN ${PIP} install tensorflow-*.whl + +RUN curl -L https://raw.githubusercontent.com/tensorflow/tensorflow/master/tensorflow/tools/dockerfiles/bashrc -O /etc/bash.bashrc +RUN chmod a+rwx /etc/bash.bashrc