Skip to content
Snippets Groups Projects
Dockerfile 2.64 KiB
Newer Older
Prema Soundararajan's avatar
Prema Soundararajan committed
# Use an official Python runtime as a parent imag
FROM ubuntu:jammy
Prema Soundararajan's avatar
Prema Soundararajan committed

# Set the working directory in the container
Prema Soundararajan's avatar
Prema Soundararajan committed
WORKDIR /app
Prema Soundararajan's avatar
Prema Soundararajan committed

Prema Soundararajan's avatar
Prema Soundararajan committed
# Install system dependencies (including git)

# Set environment variables to ensure non-interactive installations
ENV DEBIAN_FRONTEND=noninteractive
             
RUN apt-get update && apt-get install -y \
    software-properties-common \
    curl \
    gnupg2 \
    lsb-release \
    && add-apt-repository ppa:deadsnakes/ppa \
    && apt-get update \
    && rm -rf /var/lib/apt/lists/ 

# Install system dependencies (including Python, pip, git, and libraries)
RUN apt-get update && apt-get install -y \
    python3.9 \
    python3.9-dev \
    python3.9-venv \
    git \
    libegl1-mesa \
    libgles2-mesa \
    libgl1-mesa-glx \
    libx11-6 \
    libxext6 \
    libxi6 \
    libxrandr2 \
    libdbus-1-3 \
    libxkbcommon0 \
    libgl-dev \
    libatlas-base-dev \
    && rm -rf /var/lib/apt/lists \
    && apt-get clean

RUN apt-get update && apt-get install -y \
    binutils \
    libgomp1 \
    libglu1-mesa \
    libx11-6 \
    libxtst6 \
    libxrender1 \
    libxrandr2 \
    libxcursor1 \
    libglib2.0-0 \
    libxcb-xinerama0 \
    libxkbcommon-x11-0 \
    mesa-utils \
    openbox \
    x11-apps \
    xorg \
    zip \
    && rm -rf /var/lib/apt/lists
Premas's avatar
Premas committed
#RUN apt-get update
#RUN apt-get install -y qt6-base-dev
Premas's avatar
Premas committed

Premas's avatar
Premas committed
RUN apt-get update && apt-get install -y \
    qtbase5-dev \
    qttools5-dev-tools \
    libqt5x11extras5 \
    libqt5gui5 \
    libqt5widgets5 \
    libqt5core5a \
    && rm -rf /var/lib/apt/lists/*
Prema Soundararajan's avatar
Prema Soundararajan committed

RUN update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 1

# Verify Python installation
RUN python3 --version
Prema Soundararajan's avatar
Prema Soundararajan committed

# Clone the DeepLabCut repository
Prema Soundararajan's avatar
Prema Soundararajan committed
RUN git clone https://github.com/DeepLabCut/DeepLabCut.git
Prema Soundararajan's avatar
Prema Soundararajan committed

# Change the working directory to DeepLabCut
Prema Soundararajan's avatar
Prema Soundararajan committed
WORKDIR /app/DeepLabCut
Premas's avatar
Premas committed
RUN git checkout v2.3.8

Prema Soundararajan's avatar
Prema Soundararajan committed
RUN python3 -m venv deepenv

Prema Soundararajan's avatar
Prema Soundararajan committed

Prema Soundararajan's avatar
Prema Soundararajan committed
# Upgrade pip within the virtual environment
Premas's avatar
Premas committed
RUN /app/DeepLabCut/deepenv/bin/pip install --upgrade pip
Premas's avatar
Premas committed
####
Premas's avatar
Premas committed
#RUN /app/DeepLabCut/deepenv/bin/pip install pyqt5
Prema Soundararajan's avatar
Prema Soundararajan committed

RUN /app/DeepLabCut/deepenv/bin/pip install wheel
# Install compatible versions of numpy and typing-extensions
RUN /app/DeepLabCut/deepenv/bin/pip install numpy==1.24.3 typing-extensions==4.5.0
RUN /app/DeepLabCut/deepenv/bin/pip install -r requirements.txt
Premas's avatar
Premas committed
#RUN /app/DeepLabCut/deepenv/bin/pip install deeplabcut[gui]==2.3.8
RUN /app/DeepLabCut/deepenv/bin/pip install .["gui"]
Prema Soundararajan's avatar
Prema Soundararajan committed
# Set the entry point to use the correct Python from the virtual environment
Premas's avatar
Premas committed
#ENTRYPOINT ["/app/DeepLabCut/deepenv/bin/python3", "-m", "deeplabcut"]

Premas's avatar
Premas committed
RUN strip --remove-section=.note.ABI-tag /lib/x86_64-linux-gnu/libQt5Core.so.5
Premas's avatar
Premas committed
ENTRYPOINT ["/bin/bash"]