Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
79 changes: 0 additions & 79 deletions docker/Dockerfile_centos

This file was deleted.

67 changes: 0 additions & 67 deletions docker/Dockerfile_centos_deps

This file was deleted.

70 changes: 70 additions & 0 deletions docker/Dockerfile_rocky
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
ARG MESHROOM_VERSION
ARG AV_VERSION
ARG CUDA_VERSION
ARG ROCKY_VERSION
FROM alicevision/meshroom-deps:${MESHROOM_VERSION}-av${AV_VERSION}-rocky${ROCKY_VERSION}-cuda${CUDA_VERSION}
LABEL maintainer="AliceVision Team [email protected]"

# Execute with nvidia docker (https://github.com/nvidia/nvidia-docker/wiki/Installation-(version-2.0))
# docker run -it --runtime nvidia -p 2222:22 --name meshroom -v</path/to/your/data>:/data alicevision/meshroom:develop-av2.2.8.develop-ubuntu20.04-cuda11.0
# ssh -p 2222 -X root@<docker host> /opt/Meshroom_bundle/Meshroom # Password is 'meshroom'

RUN dnf install -y patchelf

ENV MESHROOM_DEV=/opt/Meshroom \
MESHROOM_BUILD=/tmp/Meshroom_build \
MESHROOM_BUNDLE=/opt/Meshroom_bundle \
AV_INSTALL=/opt/AliceVision_install \
QT_DIR=/opt/Qt/6.8.3/gcc_64 \
PATH="${PATH}:${MESHROOM_BUNDLE}"

COPY *.txt *.md *.py ${MESHROOM_DEV}/
COPY ./docs ${MESHROOM_DEV}/docs
COPY ./meshroom ${MESHROOM_DEV}/meshroom
COPY ./tests ${MESHROOM_DEV}/tests
COPY ./bin ${MESHROOM_DEV}/bin

WORKDIR ${MESHROOM_DEV}

RUN python setup.py install_exe -d "${MESHROOM_BUNDLE}" && \
find ${MESHROOM_BUNDLE} -name "*Qt6Web*" -delete && \
find ${MESHROOM_BUNDLE} -name "*Qt6Designer*" -delete && \
rm -rf ${MESHROOM_BUNDLE}/lib/PySide6/typesystems/ \
${MESHROOM_BUNDLE}/lib/PySide6/examples/ \
${MESHROOM_BUNDLE}/lib/PySide6/include/ \
${MESHROOM_BUNDLE}/lib/PySide6/Qt/translations/ \
${MESHROOM_BUNDLE}/lib/PySide6/Qt/resources/ \
${MESHROOM_BUNDLE}/lib/PySide6/QtWeb* \
${MESHROOM_BUNDLE}/lib/PySide6/rcc \
${MESHROOM_BUNDLE}/lib/PySide6/designer

WORKDIR ${MESHROOM_BUILD}

# Build Meshroom plugins
RUN cmake "${MESHROOM_DEV}" -DALICEVISION_ROOT="${AV_INSTALL}" -DCMAKE_INSTALL_PREFIX="${MESHROOM_BUNDLE}/qtPlugins"
RUN make "-j$(nproc)" QtAliceVision
RUN make "-j$(nproc)" && \
rm -rf "${MESHROOM_BUILD}" "${MESHROOM_DEV}" \
${MESHROOM_BUNDLE}/aliceVision/share/doc \
${MESHROOM_BUNDLE}/aliceVision/share/eigen3 \
${MESHROOM_BUNDLE}/aliceVision/share/fonts \
${MESHROOM_BUNDLE}/aliceVision/share/lemon \
${MESHROOM_BUNDLE}/aliceVision/share/libraw \
${MESHROOM_BUNDLE}/aliceVision/share/man/ \
aliceVision/share/pkgconfig

# Enable SSH X11 forwarding, needed when the Docker image
# is run on a remote machine
RUN dnf install -y openssh openssh-clients openssh-server xorg-x11-xauth
RUN systemctl enable sshd && \
mkdir -p /run/sshd && \
ssh-keygen -A

RUN sed -i "s/^.*X11Forwarding.*$/X11Forwarding yes/; s/^.*X11UseLocalhost.*$/X11UseLocalhost no/; s/^.*PermitRootLogin prohibit-password/PermitRootLogin yes/; s/^.*X11UseLocalhost.*/X11UseLocalhost no/;" /etc/ssh/sshd_config
RUN echo "root:meshroom" | chpasswd

