-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: Bubbles The Dev <[email protected]>
- Loading branch information
Showing
1 changed file
with
23 additions
and
57 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,74 +1,40 @@ | ||
# YOLOv5 🚀 by Ultralytics, GPL-3.0 license | ||
# Builds ultralytics/yolov5:latest image on DockerHub https://hub.docker.com/r/ultralytics/yolov5 | ||
# Image is CUDA-optimized for YOLOv5 single/multi-GPU training and inference | ||
# Start with an official CUDA base image that is compatible with PyTorch 2.5.1 | ||
FROM nvidia/cuda:11.8.0-cudnn8-runtime-ubuntu20.04 | ||
|
||
# Start FROM PyTorch image https://hub.docker.com/r/pytorch/pytorch | ||
FROM pytorch/pytorch:2.0.0-cuda11.7-cudnn8-runtime | ||
# Set environment variable to suppress prompts during installation | ||
ENV DEBIAN_FRONTEND=noninteractive | ||
|
||
# Downloads to user config dir | ||
ADD https://ultralytics.com/assets/Arial.ttf https://ultralytics.com/assets/Arial.Unicode.ttf /root/.config/Ultralytics/ | ||
# Install Python and other dependencies | ||
RUN apt-get update && apt-get install -y \ | ||
python3 python3-pip python3-dev \ | ||
gcc git zip curl htop libgl1-mesa-glx libglib2.0-0 tzdata && \ | ||
rm -rf /var/lib/apt/lists/* | ||
|
||
# Install linux packages | ||
ENV DEBIAN_FRONTEND noninteractive | ||
RUN apt update | ||
RUN TZ=Etc/UTC apt install -y tzdata | ||
RUN apt install --no-install-recommends -y gcc git zip curl htop libgl1-mesa-glx libglib2.0-0 libpython3-dev gnupg | ||
# RUN alias python=python3 | ||
# Set Python 3 as default | ||
RUN update-alternatives --install /usr/bin/python python /usr/bin/python3 1 | ||
|
||
# Security updates | ||
# https://security.snyk.io/vuln/SNYK-UBUNTU1804-OPENSSL-3314796 | ||
RUN apt upgrade --no-install-recommends -y openssl | ||
# Upgrade pip and install PyTorch 2.5.1 with CUDA 11.8 | ||
RUN pip install --upgrade pip | ||
RUN pip install torch==2.5.1+cu118 torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 | ||
|
||
# Create working directory | ||
RUN rm -rf /usr/src/app && mkdir -p /usr/src/app | ||
RUN mkdir -p /usr/src/app | ||
WORKDIR /usr/src/app | ||
|
||
# Copy contents | ||
# COPY . /usr/src/app (issues as not a .git directory) | ||
# Clone the latest YOLOv5 repository | ||
RUN git clone https://github.com/ultralytics/yolov5 /usr/src/app | ||
|
||
# Install pip packages | ||
# Copy requirements.txt if you have custom dependencies | ||
COPY requirements.txt . | ||
RUN python3 -m pip install --upgrade pip wheel | ||
RUN pip install --no-cache -r requirements.txt albumentations comet gsutil notebook \ | ||
RUN pip install --no-cache-dir -r requirements.txt albumentations comet gsutil notebook \ | ||
coremltools onnx onnx-simplifier onnxruntime 'openvino-dev>=2022.3' | ||
# tensorflow tensorflowjs \ | ||
|
||
# Set environment variables | ||
ENV OMP_NUM_THREADS=1 | ||
|
||
# Cleanup | ||
ENV DEBIAN_FRONTEND teletype | ||
# Add any other optional configurations or commands here | ||
# ... | ||
|
||
|
||
# Usage Examples ------------------------------------------------------------------------------------------------------- | ||
|
||
# Build and Push | ||
# t=ultralytics/yolov5:latest && sudo docker build -f utils/docker/Dockerfile -t $t . && sudo docker push $t | ||
|
||
# Pull and Run | ||
# t=ultralytics/yolov5:latest && sudo docker pull $t && sudo docker run -it --ipc=host --gpus all $t | ||
|
||
# Pull and Run with local directory access | ||
# t=ultralytics/yolov5:latest && sudo docker pull $t && sudo docker run -it --ipc=host --gpus all -v "$(pwd)"/datasets:/usr/src/datasets $t | ||
|
||
# Kill all | ||
# sudo docker kill $(sudo docker ps -q) | ||
|
||
# Kill all image-based | ||
# sudo docker kill $(sudo docker ps -qa --filter ancestor=ultralytics/yolov5:latest) | ||
|
||
# DockerHub tag update | ||
# t=ultralytics/yolov5:latest tnew=ultralytics/yolov5:v6.2 && sudo docker pull $t && sudo docker tag $t $tnew && sudo docker push $tnew | ||
|
||
# Clean up | ||
# sudo docker system prune -a --volumes | ||
|
||
# Update Ubuntu drivers | ||
# https://www.maketecheasier.com/install-nvidia-drivers-ubuntu/ | ||
|
||
# DDP test | ||
# python -m torch.distributed.run --nproc_per_node 2 --master_port 1 train.py --epochs 3 | ||
|
||
# GCP VM from Image | ||
# docker.io/ultralytics/yolov5:latest | ||
# Usage Examples (commented for reference) | ||
# To build: docker build -t my-yolov5-image . | ||
# To run: docker run -it --ipc=host --gpus all my-yolov5-im |