1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- # Ultralytics YOLO 🚀, AGPL-3.0 license
- # Builds ultralytics/ultralytics:latest image on DockerHub https://hub.docker.com/r/ultralytics/ultralytics
- # Image is CUDA-optimized for YOLOv8 single/multi-GPU training and inference
- # Start FROM PyTorch image https://hub.docker.com/r/pytorch/pytorch or nvcr.io/nvidia/pytorch:23.03-py3
- FROM pytorch/pytorch:2.3.1-cuda12.1-cudnn8-runtime
- # Set environment variables
- ENV APP_HOME /usr/src/ultralytics
- # Avoid DDP error "MKL_THREADING_LAYER=INTEL is incompatible with libgomp.so.1 library" https://github.com/pytorch/pytorch/issues/37377
- ENV MKL_THREADING_LAYER=GNU
- # Downloads to user config dir
- ADD https://github.com/ultralytics/assets/releases/download/v0.0.0/Arial.ttf \
- https://github.com/ultralytics/assets/releases/download/v0.0.0/Arial.Unicode.ttf \
- /root/.config/Ultralytics/
- # Install linux packages
- # g++ required to build 'tflite_support' and 'lap' packages, libusb-1.0-0 required for 'tflite_support' package
- # libsm6 required by libqxcb to create QT-based windows for visualization; set 'QT_DEBUG_PLUGINS=1' to test in docker
- RUN apt update \
- && apt install --no-install-recommends -y gcc git zip unzip wget curl htop libgl1 libglib2.0-0 libpython3-dev gnupg g++ libusb-1.0-0 libsm6
- # Security updates
- # https://security.snyk.io/vuln/SNYK-UBUNTU1804-OPENSSL-3314796
- RUN apt upgrade --no-install-recommends -y openssl tar
- # Create working directory
- WORKDIR $APP_HOME
- # Copy contents and assign permissions
- COPY . $APP_HOME
- RUN git remote set-url origin https://github.com/ultralytics/ultralytics.git
- ADD https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8n.pt $APP_HOME
- # Install pip packages
- RUN python3 -m pip install --upgrade pip wheel
- # Pin TensorRT-cu12==10.1.0 to avoid 10.2.0 bug https://github.com/ultralytics/ultralytics/pull/14239 (note -cu12 must be used)
- RUN pip install --no-cache-dir -e ".[export]" "tensorrt-cu12==10.1.0" "albumentations>=1.4.6" comet pycocotools
- # Run exports to AutoInstall packages
- # Edge TPU export fails the first time so is run twice here
- RUN yolo export model=tmp/yolov8n.pt format=edgetpu imgsz=32 || yolo export model=tmp/yolov8n.pt format=edgetpu imgsz=32
- RUN yolo export model=tmp/yolov8n.pt format=ncnn imgsz=32
- # Requires <= Python 3.10, bug with paddlepaddle==2.5.0 https://github.com/PaddlePaddle/X2Paddle/issues/991
- RUN pip install --no-cache-dir "paddlepaddle>=2.6.0" x2paddle
- # Fix error: `np.bool` was a deprecated alias for the builtin `bool` segmentation error in Tests
- RUN pip install --no-cache-dir numpy==1.23.5
- # Remove exported models
- RUN rm -rf tmp
- # Usage Examples -------------------------------------------------------------------------------------------------------
- # Build and Push
- # t=ultralytics/ultralytics:latest && sudo docker build -f docker/Dockerfile -t $t . && sudo docker push $t
- # Pull and Run with access to all GPUs
- # t=ultralytics/ultralytics:latest && sudo docker pull $t && sudo docker run -it --ipc=host --gpus all $t
- # Pull and Run with access to GPUs 2 and 3 (inside container CUDA devices will appear as 0 and 1)
- # t=ultralytics/ultralytics:latest && sudo docker pull $t && sudo docker run -it --ipc=host --gpus '"device=2,3"' $t
- # Pull and Run with local directory access
- # t=ultralytics/ultralytics:latest && sudo docker pull $t && sudo docker run -it --ipc=host --gpus all -v "$(pwd)"/shared/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/ultralytics:latest)
- # DockerHub tag update
- # t=ultralytics/ultralytics:latest tnew=ultralytics/ultralytics: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/ultralytics:latest
|