WORKDIR /root

EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]

45 changes: 45 additions & 0 deletions docker/Dockerfile_rocky_deps
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
ARG AV_VERSION
ARG CUDA_VERSION
ARG ROCKY_VERSION
FROM alicevision/alicevision:${AV_VERSION}-rocky${ROCKY_VERSION}-cuda${CUDA_VERSION}
LABEL maintainer="AliceVision Team [email protected]"

# 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/Qt/6.8.3/gcc_64 \
[email protected] \
QT_CI_P=azerty1.

# Install libs needed by Qt
RUN dnf update -y
RUN dnf install -y flex fontconfig freetype glib2-devel libICE
RUN dnf install -y libX11 libXext libXi libXrender libSM
RUN dnf install -y libXt-devel mesa-libGLU-devel mesa-libOSMesa-devel mesa-libGL-devel mesa-libEGL-devel
RUN dnf install -y zlib-devel systemd openssh-server
RUN dnf install -y libxcb-devel \
libxkbcommon-devel \
libxkbcommon-x11-devel \
xcb-util-wm xcb-util-image \
xcb-util-keysyms \
xcb-util-renderutil

# Install Qt (to build plugins)
WORKDIR /tmp/qt
COPY dl/qt.run /tmp/qt
RUN chmod +x qt.run
RUN ./qt.run --verbose --email ${QT_CI_LOGIN} --password ${QT_CI_P} --accept-obligations --accept-licenses \
--default-answer --platform minimal --auto-answer installationErrorWithCancel=Ignore --no-force-installations --no-default-installations --confirm-command \
install qt.qt6.683.linux_gcc_64 qt.qt6.683.addons.qtcharts qt.qt6.683.addons.qt3d
RUN rm qt.run

# Strip sections containing ".note.ABI.tag" from .so: https://github.com/Microsoft/WSL/issues/3023
RUN find ${QT_DIR}/lib/ -name '*.so' | xargs strip --remove-section=.note.ABI-tag

