# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. FROM ubuntu:24.04 ARG DYNAMO_COMMIT_SHA ENV DYNAMO_COMMIT_SHA=$DYNAMO_COMMIT_SHA COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/ RUN apt-get update && \ apt-get install -y --no-install-recommends \ build-essential=12.10ubuntu1 \ curl=8.5.0-2ubuntu10.6 \ && rm -rf /var/lib/apt/lists/* WORKDIR /workspace/dynamo # Copy pyproject.toml first for better layer caching COPY pyproject.toml . # Create venv and install docs dependencies from dependency group # Note: We use `uv pip install --group` instead of `uv run --only-group` because # uv run always tries to resolve project dependencies (including ai-dynamo-runtime), # even with --only-group flag. Using a dedicated venv lets us build the docs without # needing to build the runtime first. ENV VIRTUAL_ENV=/workspace/dynamo/.venv-docs RUN uv venv $VIRTUAL_ENV --python 3.12 && \ uv pip install --python $VIRTUAL_ENV --group docs # Set visitor script to be included on every HTML page ENV VISITS_COUNTING_SCRIPT="//assets.adobedtm.com/b92787824f2e0e9b68dc2e993f9bd995339fe417/satelliteLib-7ba51e58dc61bcb0e9311aadd02a0108ab24cc6c.js" # Copy the rest of the code COPY . /workspace/dynamo # Run docs generation using uv run with the docs venv RUN uv run --python .venv-docs --no-project docs/generate_docs.py