Skip to content
Snippets Groups Projects
Select Git revision
  • c5a12492796ec7274ddc28aa827ffa3e971a984b
  • master default protected
  • dev_moritz
  • 0.2.0
  • 0.1.0
5 results

Dockerfile

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    Dockerfile 2.57 KiB
    # SPDX-License-Identifier: Apache-2.0
    FROM git.imp.fu-berlin.de:5000/bioroboticslab/robofish/docker/ubuntu
    
    LABEL maintainer="Moritz Maxeiner <moritz.maxeiner@fu-berlin.de>"
    LABEL authors="Moritz Maxeiner <moritz.maxeiner@fu-berlin.de>"
    
    ARG DEBIAN_FRONTEND=noninteractive
    
    RUN apt-get install -y \
            openjdk-11-jdk \
            swig \
            libcurl3-dev \
            libfreetype6-dev \
            libhdf5-serial-dev \
            libzmq3-dev \
            zlib1g-dev \
            && \
        apt-get clean
    
    RUN ln -s /usr/local/cuda/lib64/stubs/libcuda.so /usr/local/cuda/lib64/stubs/libcuda.so.1 && \
        echo "/usr/local/cuda/lib64/stubs" > /etc/ld.so.conf.d/z-cuda-stubs.conf && \
        ldconfig
    
    ARG BAZEL_VERSION=0.26.1
    RUN mkdir -p /opt/bazel && \
        wget -O /opt/bazel/installer.sh "https://github.com/bazelbuild/bazel/releases/download/${BAZEL_VERSION}/bazel-${BAZEL_VERSION}-installer-linux-x86_64.sh" && \
        wget -O /opt/bazel/LICENSE.txt "https://raw.githubusercontent.com/bazelbuild/bazel/master/LICENSE" && \
        chmod +x /opt/bazel/installer.sh && \
        /opt/bazel/installer.sh && \
        rm -f /opt/bazel/installer.sh
    
    ENV LD_LIBRARY_PATH /usr/local/cuda/extras/CUPTI/lib64:/usr/local/cuda/lib64:/usr/local/cuda/lib64/stubs:/usr/include/x64_64-linux-gnu:$LD_LIBRARY_PATH
    ENV TF_NEED_CUDA 1
    ENV TF_NEED_TENSORRT 1
    ENV TF_CUDA_VERSION=${CUDA}
    ENV TF_CUDNN_VERSION=${CUDNN_MAJOR_VERSION}
    
    ARG TF_VERSION=1.15.3
    RUN git clone --recursive --branch ${TF_VERSION} https://git.imp.fu-berlin.de/bioroboticslab/robofish/vendor/tensorflow.git /opt/tensorflow/src
    COPY tf_configure.bazelrc /opt/tensorflow/src/.tf_configure.bazelrc
    
    ARG PYTHON_VERSION=3.8
    RUN mkdir -p /opt/tensorflow/.venv && \
        python${PYTHON_VERSION} -m venv /opt/tensorflow/.venv && \
        . /opt/tensorflow/.venv/bin/activate && \
        pip --no-cache-dir install --upgrade pip && \
        pip --no-cache-dir install wheel && \
        pip --no-cache-dir install \
            Pillow \
            h5py \
            keras_preprocessing \
            matplotlib \
            mock \
            'numpy<1.19.0' \
            scipy \
            sklearn \
            pandas \
            future \
            portpicker \
            && \
        cd /opt/tensorflow/src && \
        . /opt/tensorflow/.venv/bin/activate && \
        bazel build \
            --action_env PYTHONPATH="/opt/tensorflow/.venv/lib/python${PYTHON_VERSION}/site-packages" \
            --config=cuda --config=opt --config=mkl \
            //tensorflow/tools/pip_package:build_pip_package && \
        ./bazel-bin/tensorflow/tools/pip_package/build_pip_package /opt/tensorflow/build && \
        deactivate && \
        rm -rf /root/.cache/bazel && \
        rm -rf /opt/tensorflow/.venv