Skip to content
Snippets Groups Projects
Dockerfile 3.28 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 \
    python3-pip \
    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

#RUN add-apt-repository ppa:beineri/opt-qt-6.2.0-bionic
RUN apt-get update
RUN apt-get install -y qt6-base-dev

#RUN apt-get update && apt-get install -y \
 #   build-essential \
  #  libxcb-xinerama0 \
   # libxcb1 \
    #qt5-qmake \
    #qtbase5-dev \
    #qtchooser \
    #qtbase5-dev-tools \
    #libxcb1-dev \
    #libssl-dev \
    #sip-dev \
    #&& apt-get clean

#RUN apt-get update && apt-get install -y \
 #   xvfb \
  #  && apt-get clean
#RUN apt-get update && apt-get install -y libgl1-mesa-glx libxkbcommon0 && apt-get clean
#RUN pip install --upgrade pip
#RUN pip install tf-slim
# Set python3.9 as the default python version
RUN update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 1

# Verify Python installation
RUN python3 --version
# Upgrade pip to the latest version
#RUN pip install --upgrade pip
Prema Soundararajan's avatar
Prema Soundararajan committed
# Install git
Prema Soundararajan's avatar
Prema Soundararajan committed
#RUN apt-get update 
Prema Soundararajan's avatar
Prema Soundararajan committed
#&& apt-get install -y git
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
RUN python3 -m venv deepenv

Prema Soundararajan's avatar
Prema Soundararajan committed
# Upgrade pip within the virtual environment
RUN pip install --upgrade pip

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 deeplabcut[gui]==2.3.8
# Install dependencies within the virtual environment
RUN /app/DeepLabCut/deepenv/bin/pip install -r requirements.txt
RUN /app/DeepLabCut/deepenv/bin/pip install deeplabcut[gui]==2.3.8
#RUN /app/DeepLabCut/deepenv/bin/pip install .["gui"]
# Install PyQt5 and Qt5 for graphical user interfaces
#RUN /app/DeepLabCut/deepenv/bin/pip install pyqt5==5.15.9 matplotlib==3.4.3
# Install PySide6 version 6.2.4 (compatible with DeepLabCut)
#RUN /app/DeepLabCut/deepenv/bin/pip install pyside6
#RUN pip install .["gui"]
Prema Soundararajan's avatar
Prema Soundararajan committed
# Create a virtual environment and activate it
Prema Soundararajan's avatar
Prema Soundararajan committed

Prema Soundararajan's avatar
Prema Soundararajan committed

Prema Soundararajan's avatar
Prema Soundararajan committed
# Install dependencies
ENTRYPOINT ["/bin/bash"]