85 lines
3.1 KiB
Docker
85 lines
3.1 KiB
Docker
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 /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
|
|
|
|
COPY --chown=$USER pyproject.toml uv.lock /tmp/
|
|
COPY --chown=$USER tools/install_python_dependencies.sh /tmp/tools/
|
|
|
|
ENV VIRTUAL_ENV=/home/$USER/.venv
|
|
ENV PATH="$VIRTUAL_ENV/bin:$PATH"
|
|
RUN cd /tmp && \
|
|
tools/install_python_dependencies.sh && \
|
|
mkdir -p $VIRTUAL_ENV && \
|
|
cp -r /tmp/.venv/* $VIRTUAL_ENV && \
|
|
rm -rf /tmp/* && \
|
|
rm -rf /home/$USER/.cache
|
|
|
|
USER root
|
|
RUN sudo git config --global --add safe.directory /tmp/openpilot
|