55 lines
2.2 KiB
Docker
55 lines
2.2 KiB
Docker
# SPDX-FileCopyrightText: Copyright (c) 2025-2026 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
|
|
|
|
# Version for documentation (e.g., "0.3.0" for releases, "dev" for main/PRs)
|
|
ARG DYNAMO_DOCS_VERSION=dev
|
|
ENV DYNAMO_DOCS_VERSION=$DYNAMO_DOCS_VERSION
|
|
|
|
# TODO: Pin uv image to a specific version tag for reproducibility (e.g. ghcr.io/astral-sh/uv:0.10.7)
|
|
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 |