| ARG RELEASE |
| ARG LAUNCHPAD_BUILD_ARCH |
| LABEL org.opencontainers.image.ref.name=ubuntu |
| LABEL org.opencontainers.image.version=22.04 |
| ADD file:3bd10da0673e2e72cb06a1f64a9df49a36341df39b0f762e3d1b38ee4de296fa in / |
| CMD ["/bin/bash"] |
| ENV NVARCH=x86_64 |
| ENV NVIDIA_REQUIRE_CUDA=cuda>=12.4 brand=tesla,driver>=470,driver<471 brand=unknown,driver>=470,driver<471 brand=nvidia,driver>=470,driver<471 brand=nvidiartx,driver>=470,driver<471 brand=geforce,driver>=470,driver<471 brand=geforcertx,driver>=470,driver<471 brand=quadro,driver>=470,driver<471 brand=quadrortx,driver>=470,driver<471 brand=titan,driver>=470,driver<471 brand=titanrtx,driver>=470,driver<471 brand=tesla,driver>=525,driver<526 brand=unknown,driver>=525,driver<526 brand=nvidia,driver>=525,driver<526 brand=nvidiartx,driver>=525,driver<526 brand=geforce,driver>=525,driver<526 brand=geforcertx,driver>=525,driver<526 brand=quadro,driver>=525,driver<526 brand=quadrortx,driver>=525,driver<526 brand=titan,driver>=525,driver<526 brand=titanrtx,driver>=525,driver<526 brand=tesla,driver>=535,driver<536 brand=unknown,driver>=535,driver<536 brand=nvidia,driver>=535,driver<536 brand=nvidiartx,driver>=535,driver<536 brand=geforce,driver>=535,driver<536 brand=geforcertx,driver>=535,driver<536 brand=quadro,driver>=535,driver<536 brand=quadrortx,driver>=535,driver<536 brand=titan,driver>=535,driver<536 brand=titanrtx,driver>=535,driver<536 |
| ENV NV_CUDA_CUDART_VERSION=12.4.127-1 |
| ENV NV_CUDA_COMPAT_PACKAGE=cuda-compat-12-4 |
| ARG TARGETARCH |
| LABEL maintainer=NVIDIA CORPORATION <cudatools@nvidia.com> |
| RUN |1 TARGETARCH=amd64 /bin/sh -c apt-get update && apt-get install -y --no-install-recommends gnupg2 curl ca-certificates && curl -fsSLO https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/${NVARCH}/cuda-keyring_1.1-1_all.deb && dpkg -i cuda-keyring_1.1-1_all.deb && apt-get purge --autoremove -y curl && rm -rf /var/lib/apt/lists/* # buildkit |
| ENV CUDA_VERSION=12.4.1 |
| RUN |1 TARGETARCH=amd64 /bin/sh -c apt-get update && apt-get install -y --no-install-recommends cuda-cudart-12-4=${NV_CUDA_CUDART_VERSION} ${NV_CUDA_COMPAT_PACKAGE} && rm -rf /var/lib/apt/lists/* # buildkit |
| RUN |1 TARGETARCH=amd64 /bin/sh -c echo "/usr/local/nvidia/lib" >> /etc/ld.so.conf.d/nvidia.conf && echo "/usr/local/nvidia/lib64" >> /etc/ld.so.conf.d/nvidia.conf # buildkit |
| ENV PATH=/usr/local/nvidia/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin |
| ENV LD_LIBRARY_PATH=/usr/local/nvidia/lib:/usr/local/nvidia/lib64 |
| COPY NGC-DL-CONTAINER-LICENSE / # buildkit |
| ENV NVIDIA_VISIBLE_DEVICES=all |
| ENV NVIDIA_DRIVER_CAPABILITIES=compute,utility |
| ENV NV_CUDA_LIB_VERSION=12.4.1-1 |
| ENV NV_NVTX_VERSION=12.4.127-1 |
| ENV NV_LIBNPP_VERSION=12.2.5.30-1 |
| ENV NV_LIBNPP_PACKAGE=libnpp-12-4=12.2.5.30-1 |
| ENV NV_LIBCUSPARSE_VERSION=12.3.1.170-1 |
| ENV NV_LIBCUBLAS_PACKAGE_NAME=libcublas-12-4 |
| ENV NV_LIBCUBLAS_VERSION=12.4.5.8-1 |
| ENV NV_LIBCUBLAS_PACKAGE=libcublas-12-4=12.4.5.8-1 |
| ENV NV_LIBNCCL_PACKAGE_NAME=libnccl2 |
| ENV NV_LIBNCCL_PACKAGE_VERSION=2.21.5-1 |
| ENV NCCL_VERSION=2.21.5-1 |
| ENV NV_LIBNCCL_PACKAGE=libnccl2=2.21.5-1+cuda12.4 |
| ARG TARGETARCH |
| LABEL maintainer=NVIDIA CORPORATION <cudatools@nvidia.com> |
| RUN |1 TARGETARCH=amd64 /bin/sh -c apt-get update && apt-get install -y --no-install-recommends cuda-libraries-12-4=${NV_CUDA_LIB_VERSION} ${NV_LIBNPP_PACKAGE} cuda-nvtx-12-4=${NV_NVTX_VERSION} libcusparse-12-4=${NV_LIBCUSPARSE_VERSION} ${NV_LIBCUBLAS_PACKAGE} ${NV_LIBNCCL_PACKAGE} && rm -rf /var/lib/apt/lists/* # buildkit |
| RUN |1 TARGETARCH=amd64 /bin/sh -c apt-mark hold ${NV_LIBCUBLAS_PACKAGE_NAME} ${NV_LIBNCCL_PACKAGE_NAME} # buildkit |
| COPY entrypoint.d/ /opt/nvidia/entrypoint.d/ # buildkit |
| COPY nvidia_entrypoint.sh /opt/nvidia/ # buildkit |
| ENV NVIDIA_PRODUCT_NAME=CUDA |
| ENTRYPOINT ["/opt/nvidia/nvidia_entrypoint.sh"] |
| ENV NV_CUDNN_VERSION=9.1.0.70-1 |
| ENV NV_CUDNN_PACKAGE_NAME=libcudnn9-cuda-12 |
| ENV NV_CUDNN_PACKAGE=libcudnn9-cuda-12=9.1.0.70-1 |
| ARG TARGETARCH |
| LABEL maintainer=NVIDIA CORPORATION <cudatools@nvidia.com> |
| LABEL com.nvidia.cudnn.version=9.1.0.70-1 |
| RUN |1 TARGETARCH=amd64 /bin/sh -c apt-get update && apt-get install -y --no-install-recommends ${NV_CUDNN_PACKAGE} && apt-mark hold ${NV_CUDNN_PACKAGE_NAME} && rm -rf /var/lib/apt/lists/* # buildkit |
| LABEL maintainer=Sergio Jimenez |
| LABEL description=PaddleOCR Base Image - GPU/CUDA dependencies |
| WORKDIR /app |
| ENV DEBIAN_FRONTEND=noninteractive |
| ENV PYTHONUNBUFFERED=1 |
| ENV CUDA_VISIBLE_DEVICES=0 |
| RUN /bin/sh -c apt-get update && apt-get install -y --no-install-recommends python3.11 python3.11-venv python3-pip libgl1 libglib2.0-0 libsm6 libxext6 libxrender1 libgomp1 && rm -rf /var/lib/apt/lists/* && ln -sf /usr/bin/python3.11 /usr/bin/python # buildkit |
| RUN /bin/sh -c if [ "$(uname -m)" = "aarch64" ]; then mkdir -p /usr/local/cuda/lib64 && ln -sf /usr/lib/aarch64-linux-gnu/libcudnn*.so* /usr/local/cuda/lib64/ && ln -sf /usr/lib/aarch64-linux-gnu/libcudnn.so.9 /usr/local/cuda/lib64/libcudnn.so && ldconfig; fi # buildkit |
| COPY wheels/ /tmp/wheels/ # buildkit |
| RUN /bin/sh -c if ls /tmp/wheels/paddlepaddle*.whl 1>/dev/null 2>&1; then echo "=== Installing PaddlePaddle from local wheel (ARM64) ===" && python -m pip install --no-cache-dir /tmp/wheels/paddlepaddle*.whl; else echo "=== Installing PaddlePaddle from CUDA index (x86_64) ===" && python -m pip install --no-cache-dir paddlepaddle-gpu==3.2.0 -i https://www.paddlepaddle.org.cn/packages/stable/cu126/; fi && rm -rf /tmp/wheels # buildkit |
| RUN /bin/sh -c python -m pip install --no-cache-dir paddleocr==3.3.2 jiwer numpy fastapi "uvicorn[standard]" pydantic Pillow # buildkit |
| LABEL description=PaddleOCR Tuning REST API - GPU/CUDA version |
| WORKDIR /app |
| COPY paddle_ocr_tuning_rest.py . # buildkit |
| COPY dataset_manager.py . # buildkit |
| ARG DET_MODEL=PP-OCRv5_server_det |
| ARG REC_MODEL=PP-OCRv5_server_rec |
| ENV PADDLE_DET_MODEL=PP-OCRv5_server_det |
| ENV PADDLE_REC_MODEL=PP-OCRv5_server_rec |
| VOLUME [/app/dataset /root/.paddlex] |
| EXPOSE [8000/tcp] |
| HEALTHCHECK &{["CMD-SHELL" "python -c \"import urllib.request; urllib.request.urlopen('http://localhost:8000/health')\" || exit 1"] "30s" "10s" "1m0s" "0s" '\x03'} |
| CMD ["uvicorn" "paddle_ocr_tuning_rest:app" "--host" "0.0.0.0" "--port" "8000"] |