# YOLOv8 training environment (NVIDIA GPU) # # The image contains Python, PyTorch and Ultralytics only. The project # directory (including data.yaml, train/valid/test and *.pt files) is mounted # at /workspace when the container is started; this keeps the image small. FROM nvidia/cuda:12.4.1-cudnn-runtime-ubuntu22.04 ENV DEBIAN_FRONTEND=noninteractive \ PYTHONDONTWRITEBYTECODE=1 \ PYTHONUNBUFFERED=1 \ PIP_NO_CACHE_DIR=1 \ NVIDIA_VISIBLE_DEVICES=all \ NVIDIA_DRIVER_CAPABILITIES=compute,utility RUN apt-get update \ && apt-get install -y --no-install-recommends \ ca-certificates \ libglib2.0-0 \ libgl1 \ libsm6 \ libxext6 \ libxrender1 \ python3 \ python3-dev \ python3-pip \ && rm -rf /var/lib/apt/lists/* # PyTorch 2.5.1 is paired with torchvision 0.20.1 and CUDA 12.4. RUN python3 -m pip install --upgrade pip \ && python3 -m pip install \ torch==2.5.1 \ torchvision==0.20.1 \ --index-url https://download.pytorch.org/whl/cu124 \ && python3 -m pip install ultralytics==8.3.0 WORKDIR /workspace # These files make the image usable for a quick smoke test. The normal run # command mounts the whole project over /workspace. COPY train_yolov8.py data.yaml ./ ENTRYPOINT ["python3", "train_yolov8.py"]