You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.9 KiB
45 lines
1.9 KiB
# 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 YOLOv8 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
|
|
|