1
0

Dockerfile 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  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. libavcodec-dev \
  28. libavdevice-dev \
  29. libavfilter-dev \
  30. libavformat-dev \
  31. libavutil-dev \
  32. libswscale-dev \
  33. pkg-config \
  34. libboost-dev \
  35. ocl-icd-opencl-dev \
  36. zlib1g-dev \
  37. libpng-dev \
  38. libjpeg-dev \
  39. libpng++-dev
  40. ENV CMAKE_MAKE_PROGRAM make
  41. # use clang
  42. # RUN apt-get install -y clang llvm
  43. # ENV CMAKE_C_COMPILER clang
  44. # ENV CMAKE_CXX_COMPILER clang++
  45. # use gcc
  46. RUN apt-get install -y gcc g++
  47. ENV CMAKE_C_COMPILER gcc
  48. ENV CMAKE_CXX_COMPILER g++
  49. # Use vcpkg, takes a long time
  50. # Also it gives following errow when installing qt5: Failed. Status: 35;"SSL connect error"
  51. #
  52. # RUN git clone https://github.com/microsoft/vcpkg.git ${VCPKG_DIR}
  53. # WORKDIR ${VCPKG_DIR}
  54. #
  55. # RUN ./bootstrap-vcpkg.sh
  56. # RUN ./vcpkg integrate install
  57. # RUN ./vcpkg install qt5:x64-linux
  58. # RUN ./vcpkg install boost:x64-linux
  59. # RUN ./vcpkg install ffmpeg:x64-linux
  60. # RUN ./vcpkg install opencl:x64-linux
  61. WORKDIR ${SOURCE_DIR}
  62. COPY . ${SOURCE_DIR}
  63. ENV RELEASE_DIR ${SOURCE_DIR}/build_release
  64. RUN mkdir ${RELEASE_DIR}
  65. WORKDIR ${RELEASE_DIR}
  66. RUN cmake .. \
  67. -DCMAKE_BUILD_TYPE=Release \
  68. # -DCMAKE_TOOLCHAIN_FILE=${VCPKG_CMAKE_TOOLCHAIN} \
  69. -DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM} \
  70. -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} \
  71. -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
  72. RUN make -j ${THREADS}
  73. RUN touch ~/.Xauthority
  74. RUN xauth add :0 . `mcookie`
  75. CMD ./almond