You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							87 lines
						
					
					
						
							3.3 KiB
						
					
					
				
			
		
		
	
	
							87 lines
						
					
					
						
							3.3 KiB
						
					
					
				| FROM ubuntu:24.04
 | |
| 
 | |
| ENV PYTHONUNBUFFERED 1
 | |
| 
 | |
| ENV DEBIAN_FRONTEND=noninteractive
 | |
| RUN apt-get update && \
 | |
|     apt-get install -y --no-install-recommends sudo tzdata locales ssh pulseaudio xvfb x11-xserver-utils gnome-screenshot && \
 | |
|     rm -rf /var/lib/apt/lists/*
 | |
| 
 | |
| RUN sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && locale-gen
 | |
| ENV LANG en_US.UTF-8
 | |
| ENV LANGUAGE en_US:en
 | |
| ENV LC_ALL en_US.UTF-8
 | |
| 
 | |
| COPY tools/install_ubuntu_dependencies.sh /tmp/tools/
 | |
| RUN INSTALL_EXTRA_PACKAGES=no /tmp/tools/install_ubuntu_dependencies.sh && \
 | |
|     rm -rf /var/lib/apt/lists/* /tmp/* && \
 | |
|     cd /usr/lib/gcc/arm-none-eabi/* && \
 | |
|     rm -rf arm/ thumb/nofp thumb/v6* thumb/v8* thumb/v7+fp thumb/v7-r+fp.sp
 | |
| 
 | |
| # Add OpenCL
 | |
| RUN apt-get update && apt-get install -y --no-install-recommends \
 | |
|     apt-utils \
 | |
|     alien \
 | |
|     unzip \
 | |
|     tar \
 | |
|     curl \
 | |
|     xz-utils \
 | |
|     dbus \
 | |
|     gcc-arm-none-eabi \
 | |
|     tmux \
 | |
|     vim \
 | |
|     libx11-6 \
 | |
|     wget \
 | |
|   && rm -rf /var/lib/apt/lists/*
 | |
| 
 | |
| RUN mkdir -p /tmp/opencl-driver-intel && \
 | |
|     cd /tmp/opencl-driver-intel && \
 | |
|     wget https://github.com/intel/llvm/releases/download/2024-WW14/oclcpuexp-2024.17.3.0.09_rel.tar.gz && \
 | |
|     wget https://github.com/oneapi-src/oneTBB/releases/download/v2021.12.0/oneapi-tbb-2021.12.0-lin.tgz && \
 | |
|     mkdir -p /opt/intel/oclcpuexp_2024.17.3.0.09_rel && \
 | |
|     cd /opt/intel/oclcpuexp_2024.17.3.0.09_rel && \
 | |
|     tar -zxvf /tmp/opencl-driver-intel/oclcpuexp-2024.17.3.0.09_rel.tar.gz && \
 | |
|     mkdir -p /etc/OpenCL/vendors && \
 | |
|     echo /opt/intel/oclcpuexp_2024.17.3.0.09_rel/x64/libintelocl.so > /etc/OpenCL/vendors/intel_expcpu.icd && \
 | |
|     cd /opt/intel && \
 | |
|     tar -zxvf /tmp/opencl-driver-intel/oneapi-tbb-2021.12.0-lin.tgz && \
 | |
|     ln -s /opt/intel/oneapi-tbb-2021.12.0/lib/intel64/gcc4.8/libtbb.so /opt/intel/oclcpuexp_2024.17.3.0.09_rel/x64 && \
 | |
|     ln -s /opt/intel/oneapi-tbb-2021.12.0/lib/intel64/gcc4.8/libtbbmalloc.so /opt/intel/oclcpuexp_2024.17.3.0.09_rel/x64 && \
 | |
|     ln -s /opt/intel/oneapi-tbb-2021.12.0/lib/intel64/gcc4.8/libtbb.so.12 /opt/intel/oclcpuexp_2024.17.3.0.09_rel/x64 && \
 | |
|     ln -s /opt/intel/oneapi-tbb-2021.12.0/lib/intel64/gcc4.8/libtbbmalloc.so.2 /opt/intel/oclcpuexp_2024.17.3.0.09_rel/x64 && \
 | |
|     mkdir -p /etc/ld.so.conf.d && \
 | |
|     echo /opt/intel/oclcpuexp_2024.17.3.0.09_rel/x64 > /etc/ld.so.conf.d/libintelopenclexp.conf && \
 | |
|     ldconfig -f /etc/ld.so.conf.d/libintelopenclexp.conf && \
 | |
|     cd / && \
 | |
|     rm -rf /tmp/opencl-driver-intel
 | |
| 
 | |
| ENV NVIDIA_VISIBLE_DEVICES all
 | |
| ENV NVIDIA_DRIVER_CAPABILITIES graphics,utility,compute
 | |
| ENV QTWEBENGINE_DISABLE_SANDBOX 1
 | |
| 
 | |
| RUN dbus-uuidgen > /etc/machine-id
 | |
| 
 | |
| ARG USER=batman
 | |
| ARG USER_UID=1001
 | |
| RUN useradd -m -s /bin/bash -u $USER_UID $USER
 | |
| RUN usermod -aG sudo $USER
 | |
| RUN echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
 | |
| USER $USER
 | |
| 
 | |
| ENV POETRY_VIRTUALENVS_CREATE=false
 | |
| ENV PYENV_VERSION=3.12.4
 | |
| ENV PYENV_ROOT="/home/$USER/pyenv"
 | |
| ENV PATH="$PYENV_ROOT/bin:$PYENV_ROOT/shims:$PATH"
 | |
| 
 | |
| COPY --chown=$USER pyproject.toml poetry.lock /tmp/
 | |
| COPY --chown=$USER tools/install_python_dependencies.sh /tmp/tools/
 | |
| 
 | |
| RUN cd /tmp && \
 | |
|     tools/install_python_dependencies.sh && \
 | |
|     rm -rf /tmp/* && \
 | |
|     rm -rf /home/$USER/.cache && \
 | |
|     find /home/$USER/pyenv -type d -name ".git" | xargs rm -rf && \
 | |
|     rm -rf /home/$USER/pyenv/versions/3.12.4/lib/python3.12/test
 | |
| 
 | |
| USER root
 | |
| RUN sudo git config --global --add safe.directory /tmp/openpilot
 | |
| 
 |