From e4ddbcf01b2288b3c55d468ab654a9941480c026 Mon Sep 17 00:00:00 2001 From: Glenn Jocher Date: Tue, 18 Jul 2023 17:11:13 +0200 Subject: [PATCH] Add `Dockerfile-python` (#3814) --- docker/Dockerfile-arm64 | 5 ++++- docker/Dockerfile-cpu | 5 ++++- docker/Dockerfile-jetson | 5 ++++- docker/Dockerfile-python | 48 ++++++++++++++++++++++++++++++++++++++++ 4 files changed, 60 insertions(+), 3 deletions(-) create mode 100644 docker/Dockerfile-python diff --git a/docker/Dockerfile-arm64 b/docker/Dockerfile-arm64 index c4baaaa..f725257 100644 --- a/docker/Dockerfile-arm64 +++ b/docker/Dockerfile-arm64 @@ -33,5 +33,8 @@ RUN pip install --no-cache -e . thop # Build and Push # t=ultralytics/ultralytics:latest-arm64 && sudo docker build --platform linux/arm64 -f docker/Dockerfile-arm64 -t $t . && sudo docker push $t -# Pull and Run +# Run +# t=ultralytics/ultralytics:latest-arm64 && sudo docker run -it --ipc=host $t + +# Pull and Run with local volume mounted # t=ultralytics/ultralytics:latest-arm64 && sudo docker pull $t && sudo docker run -it --ipc=host -v "$(pwd)"/datasets:/usr/src/datasets $t diff --git a/docker/Dockerfile-cpu b/docker/Dockerfile-cpu index 0a65bd5..bdc0b9e 100644 --- a/docker/Dockerfile-cpu +++ b/docker/Dockerfile-cpu @@ -36,5 +36,8 @@ RUN pip install --no-cache -e . thop --extra-index-url https://download.pytorch. # Build and Push # t=ultralytics/ultralytics:latest-cpu && sudo docker build -f docker/Dockerfile-cpu -t $t . && sudo docker push $t -# Pull and Run +# Run +# t=ultralytics/ultralytics:latest-cpu && sudo docker run -it --ipc=host $t + +# Pull and Run with local volume mounted # t=ultralytics/ultralytics:latest-cpu && sudo docker pull $t && sudo docker run -it --ipc=host -v "$(pwd)"/datasets:/usr/src/datasets $t diff --git a/docker/Dockerfile-jetson b/docker/Dockerfile-jetson index e999500..0b7fd17 100644 --- a/docker/Dockerfile-jetson +++ b/docker/Dockerfile-jetson @@ -40,5 +40,8 @@ ENV OMP_NUM_THREADS=1 # Build and Push # t=ultralytics/ultralytics:latest-jetson && sudo docker build --platform linux/arm64 -f docker/Dockerfile-jetson -t $t . && sudo docker push $t -# Pull and Run +# Run +# t=ultralytics/ultralytics:latest-jetson && sudo docker run -it --ipc=host $t + +# Pull and Run with local volume mounted # t=ultralytics/ultralytics:jetson && sudo docker pull $t && sudo docker run -it --runtime=nvidia $t diff --git a/docker/Dockerfile-python b/docker/Dockerfile-python new file mode 100644 index 0000000..9b43756 --- /dev/null +++ b/docker/Dockerfile-python @@ -0,0 +1,48 @@ +# 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 YOLOv8 deployments + +# Use the official Python 3.10 slim-bookworm as base image +FROM python:3.10-slim-bookworm + +# Downloads to user config dir +ADD https://ultralytics.com/assets/Arial.ttf https://ultralytics.com/assets/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 update \ + && apt install --no-install-recommends -y python3-pip git zip curl htop libgl1-mesa-glx libglib2.0-0 libpython3-dev gnupg g++ libusb-1.0-0 +# RUN alias python=python3 + +# Create working directory +RUN mkdir -p /usr/src/ultralytics +WORKDIR /usr/src/ultralytics + +# Copy contents +# COPY . /usr/src/app (issues as not a .git directory) +RUN git clone https://github.com/ultralytics/ultralytics /usr/src/ultralytics +ADD https://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8n.pt /usr/src/ultralytics/ + +# Remove python3.11/EXTERNALLY-MANAGED or use 'pip install --break-system-packages' avoid 'externally-managed-environment' Ubuntu nightly error +# RUN rm -rf /usr/lib/python3.11/EXTERNALLY-MANAGED + +# Install pip packages +RUN python3 -m pip install --upgrade pip wheel +RUN pip install --no-cache -e '.[export]' thop py-cpuinfo --extra-index-url https://download.pytorch.org/whl/cpu + +# Run exports to AutoInstall packages +RUN yolo export format=edgetpu imgsz=32 +RUN yolo export format=ncnn imgsz=32 +# Requires <= Python 3.10, bug with paddlepaddle==2.5.0 +RUN pip install --no-cache paddlepaddle==2.4.2 x2paddle + +# 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 with local volume mounted +# t=ultralytics/ultralytics:latest-python && sudo docker pull $t && sudo docker run -it --ipc=host -v "$(pwd)"/datasets:/usr/src/datasets $t