Dockerfile 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. # Build container: docker build . -t almond
  2. # Run Almond: docker run -it --rm --net=host -v /root/.Xauthority:/root/.Xauthority --env="DISPLAY" almond
  3. FROM ubuntu:20.04
  4. ARG THREADS=4
  5. ENV DEBIAN_FRONTEND noninteractive
  6. ENV SOURCE_DIR /opt/Almond
  7. ENV VCPKG_DIR /opt/vcpkg
  8. ENV VCPKG_CMAKE_TOOLCHAIN ${VCPKG_DIR}/scripts/buildsystems/vcpkg.cmake
  9. RUN apt-get update
  10. RUN apt-get install -y \
  11. apt-utils \
  12. tzdata \
  13. cmake \
  14. make \
  15. git \
  16. curl \
  17. unzip \
  18. tar \
  19. libx11-dev \
  20. libglu1-mesa-dev \
  21. libxi-dev \
  22. libxext-dev \
  23. xorg
  24. # install dependencies using package manager
  25. RUN apt-get install -y \
  26. qt5-default \
  27. qttools5-dev \
  28. libavcodec-dev \
  29. libavdevice-dev \
  30. libavfilter-dev \
  31. libavformat-dev \
  32. libavutil-dev \
  33. libswscale-dev \
  34. pkg-config \
  35. libboost-dev \
  36. ocl-icd-opencl-dev \
  37. zlib1g-dev \
  38. libpng-dev \
  39. libjpeg-dev \
  40. libpng++-dev
  41. ENV CMAKE_MAKE_PROGRAM make
  42. # use clang
  43. # RUN apt-get install -y clang llvm
  44. # ENV CMAKE_C_COMPILER clang
  45. # ENV CMAKE_CXX_COMPILER clang++
  46. # use gcc
  47. RUN apt-get install -y gcc g++
  48. ENV CMAKE_C_COMPILER gcc
  49. ENV CMAKE_CXX_COMPILER g++
  50. # Use vcpkg, takes a long time
  51. # Also it gives following errow when installing qt5: Failed. Status: 35;"SSL connect error"
  52. #
  53. # RUN git clone https://github.com/microsoft/vcpkg.git ${VCPKG_DIR}
  54. # WORKDIR ${VCPKG_DIR}
  55. #
  56. # RUN ./bootstrap-vcpkg.sh
  57. # RUN ./vcpkg integrate install
  58. # RUN ./vcpkg install qt5:x64-linux
  59. # RUN ./vcpkg install boost:x64-linux
  60. # RUN ./vcpkg install ffmpeg:x64-linux
  61. # RUN ./vcpkg install opencl:x64-linux
  62. WORKDIR ${SOURCE_DIR}
  63. COPY . ${SOURCE_DIR}
  64. ENV RELEASE_DIR ${SOURCE_DIR}/build_release
  65. RUN mkdir ${RELEASE_DIR}
  66. WORKDIR ${RELEASE_DIR}
  67. RUN cmake .. \
  68. -DCMAKE_BUILD_TYPE=Release \
  69. # -DCMAKE_TOOLCHAIN_FILE=${VCPKG_CMAKE_TOOLCHAIN} \
  70. -DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM} \
  71. -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} \
  72. -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
  73. RUN make -j ${THREADS}
  74. RUN touch ~/.Xauthority
  75. RUN xauth add :0 . `mcookie`
  76. CMD ./almond