├── .dockerignore ├── Dockerfile.manylinux1_x86_64 ├── Dockerfile.python2 ├── Dockerfile.python3 └── README.md /.dockerignore: -------------------------------------------------------------------------------- 1 | * 2 | -------------------------------------------------------------------------------- /Dockerfile.manylinux1_x86_64: -------------------------------------------------------------------------------- 1 | FROM quay.io/pypa/manylinux1_x86_64 2 | 3 | 4 | # Install yumable dependencies 5 | RUN yum install -y \ 6 | git \ 7 | atlas-devel \ 8 | lapack-devel 9 | 10 | 11 | # cmake 12 | RUN \ 13 | mkdir -p /source && cd /source && \ 14 | curl -L https://cmake.org/files/v3.12/cmake-3.12.4.tar.gz | tar xz && \ 15 | cd /source/cmake-3.12.4 && \ 16 | ./bootstrap && make -j4 && make install && \ 17 | cd / && rm -rf /source/cmake-3.12.4 18 | 19 | 20 | # glog 21 | RUN \ 22 | mkdir -p /source && cd /source && \ 23 | curl -L https://github.com/google/glog/archive/v0.3.5.tar.gz | tar xz && \ 24 | cd /source/glog-0.3.5 && \ 25 | ./configure && \ 26 | make install && \ 27 | cd / && rm -rf /source/glog-0.3.5 28 | 29 | 30 | # gflags 31 | RUN \ 32 | mkdir -p /source && cd /source && \ 33 | curl -L https://github.com/gflags/gflags/archive/v2.2.2.tar.gz | tar xz && \ 34 | cd /source/gflags-2.2.2 && \ 35 | mkdir build && cd build && \ 36 | cmake .. -DCMAKE_CXX_FLAGS=-fPIC && \ 37 | make install && \ 38 | cd / && rm -rf /source/gflags-2.2.2 39 | 40 | 41 | # eigen3 42 | RUN \ 43 | mkdir -p /source && cd /source && \ 44 | curl -L http://bitbucket.org/eigen/eigen/get/3.3.5.tar.gz | tar xz && \ 45 | cd /source/eigen-eigen-* && \ 46 | mkdir build && cd build && \ 47 | cmake .. && \ 48 | make install && \ 49 | cd / && rm -rf /source/eigen-eigen-* 50 | 51 | 52 | # ceres 53 | RUN \ 54 | mkdir -p /source && cd /source && \ 55 | curl -L http://ceres-solver.org/ceres-solver-1.14.0.tar.gz | tar xz && \ 56 | cd /source/ceres-solver-1.14.0 && \ 57 | mkdir -p build && cd build && \ 58 | cmake .. -DCMAKE_C_FLAGS=-fPIC -DCMAKE_CXX_FLAGS=-fPIC -DBUILD_EXAMPLES=OFF -DBUILD_TESTING=OFF && \ 59 | make -j4 install && \ 60 | cd / && rm -rf /source/ceres-solver-1.14.0 61 | 62 | 63 | # opencv 64 | RUN \ 65 | mkdir -p /source && cd /source && \ 66 | curl -L https://github.com/opencv/opencv/archive/3.4.4.tar.gz | tar xz && \ 67 | cd /source/opencv-3.4.4 && \ 68 | mkdir -p build && cd build && \ 69 | cmake .. -DBUILD_LIST=core,imgproc,imgcodecs,calib3d && \ 70 | make -j4 install && \ 71 | cd / && rm -rf /source/opencv-3.4.4 72 | -------------------------------------------------------------------------------- /Dockerfile.python2: -------------------------------------------------------------------------------- 1 | FROM ubuntu:18.04 2 | 3 | ARG DEBIAN_FRONTEND=noninteractive 4 | 5 | # Install apt-getable dependencies 6 | RUN apt-get update \ 7 | && apt-get install -y \ 8 | build-essential \ 9 | cmake \ 10 | git \ 11 | libatlas-base-dev \ 12 | libeigen3-dev \ 13 | libgoogle-glog-dev \ 14 | libopencv-dev \ 15 | libsuitesparse-dev \ 16 | python-dev \ 17 | python-numpy \ 18 | python-opencv \ 19 | python-pip \ 20 | python-pyexiv2 \ 21 | python-pyproj \ 22 | python-scipy \ 23 | python-yaml \ 24 | curl \ 25 | && apt-get clean \ 26 | && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* 27 | 28 | 29 | # ceres 30 | RUN \ 31 | mkdir -p /source && cd /source && \ 32 | curl -L http://ceres-solver.org/ceres-solver-1.14.0.tar.gz | tar xz && \ 33 | cd /source/ceres-solver-1.14.0 && \ 34 | mkdir -p build && cd build && \ 35 | cmake .. -DCMAKE_C_FLAGS=-fPIC -DCMAKE_CXX_FLAGS=-fPIC -DBUILD_EXAMPLES=OFF -DBUILD_TESTING=OFF && \ 36 | make -j4 install && \ 37 | cd / && rm -rf /source/ceres-solver-1.14.0 38 | 39 | 40 | # opengv 41 | RUN \ 42 | mkdir -p /source && cd /source && \ 43 | git clone https://github.com/paulinus/opengv.git && \ 44 | cd /source/opengv && \ 45 | git submodule update --init --recursive && \ 46 | mkdir -p build && cd build && \ 47 | cmake .. -DBUILD_TESTS=OFF -DBUILD_PYTHON=ON -DPYBIND11_PYTHON_VERSION=2.7 && \ 48 | make install && \ 49 | cd / && rm -rf /source/opengv 50 | 51 | 52 | # Install python requirements 53 | RUN \ 54 | pip install exifread==2.1.2 \ 55 | gpxpy==1.1.2 \ 56 | networkx==1.11 \ 57 | numpy \ 58 | pyproj==1.9.5.1 \ 59 | pytest==3.0.7 \ 60 | python-dateutil==2.6.0 \ 61 | PyYAML==3.12 \ 62 | scipy \ 63 | xmltodict==0.10.2 \ 64 | cloudpickle==0.4.0 \ 65 | loky==1.2.1 66 | -------------------------------------------------------------------------------- /Dockerfile.python3: -------------------------------------------------------------------------------- 1 | FROM ubuntu:18.04 2 | 3 | ARG DEBIAN_FRONTEND=noninteractive 4 | 5 | # Install apt-getable dependencies 6 | RUN apt-get update \ 7 | && apt-get install -y \ 8 | build-essential \ 9 | cmake \ 10 | git \ 11 | libatlas-base-dev \ 12 | libeigen3-dev \ 13 | libgoogle-glog-dev \ 14 | libopencv-dev \ 15 | libsuitesparse-dev \ 16 | python3-dev \ 17 | python3-numpy \ 18 | python3-opencv \ 19 | python3-pip \ 20 | python3-pyproj \ 21 | python3-scipy \ 22 | python3-yaml \ 23 | curl \ 24 | vim \ 25 | && apt-get clean \ 26 | && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* 27 | 28 | 29 | # ceres 30 | RUN \ 31 | mkdir -p /source && cd /source && \ 32 | curl -L http://ceres-solver.org/ceres-solver-1.14.0.tar.gz | tar xz && \ 33 | cd /source/ceres-solver-1.14.0 && \ 34 | mkdir -p build && cd build && \ 35 | cmake .. -DCMAKE_C_FLAGS=-fPIC -DCMAKE_CXX_FLAGS=-fPIC -DBUILD_EXAMPLES=OFF -DBUILD_TESTING=OFF && \ 36 | make -j4 install && \ 37 | cd / && rm -rf /source/ceres-solver-1.14.0 38 | 39 | 40 | # opengv 41 | RUN \ 42 | mkdir -p /source && cd /source && \ 43 | git clone https://github.com/paulinus/opengv.git && \ 44 | cd /source/opengv && \ 45 | git submodule update --init --recursive && \ 46 | mkdir -p build && cd build && \ 47 | cmake .. -DBUILD_TESTS=OFF \ 48 | -DBUILD_PYTHON=ON \ 49 | -DPYBIND11_PYTHON_VERSION=3.6 \ 50 | -DPYTHON_INSTALL_DIR=/usr/local/lib/python3.6/dist-packages/ \ 51 | && \ 52 | make install && \ 53 | cd / && rm -rf /source/opengv 54 | 55 | 56 | # Install python requirements 57 | RUN \ 58 | pip3 install exifread==2.1.2 \ 59 | gpxpy==1.1.2 \ 60 | networkx==1.11 \ 61 | numpy \ 62 | pyproj==1.9.5.1 \ 63 | pytest==3.0.7 \ 64 | python-dateutil==2.6.0 \ 65 | PyYAML==3.12 \ 66 | scipy \ 67 | xmltodict==0.10.2 \ 68 | loky \ 69 | repoze.lru 70 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # opensfm-docker-base 2 | A base docker image to build OpenSfM with all dependencies included 3 | --------------------------------------------------------------------------------