|  | @@ -0,0 +1,92 @@
 | 
	
		
			
				|  |  | +# Build container: docker build . -t almond
 | 
	
		
			
				|  |  | +# Run Almond: docker run -it --rm --net=host -v /root/.Xauthority:/root/.Xauthority --env="DISPLAY" almond
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +FROM ubuntu:20.04
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +ARG THREADS=4
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +ENV DEBIAN_FRONTEND noninteractive
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +ENV SOURCE_DIR /opt/Almond
 | 
	
		
			
				|  |  | +ENV VCPKG_DIR /opt/vcpkg
 | 
	
		
			
				|  |  | +ENV VCPKG_CMAKE_TOOLCHAIN ${VCPKG_DIR}/scripts/buildsystems/vcpkg.cmake
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +RUN apt-get update
 | 
	
		
			
				|  |  | +RUN apt-get install -y \
 | 
	
		
			
				|  |  | +                    apt-utils \
 | 
	
		
			
				|  |  | +                    tzdata \
 | 
	
		
			
				|  |  | +                    cmake \
 | 
	
		
			
				|  |  | +                    make \
 | 
	
		
			
				|  |  | +                    git \
 | 
	
		
			
				|  |  | +                    curl \
 | 
	
		
			
				|  |  | +                    unzip \
 | 
	
		
			
				|  |  | +                    tar \
 | 
	
		
			
				|  |  | +                    libx11-dev \
 | 
	
		
			
				|  |  | +                    libglu1-mesa-dev \
 | 
	
		
			
				|  |  | +                    libxi-dev \
 | 
	
		
			
				|  |  | +                    libxext-dev \
 | 
	
		
			
				|  |  | +                    xorg
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +# install dependencies using package manager
 | 
	
		
			
				|  |  | +RUN apt-get install -y \
 | 
	
		
			
				|  |  | +                    qt5-default \
 | 
	
		
			
				|  |  | +                    libavcodec-dev \
 | 
	
		
			
				|  |  | +                    libavdevice-dev \
 | 
	
		
			
				|  |  | +                    libavfilter-dev \
 | 
	
		
			
				|  |  | +                    libavformat-dev \
 | 
	
		
			
				|  |  | +                    libavutil-dev \
 | 
	
		
			
				|  |  | +                    libswscale-dev \
 | 
	
		
			
				|  |  | +                    pkg-config \
 | 
	
		
			
				|  |  | +                    libboost-dev \
 | 
	
		
			
				|  |  | +                    ocl-icd-opencl-dev \
 | 
	
		
			
				|  |  | +                    zlib1g-dev \
 | 
	
		
			
				|  |  | +                    libpng-dev \
 | 
	
		
			
				|  |  | +                    libjpeg-dev \
 | 
	
		
			
				|  |  | +                    libpng++-dev
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +ENV CMAKE_MAKE_PROGRAM make
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +# use clang
 | 
	
		
			
				|  |  | +# RUN apt-get install -y clang llvm
 | 
	
		
			
				|  |  | +# ENV CMAKE_C_COMPILER clang
 | 
	
		
			
				|  |  | +# ENV CMAKE_CXX_COMPILER clang++
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +# use gcc
 | 
	
		
			
				|  |  | +RUN apt-get install -y gcc g++
 | 
	
		
			
				|  |  | +ENV CMAKE_C_COMPILER gcc
 | 
	
		
			
				|  |  | +ENV CMAKE_CXX_COMPILER g++
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +# Use vcpkg, takes a long time
 | 
	
		
			
				|  |  | +# Also it gives following errow when installing qt5: Failed. Status: 35;"SSL connect error"
 | 
	
		
			
				|  |  | +#
 | 
	
		
			
				|  |  | +# RUN git clone https://github.com/microsoft/vcpkg.git ${VCPKG_DIR}
 | 
	
		
			
				|  |  | +# WORKDIR ${VCPKG_DIR}
 | 
	
		
			
				|  |  | +#
 | 
	
		
			
				|  |  | +# RUN ./bootstrap-vcpkg.sh
 | 
	
		
			
				|  |  | +# RUN ./vcpkg integrate install
 | 
	
		
			
				|  |  | +# RUN ./vcpkg install qt5:x64-linux
 | 
	
		
			
				|  |  | +# RUN ./vcpkg install boost:x64-linux
 | 
	
		
			
				|  |  | +# RUN ./vcpkg install ffmpeg:x64-linux
 | 
	
		
			
				|  |  | +# RUN ./vcpkg install opencl:x64-linux
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +WORKDIR ${SOURCE_DIR}
 | 
	
		
			
				|  |  | +COPY . ${SOURCE_DIR}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +ENV RELEASE_DIR ${SOURCE_DIR}/build_release
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +RUN mkdir ${RELEASE_DIR}
 | 
	
		
			
				|  |  | +WORKDIR ${RELEASE_DIR}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +RUN cmake .. \
 | 
	
		
			
				|  |  | +            -DCMAKE_BUILD_TYPE=Release \
 | 
	
		
			
				|  |  | +            # -DCMAKE_TOOLCHAIN_FILE=${VCPKG_CMAKE_TOOLCHAIN} \
 | 
	
		
			
				|  |  | +            -DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM} \
 | 
	
		
			
				|  |  | +            -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} \
 | 
	
		
			
				|  |  | +            -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +RUN make -j ${THREADS}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +RUN touch ~/.Xauthority
 | 
	
		
			
				|  |  | +RUN xauth add :0 . `mcookie`
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +CMD ./almond
 |