Meshroom/docker/Dockerfile_ubuntu_deps
Alastair D'Silva f934cb4454 Build working Meshroom images based on the latest Alicevision images
This patch builds upon the AliceVision PR:
https://github.com/alicevision/AliceVision/pull/853

It ensures that Centos images build a functioning Meshroom,
and also adds Ubuntu support.

The Docker images support launch the GUI via ssh:
docker run -it --runtime nvidia -p 2222:22 --name meshroom -v</path/to/your/data>:/data alicevision/meshroom:<meshroom branch/commit>-av<AliceVision branch/commit>-ubuntu20.04-cuda11.0
ssh -p 2222 -X root@<docker host> /opt/Meshroom_bundle/Meshroom # Password is 'meshroom'

The following OS/CUDA versions are supported:
CUDA_VERSION=11.0 UBUNTU_VERSION=20.04
CUDA_VERSION=11.0 UBUNTU_VERSION=18.04
CUDA_VERSION=10.2 UBUNTU_VERSION=18.04
CUDA_VERSION=9.2 UBUNTU_VERSION=18.04

CUDA_VERSION=10.2 CENTOS_VERSION=7
CUDA_VERSION=9.2 CENTOS_VERSION=7

To build all supported images:
AV_VERSION=<AliceVision version> docker/build-all.sh

Signed-off-by: Alastair D'Silva <alastair@d-silva.org>
2020-09-09 16:46:34 +02:00

75 lines
2.1 KiB
Text

ARG AV_VERSION
ARG CUDA_VERSION
ARG UBUNTU_VERSION
FROM alicevision/alicevision:${AV_VERSION}-ubuntu${UBUNTU_VERSION}-cuda${CUDA_VERSION}
LABEL maintainer="AliceVision Team alicevision-team@googlegroups.com"
# Execute with nvidia docker (https://github.com/nvidia/nvidia-docker/wiki/Installation-(version-2.0))
# docker run -it --runtime=nvidia meshroom
ENV MESHROOM_DEV=/opt/Meshroom \
MESHROOM_BUILD=/tmp/Meshroom_build \
QT_DIR=/opt/Qt5.14.1/5.14.1/gcc_64 \
QT_CI_LOGIN=alicevisionjunk@gmail.com \
QT_CI_PASSWORD=azerty1.
# Workaround for qmlAlembic/qtAliceVision builds: fuse lib/lib64 folders
#RUN ln -s ${AV_INSTALL}/lib ${AV_INSTALL}/lib64
# Install libs needed by Qt
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -yq --no-install-recommends \
flex \
fontconfig \
libfreetype6 \
libglib2.0-0 \
libice6 \
libx11-6 \
libxcb1 \
libxext6 \
libxi6 \
libxrender1 \
libsm6 \
libxt-dev \
libglu-dev \
libosmesa-dev \
libgl-dev \
libglu-dev \
libqt5charts5-dev \
libxcb-keysyms1 \
libxcb-image0 \
libxkbcommon-x11-0 \
libz-dev \
systemd \
ssh
# Disabled as QTOIIO requires ah least 5.13 (5.12 available in Ubuntu 20.04)
# qtdeclarative5-dev \
# qt3d-assimpsceneimport-plugin \
# qt3d-defaultgeometryloader-plugin \
# qt3d-gltfsceneio-plugin \
# qt3d-scene2d-plugin \
# qt53dextras5 \
# qt3d5-dev
RUN apt-get install -y --no-install-recommends \
software-properties-common
# Install Python3
RUN apt install python3-pip -y && pip3 install --upgrade pip
# Install Qt (to build plugins)
WORKDIR /tmp/qt
COPY dl/qt.run /tmp/qt
COPY ./docker/qt-installer-noninteractive.qs ${MESHROOM_DEV}/docker/
RUN chmod +x qt.run && \
./qt.run --verbose --platform minimal --script "${MESHROOM_DEV}/docker/qt-installer-noninteractive.qs" && \
rm qt.run
COPY ./*requirements.txt ./setup.py ${MESHROOM_DEV}/
# Install Meshroom requirements and freeze bundle
WORKDIR "${MESHROOM_DEV}"
RUN pip install -r dev_requirements.txt -r requirements.txt