FROM pytorch/pytorch:2.7.1-cuda12.8-cudnn9-runtime@sha256:c16f4c749e2d9e96878875cdf6cc45cddda1d1a36fddd371dd6f2360f1b6e2a2 ARG MODELFORGE_VERSION=0.0.0 ARG MODELFORGE_COMMIT="" ARG MODELFORGE_BUILT_AT="" ENV PYTHONDONTWRITEBYTECODE=1 \ PYTHONUNBUFFERED=1 \ MODELFORGE_BUILD_COMMIT=${MODELFORGE_COMMIT} \ MODELFORGE_BUILD_TIMESTAMP=${MODELFORGE_BUILT_AT} \ HF_HUB_OFFLINE=1 \ TRANSFORMERS_OFFLINE=1 \ HF_DATASETS_OFFLINE=1 \ TOKENIZERS_PARALLELISM=false \ HF_HOME=/tmp/huggingface LABEL org.opencontainers.image.title="ITWorx ModelForge runtime worker" LABEL org.opencontainers.image.description="Private typed model runtime for ITWorx ModelForge" LABEL org.opencontainers.image.version="${MODELFORGE_VERSION}" LABEL org.opencontainers.image.revision="${MODELFORGE_COMMIT}" LABEL org.opencontainers.image.created="${MODELFORGE_BUILT_AT}" LABEL org.opencontainers.image.source="https://git.example.com/example/modelforge.git" LABEL org.opencontainers.image.vendor="ITWorx" LABEL org.opencontainers.image.licenses="AGPL-3.0-or-later" WORKDIR /build COPY runtime-worker ./runtime-worker RUN apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get upgrade --yes \ && pip install --no-cache-dir './runtime-worker[inference]' \ && DEBIAN_FRONTEND=noninteractive apt-get purge --yes linux-libc-dev \ && rm -rf /var/lib/apt/lists/* \ && pip check \ && groupadd --system modelforge-runtime \ && useradd --system --gid modelforge-runtime --home /app modelforge-runtime \ && mkdir -p /app /tmp/huggingface \ && chown -R modelforge-runtime:modelforge-runtime /app /tmp/huggingface USER modelforge-runtime WORKDIR /app CMD ["modelforge-runtime-worker"]