31 lines
1.1 KiB
Docker
Executable file
31 lines
1.1 KiB
Docker
Executable file
FROM ultralytics/ultralytics:latest
|
|
|
|
# The ultralytics image already has python, system dependencies, PyTorch, TensorRT, and ultralytics installed.
|
|
# We just need to install uv and our project dependencies.
|
|
|
|
# Pin the installer
|
|
RUN pip install --no-cache-dir uv==0.10.6
|
|
|
|
# Set working directory
|
|
WORKDIR /workspace
|
|
|
|
ENV ULTRALYTICS_SAFE_LOAD=1
|
|
|
|
# Keep the training/GPU stack supplied by the Ultralytics image, while installing
|
|
# the remaining application dependencies at the exact versions recorded in uv.lock.
|
|
COPY pyproject.toml uv.lock README.md ./
|
|
RUN --mount=type=cache,target=/root/.cache/uv \
|
|
uv export --locked --no-dev --group build --no-emit-project --prune ultralytics \
|
|
--output-file /tmp/requirements.lock && \
|
|
uv pip install --system --requirement /tmp/requirements.lock
|
|
|
|
# Copy source code and install only the project itself without re-resolving deps.
|
|
COPY src ./src
|
|
RUN uv pip install --system --no-deps --no-build-isolation .
|
|
|
|
# Expose Web UI port and MLflow port
|
|
EXPOSE 8000
|
|
EXPOSE 5000
|
|
|
|
# Start Web UI using the system entry point
|
|
CMD ["yolo-train-webui", "--host", "0.0.0.0", "--port", "8000"]
|