COPY ./*requirements.txt ./setup.py ${MESHROOM_DEV}/

# Install Meshroom requirements and freeze bundle
WORKDIR "${MESHROOM_DEV}"
RUN python -m pip install -r dev_requirements.txt -r requirements.txt
32 changes: 13 additions & 19 deletions docker/Dockerfile_ubuntu
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,8 @@ ENV MESHROOM_DEV=/opt/Meshroom \
MESHROOM_BUILD=/tmp/Meshroom_build \
MESHROOM_BUNDLE=/opt/Meshroom_bundle \
AV_INSTALL=/opt/AliceVision_install \
QT_DIR=/opt/Qt/5.15.2/gcc_64 \
PATH="${PATH}:${MESHROOM_BUNDLE}" \
OPENIMAGEIO_LIBRARY=/opt/AliceVision_install/lib
QT_DIR=/opt/Qt/6.8.3/gcc_64 \
PATH="${PATH}:${MESHROOM_BUNDLE}"

COPY *.txt *.md *.py ${MESHROOM_DEV}/
COPY ./docs ${MESHROOM_DEV}/docs
Expand All @@ -25,18 +24,17 @@ COPY ./bin ${MESHROOM_DEV}/bin

WORKDIR ${MESHROOM_DEV}

RUN python3 setup.py install_exe -d "${MESHROOM_BUNDLE}" && \
find ${MESHROOM_BUNDLE} -name "*Qt5Web*" -delete && \
find ${MESHROOM_BUNDLE} -name "*Qt5Designer*" -delete && \
rm -rf ${MESHROOM_BUNDLE}/lib/PySide2/typesystems/ \
${MESHROOM_BUNDLE}/lib/PySide2/examples/ \
${MESHROOM_BUNDLE}/lib/PySide2/include/ \
${MESHROOM_BUNDLE}/lib/PySide2/Qt/translations/ \
${MESHROOM_BUNDLE}/lib/PySide2/Qt/resources/ \
${MESHROOM_BUNDLE}/lib/PySide2/QtWeb* \
${MESHROOM_BUNDLE}/lib/PySide2/pyside2-lupdate \
${MESHROOM_BUNDLE}/lib/PySide2/rcc \
${MESHROOM_BUNDLE}/lib/PySide2/designer
RUN python setup.py install_exe -d "${MESHROOM_BUNDLE}" && \
find ${MESHROOM_BUNDLE} -name "*Qt6Web*" -delete && \
find ${MESHROOM_BUNDLE} -name "*Qt6Designer*" -delete && \
rm -rf ${MESHROOM_BUNDLE}/lib/PySide6/typesystems/ \
${MESHROOM_BUNDLE}/lib/PySide6/examples/ \
${MESHROOM_BUNDLE}/lib/PySide6/include/ \
${MESHROOM_BUNDLE}/lib/PySide6/Qt/translations/ \
${MESHROOM_BUNDLE}/lib/PySide6/Qt/resources/ \
${MESHROOM_BUNDLE}/lib/PySide6/QtWeb* \
${MESHROOM_BUNDLE}/lib/PySide6/rcc \
${MESHROOM_BUNDLE}/lib/PySide6/designer

WORKDIR ${MESHROOM_BUILD}

Expand All @@ -53,9 +51,6 @@ RUN make "-j$(nproc)" && \
${MESHROOM_BUNDLE}/aliceVision/share/man/ \
aliceVision/share/pkgconfig

# Copy missing libassimpsceneimport.so
COPY dl/libassimpsceneimport.so ${MESHROOM_BUNDLE}/lib/PySide2/Qt/plugins/sceneparsers

# Enable SSH X11 forwarding, needed when the Docker image
# is run on a remote machine
RUN apt install ssh xauth && \
Expand All @@ -69,4 +64,3 @@ WORKDIR /root

EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]

41 changes: 25 additions & 16 deletions docker/Dockerfile_ubuntu_deps
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,10 @@ LABEL maintainer="AliceVision Team [email protected]"

ENV MESHROOM_DEV=/opt/Meshroom \
MESHROOM_BUILD=/tmp/Meshroom_build \
QT_DIR=/opt/Qt/5.15.2/gcc_64 \
QT_DIR=/opt/Qt/6.8.3/gcc_64 \
[email protected] \
QT_CI_P=azerty1.

# Workaround for 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 \
Expand All @@ -29,38 +26,50 @@ RUN apt-get update && \
libxext6 \
libxi6 \
libxrender1 \
libsm6 \
libsm6

RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -yq --no-install-recommends \
libxt-dev \
libglu-dev \
libosmesa-dev \
libgl-dev \
libegl-dev \
libglu-dev \
libqt5charts5-dev \
libxkbcommon-x11-0 \
libz-dev \
systemd \
ssh

RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -yq --no-install-recommends \
libxcb1-dev \
libxcb-icccm4 \
libxcb-render-util0 \
libxcb-shape0 \
libxcb-keysyms1 \
libxcb-image0 \
libxkbcommon-x11-0 \
libz-dev \
systemd \
ssh
libxkbcommon-dev

RUN apt-get install -y --no-install-recommends \
software-properties-common

# Install Python3
RUN apt install python3-pip -y && pip3 install --upgrade pip
# RUN apt install python3-pip -y && pip3 install --upgrade pip

# Install Qt (to build plugins)
WORKDIR /tmp/qt
COPY dl/qt.run /tmp/qt
RUN chmod +x qt.run
RUN ./qt.run --verbose --email ${QT_CI_LOGIN} --password ${QT_CI_P} --accept-obligations --accept-licenses \
--default-answer --platform minimal --no-force-installations --no-default-installations --confirm-command \
install qt.qt5.5152.gcc_64 qt.qt5.5152.qtcharts qt.qt5.5152.qtcharts.gcc_64
--default-answer --platform minimal --auto-answer installationErrorWithCancel=Ignore --no-force-installations --no-default-installations --confirm-command \
install qt.qt6.683.linux_gcc_64 qt.qt6.683.addons.qtcharts qt.qt6.683.addons.qt3d
RUN rm qt.run

# Strip sections containing ".note.ABI.tag" from .so: https://github.com/Microsoft/WSL/issues/3023
RUN find ${QT_DIR}/lib/ -name '*.so' | xargs strip --remove-section=.note.ABI-tag

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

RUN python -m pip install -r dev_requirements.txt -r requirements.txt
Loading