Dockerfile 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. # Build tflow cause they suck with version support
  2. # Define base image, pin at stretch 9.6
  3. FROM debian:9.6-slim
  4. LABEL maintainer="tarfeef101"
  5. # Set to non-interactive mode as container should not be entered
  6. #ENV DEBIAN_FRONTEND noninteractive
  7. SHELL ["/bin/bash", "-c"]
  8. # Install required packages, etc
  9. RUN apt -y update && \
  10. apt -y upgrade && \
  11. apt -y install curl wget git bzip2 unzip python3 python-dev python-pip python3-dev python3-pip && \
  12. apt purge && \
  13. apt clean && \
  14. rm -rf /var/lib/apt/lists/*
  15. ENV LANG C.UTF-8
  16. # Install pip packages
  17. RUN pip install -U pip six numpy wheel mock
  18. RUN pip install -U keras_applications==1.0.6 --no-deps
  19. RUN pip install -U keras_preprocessing==1.0.5 --no-deps
  20. RUN pip install -U google_pasta>=0.1.1 gast>=0.2.0 astor>=0.2.0 absl-py>=0.1.6 protobuf>=0.1.6 'tensorboard>=1.12.0,<1.13.0' 'tensorflow_estimator>=1.13.0rc0,<1.14.0rc0' termcolor>=1.1.0
  21. # install cuda
  22. RUN apt update && \
  23. apt -y install ca-certificates apt-transport-https gnupg1-curl && \
  24. rm -rf /var/lib/apt/lists/*
  25. RUN curl -fsSL https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub | apt-key add - && \
  26. echo "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64 /" > /etc/apt/sources.list.d/cuda.list && \
  27. echo "deb https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1604/x86_64 /" > /etc/apt/sources.list.d/nvidia-ml.list
  28. ENV CUDA_VERSION 9.1.85
  29. ENV CUDA_PKG_VERSION 9-1=$CUDA_VERSION-1
  30. RUN apt-get update && apt-get install -y --no-install-recommends \
  31. cuda-cudart-$CUDA_PKG_VERSION && \
  32. ln -s cuda-9.1 /usr/local/cuda && \
  33. rm -rf /var/lib/apt/lists/*
  34. LABEL com.nvidia.volumes.needed="nvidia_driver"
  35. LABEL com.nvidia.cuda.version="${CUDA_VERSION}"
  36. RUN echo "/usr/local/nvidia/lib" >> /etc/ld.so.conf.d/nvidia.conf && \
  37. echo "/usr/local/nvidia/lib64" >> /etc/ld.so.conf.d/nvidia.conf
  38. ENV PATH /usr/local/nvidia/bin:/usr/local/cuda/bin:${PATH}
  39. ENV LD_LIBRARY_PATH /usr/local/nvidia/lib:/usr/local/nvidia/lib64
  40. ENV NVIDIA_VISIBLE_DEVICES all
  41. ENV NVIDIA_DRIVER_CAPABILITIES all
  42. ENV NVIDIA_REQUIRE_CUDA "cuda>=9.1"
  43. RUN apt-get update && apt-get install -y --no-install-recommends \
  44. cuda-libraries-dev-$CUDA_PKG_VERSION \
  45. cuda-command-line-tools-$CUDA_PKG_VERSION && \
  46. rm -rf /var/lib/apt/lists/*
  47. ENV LIBRARY_PATH /usr/local/cuda/lib64/stubs
  48. #ENV NCCL_VERSION 2.2.12
  49. #RUN apt-get update && apt-get install -y --no-install-recommends \
  50. # cuda-libraries-$CUDA_PKG_VERSION \
  51. # libnccl2=$NCCL_VERSION-1+cuda9.1 && \
  52. # apt-mark hold libnccl2 && \
  53. # rm -rf /var/lib/apt/lists/*
  54. ENV CUDNN_VERSION 7.1.2.21
  55. LABEL com.nvidia.cudnn.version="${CUDNN_VERSION}"
  56. RUN apt-get update && apt-get install -y --no-install-recommends \
  57. libcudnn7=$CUDNN_VERSION-1+cuda9.1 \
  58. libcudnn7-dev=$CUDNN_VERSION-1+cuda9.1 && \
  59. apt-mark hold libcudnn7 && \
  60. rm -rf /var/lib/apt/lists/*
  61. # install Bazel
  62. RUN apt update && apt -y install pkg-config zip g++ zlib1g-dev
  63. RUN wget https://github.com/bazelbuild/bazel/releases/download/0.15.0/bazel-0.15.0-installer-linux-x86_64.sh && chmod +x bazel-0.15.0-installer-linux-x86_64.sh
  64. RUN ./bazel-0.15.0-installer-linux-x86_64.sh --user
  65. # Get/build tflow
  66. RUN cd /opt && \
  67. git clone https://github.com/tensorflow/tensorflow.git && \
  68. cd tensorflow && \
  69. git checkout r1.11
  70. #sed -i '81d' tensorflow/contrib/BUILD && \
  71. #sed -i '189d' tensorflow/contrib/BUILD
  72. RUN export PATH=$PATH:/root/bin && \
  73. export TF_NEED_CUDA=1 && \
  74. export TF_CUDA_VERSION=$CUDA_VERSION && \
  75. export TF_CUDNN_VERSION=$CUDNN_VERSION && \
  76. export CUDA_TOOLKIT_PATH=/usr/local/cuda && \
  77. export CUDNN_INSTALL_PATH=/usr/lib/x86_64-linux-gnu && \
  78. export TF_NCCL_VERSION=1.3 && \
  79. cd /opt/tensorflow && \
  80. ./configure && \
  81. bazel build --config=opt --config=cuda tensorflow/tools/pip_package:build_pip_package