Skip to content

Instantly share code, notes, and snippets.

@kepricon
Created November 21, 2016 14:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kepricon/7539e9a07c50fac9a3c7c4d9381431ac to your computer and use it in GitHub Desktop.
Save kepricon/7539e9a07c50fac9a3c7c4d9381431ac to your computer and use it in GitHub Desktop.
DockerFile for dl4j snapshot on ubuntu
FROM ubuntu:14.04
MAINTAINER DH Skymind.io daehyun@skymind.io
# install first necessary things and java8
RUN apt-get update && \
echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | debconf-set-selections && \
apt-get install -y make g++ wget tar software-properties-common && \
add-apt-repository -y ppa:webupd8team/java && \
apt-get update && \
apt-get install -y oracle-java8-installer && \
rm -rf /var/lib/apt/lists/* && \
rm -rf /var/cache/oracle-jdk8-installer
# set java_home
ENV JAVA_HOME /usr/lib/jvm/java-8-oracle
RUN mkdir downloads
# install prerequisites for building dl4j snapshot:
RUN apt-get update && \
apt-get install -y build-essential git libopenblas-dev libatlas-base-dev libatlas-dev && \
add-apt-repository ppa:ubuntu-toolchain-r/test && \
apt-get update && \
apt-get install -y gcc-4.9 g++-4.9 cpp-4.9
# set gcc 4.9
RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.9 --slave /usr/bin/cpp cpp-bin /usr/bin/cpp-4.9 && \
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 40 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8 --slave /usr/bin/cpp cpp-bin /usr/bin/cpp-4.8
# install cmake and maven
WORKDIR /downloads
RUN wget https://cmake.org/files/v3.6/cmake-3.6.2.tar.gz && \
tar -xzf cmake-3.6.2.tar.gz
RUN wget http://apache.tt.co.kr/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz && \
tar -xzf apache-maven-3.3.9-bin.tar.gz
WORKDIR /downloads/cmake-3.6.2
RUN ./bootstrap && \
make && \
make install
ENV PATH /downloads/apache-maven-3.3.9/bin:$PATH
RUN mkdir /git
WORKDIR /git
RUN git clone https://github.com/bytedeco/javacpp
ENV LD_LIBRARY_PATH /usr/lib/:/usr/lib/gcc/x86_64-linux-gnu/4.9
RUN ldconfig
RUN git clone https://github.com/deeplearning4j/libnd4j.git
RUN git clone https://github.com/deeplearning4j/nd4j.git
RUN git clone https://github.com/deeplearning4j/datavec.git
RUN git clone https://github.com/deeplearning4j/deeplearning4j.git
RUN git clone https://github.com/deeplearning4j/Arbiter
RUN cd /git/javacpp && mvn clean install -DskipTests
RUN cd /git/libnd4j && ./buildnativeoperations.sh
ENV LIBND4J_HOME /git/libnd4j
#RUN cd /git/nd4j && mvn clean install -DskipTests -Dmaven.javadoc.skip=true -pl '!:nd4j-cuda-8.0,!:nd4j-cuda-8.0-platform,!:nd4j-tests'
RUN cd /git/nd4j && ./buildmultiplescalaversions.sh clean install -DskipTests -pl '!:nd4j-cuda-8.0,!:nd4j-cuda-8.0-platform,!:nd4j-tests'
RUN cd /git/datavec && ./buildmultiplescalaversions.sh clean install -DskipTests -Dmaven.javadoc.skip=true
RUN cd /git/deeplearning4j && mvn clean install -DskipTests -Dmaven.javadoc.skip=true -pl '!:deeplearning4j-cuda-8.0'
RUN cd /git/Arbiter && ./buildmultiplescalaversions.sh clean install -DskipTests
WORKDIR /
CMD ["bash"]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment