Spaces:
Running
Running
# Ultralytics YOLO 🚀, AGPL-3.0 license | |
# Builds ultralytics/ultralytics:latest-cpu image on DockerHub https://hub.docker.com/r/ultralytics/ultralytics | |
# Image is CPU-optimized for ONNX, OpenVINO and PyTorch YOLO11 deployments | |
# Use official Python base image for reproducibility (3.11.10 for export and 3.12.6 for inference) | |
FROM python:3.11.10-slim-bookworm | |
# Set environment variables | |
ENV PYTHONUNBUFFERED=1 \ | |
PYTHONDONTWRITEBYTECODE=1 \ | |
PIP_NO_CACHE_DIR=1 \ | |
PIP_BREAK_SYSTEM_PACKAGES=1 | |
# 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 | |
RUN apt-get update && \ | |
apt-get install -y --no-install-recommends \ | |
python3-pip git zip unzip wget curl htop libgl1 libglib2.0-0 libpython3-dev gnupg g++ libusb-1.0-0 \ | |
&& rm -rf /var/lib/apt/lists/* | |
# Create working directory | |
WORKDIR /ultralytics | |
# Copy contents and configure git | |
COPY . . | |
RUN sed -i '/^\[http "https:\/\/github\.com\/"\]/,+1d' .git/config | |
ADD https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11n.pt . | |
# Install pip packages | |
RUN pip install uv | |
RUN uv pip install --system -e ".[export]" --extra-index-url https://download.pytorch.org/whl/cpu --index-strategy unsafe-first-match | |
# Run exports to AutoInstall packages | |
RUN yolo export model=tmp/yolo11n.pt format=edgetpu imgsz=32 | |
RUN yolo export model=tmp/yolo11n.pt format=ncnn imgsz=32 | |
# Requires Python<=3.10, bug with paddlepaddle==2.5.0 https://github.com/PaddlePaddle/X2Paddle/issues/991 | |
RUN uv pip install --system "paddlepaddle>=2.6.0" x2paddle | |
# Remove extra build files | |
RUN rm -rf tmp /root/.config/Ultralytics/persistent_cache.json | |
# Usage Examples ------------------------------------------------------------------------------------------------------- | |
# Build and Push | |
# t=ultralytics/ultralytics:latest-python && sudo docker build -f docker/Dockerfile-python -t $t . && sudo docker push $t | |
# Run | |
# t=ultralytics/ultralytics:latest-python && sudo docker run -it --ipc=host $t | |
# Pull and Run | |
# t=ultralytics/ultralytics:latest-python && sudo docker pull $t && sudo docker run -it --ipc=host $t | |
# Pull and Run with local volume mounted | |
# t=ultralytics/ultralytics:latest-python && sudo docker pull $t && sudo docker run -it --ipc=host -v "$(pwd)"/shared/datasets:/datasets $t | |