# Note from Brandon on 2015-01-13: # # Always push this from an OSX Docker machine. # # If I build this on my Arch Linux desktop it works fine locally, # but dlib gives an `Illegal Instruction (core dumped)` error in # dlib.get_frontal_face_detector() when running on OSX in a Docker machine. # Building in a Docker machine on OSX fixes this issue and the built # container successfully deploys on my Arch Linux desktop. # # Building and pushing: # docker build -f opencv-dlib-torch.Dockerfile -t opencv-dlib-torch . # docker tag -f bamos/ubuntu-opencv-dlib-torch:ubuntu_14.04-opencv_2.4.11-dlib_18.16-torch_2016.03.19 # docker push bamos/ubuntu-opencv-dlib-torch:ubuntu_14.04-opencv_2.4.11-dlib_18.16-torch_2016.03.19 FROM ubuntu:14.04 MAINTAINER Brandon Amos RUN apt-get update && apt-get install -y \ build-essential \ cmake \ curl \ gfortran \ git \ graphicsmagick \ libgraphicsmagick1-dev \ libatlas-dev \ libavcodec-dev \ libavformat-dev \ libboost-all-dev \ libgtk2.0-dev \ libjpeg-dev \ liblapack-dev \ libswscale-dev \ pkg-config \ python-dev \ python-numpy \ python-protobuf\ software-properties-common \ zip \ && apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* RUN curl -s https://raw.githubusercontent.com/torch/ezinstall/master/install-deps | bash -e RUN git clone https://github.com/torch/distro.git ~/torch --recursive RUN cd ~/torch && ./install.sh && \ cd install/bin && \ ./luarocks install nn && \ ./luarocks install dpnn && \ ./luarocks install image && \ ./luarocks install optim && \ ./luarocks install csvigo && \ ./luarocks install torchx && \ ./luarocks install tds RUN cd ~ && \ mkdir -p ocv-tmp && \ cd ocv-tmp && \ curl -L https://github.com/Itseez/opencv/archive/2.4.11.zip -o ocv.zip && \ unzip ocv.zip && \ cd opencv-2.4.11 && \ mkdir release && \ cd release && \ cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D BUILD_PYTHON_SUPPORT=ON \ .. && \ make -j8 && \ make install && \ rm -rf ~/ocv-tmp RUN cd ~ && \ mkdir -p dlib-tmp && \ cd dlib-tmp && \ curl -L \ https://github.com/davisking/dlib/releases/download/v18.16/dlib-18.16.tar.bz2 \ -o dlib.tar.bz2 && \ tar xf dlib.tar.bz2 && \ cd dlib-18.16/python_examples && \ mkdir build && \ cd build && \ cmake ../../tools/python && \ cmake --build . --config Release && \ cp dlib.so /usr/local/lib/python2.7/dist-packages && \ rm -rf ~/dlib-tmp