# Ultralytics YOLO 🚀, AGPL-3.0 license # Builds GitHub actions CI runner image for deployment to DockerHub https://hub.docker.com/r/ultralytics/ultralytics # Image is CUDA-optimized for YOLO11 single/multi-GPU training and inference tests # Start FROM Ultralytics GPU image FROM ultralytics/ultralytics:latest # Set environment variables ENV PYTHONUNBUFFERED=1 \ PYTHONDONTWRITEBYTECODE=1 \ PIP_NO_CACHE_DIR=1 \ PIP_BREAK_SYSTEM_PACKAGES=1 \ RUNNER_ALLOW_RUNASROOT=1 \ DEBIAN_FRONTEND=noninteractive # Set the working directory WORKDIR /actions-runner # Download and unpack the latest runner from https://github.com/actions/runner RUN FILENAME=actions-runner-linux-x64-2.317.0.tar.gz && \ curl -o $FILENAME -L https://github.com/actions/runner/releases/download/v2.317.0/$FILENAME && \ tar xzf $FILENAME && \ rm $FILENAME # Install runner dependencies RUN pip install pytest-cov RUN ./bin/installdependencies.sh && \ apt-get -y install libicu-dev # Inline ENTRYPOINT command to configure and start runner with default TOKEN and NAME ENTRYPOINT sh -c './config.sh --url https://github.com/ultralytics/ultralytics \ --token ${GITHUB_RUNNER_TOKEN:-TOKEN} \ --name ${GITHUB_RUNNER_NAME:-NAME} \ --labels gpu-latest \ --replace && \ ./run.sh' # Usage Examples ------------------------------------------------------------------------------------------------------- # Build and Push # t=ultralytics/ultralytics:latest-runner && sudo docker build -f docker/Dockerfile-runner -t $t . && sudo docker push $t # Pull and Run in detached mode with access to GPUs 0 and 1 # t=ultralytics/ultralytics:latest-runner && sudo docker run -d -e GITHUB_RUNNER_TOKEN=TOKEN -e GITHUB_RUNNER_NAME=NAME --ipc=host --gpus '"device=0,1"' $t