Skip to content

Commit 7364661

Browse files
committed
Reverting the build.sh
Signed-off-by: pvijayakrish <[email protected]>
1 parent f5af0ea commit 7364661

File tree

1 file changed

+78
-51
lines changed

1 file changed

+78
-51
lines changed

container/build.sh

Lines changed: 78 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ VLLM_BASE_IMAGE="nvcr.io/nvidia/cuda-dl-base"
106106
# Please check https://github.com/ai-dynamo/dynamo/pull/1065
107107
# for details and reproducer to manually test if the image
108108
# can be updated to later versions.
109-
VLLM_BASE_IMAGE_TAG="25.01-cuda12.8-devel-ubuntu24.04"
109+
VLLM_BASE_IMAGE_TAG="25.04-cuda12.9-devel-ubuntu24.04"
110110

111111
NONE_BASE_IMAGE="nvcr.io/nvidia/cuda-dl-base"
112112
NONE_BASE_IMAGE_TAG="25.01-cuda12.8-devel-ubuntu24.04"
@@ -125,9 +125,6 @@ NIXL_UCX_EFA_REF=9d2b88a1f67faf9876f267658bd077b379b8bb76
125125

126126
NO_CACHE=""
127127

128-
# Dynamo base image (pre-built to avoid rebuilding common components)
129-
DYNAMO_BASE_IMAGE_INPUT=""
130-
131128
# sccache configuration for S3
132129
USE_SCCACHE=""
133130
SCCACHE_BUCKET=""
@@ -213,14 +210,6 @@ get_options() {
213210
missing_requirement "$1"
214211
fi
215212
;;
216-
--dynamo-base-image)
217-
if [ "$2" ]; then
218-
DYNAMO_BASE_IMAGE_INPUT=$2
219-
shift
220-
else
221-
missing_requirement "$1"
222-
fi
223-
;;
224213
--target)
225214
if [ "$2" ]; then
226215
TARGET=$2
@@ -873,48 +862,86 @@ fi
873862
if [[ -z "${DEV_IMAGE_INPUT:-}" ]]; then
874863
# Follow 2-step build process for all frameworks
875864
if [[ $FRAMEWORK != "NONE" ]]; then
876-
# Check if a pre-built base image was provided for use
877-
if [[ -n "${DYNAMO_BASE_IMAGE_INPUT:-}" ]]; then
878-
# Use the pre-built base image provided via DYNAMO_BASE_IMAGE_INPUT, skipping base build
879-
DYNAMO_BASE_IMAGE="${DYNAMO_BASE_IMAGE_INPUT}"
880-
echo "======================================"
881-
echo "Using Pre-built Base Image: ${DYNAMO_BASE_IMAGE}"
882-
echo "======================================"
865+
# Define base image tag with framework suffix to prevent clobbering
866+
# Different frameworks require different base configurations:
867+
# - VLLM: Python 3.12, ENABLE_KVBM=true, BASE_IMAGE=cuda-dl-base
868+
# - SGLANG: Python 3.10, BASE_IMAGE=cuda-dl-base
869+
# - TRTLLM: Python 3.12, ENABLE_KVBM=true, BASE_IMAGE=pytorch
870+
# Without unique tags, building different frameworks would overwrite each other's names
871+
DYNAMO_BASE_IMAGE="dynamo-base:${VERSION}-${FRAMEWORK,,}"
872+
# Start base image build
873+
echo "======================================"
874+
echo "Starting Build 1: Base Image"
875+
echo "======================================"
876+
877+
# Create build log directory for BuildKit reports
878+
BUILD_LOG_DIR="${BUILD_CONTEXT}/build-logs"
879+
mkdir -p "${BUILD_LOG_DIR}"
880+
BASE_BUILD_LOG="${BUILD_LOG_DIR}/base-image-build.log"
881+
882+
# Use BuildKit for enhanced metadata
883+
if [ -z "$RUN_PREFIX" ]; then
884+
if docker buildx version &>/dev/null; then
885+
docker buildx build --progress=plain --load -f "${SOURCE_DIR}/Dockerfile" --target runtime $PLATFORM $BUILD_ARGS $CACHE_FROM $CACHE_TO --tag $DYNAMO_BASE_IMAGE $BUILD_CONTEXT_ARG $BUILD_CONTEXT $NO_CACHE 2>&1 | tee "${BASE_BUILD_LOG}"
886+
BUILD_EXIT_CODE=${PIPESTATUS[0]}
887+
else
888+
DOCKER_BUILDKIT=1 docker build --progress=plain -f "${SOURCE_DIR}/Dockerfile" --target runtime $PLATFORM $BUILD_ARGS $CACHE_FROM $CACHE_TO --tag $DYNAMO_BASE_IMAGE $BUILD_CONTEXT_ARG $BUILD_CONTEXT $NO_CACHE 2>&1 | tee "${BASE_BUILD_LOG}"
889+
BUILD_EXIT_CODE=${PIPESTATUS[0]}
890+
fi
891+
892+
if [ ${BUILD_EXIT_CODE} -ne 0 ]; then
893+
exit ${BUILD_EXIT_CODE}
894+
fi
895+
else
896+
$RUN_PREFIX docker build -f "${SOURCE_DIR}/Dockerfile" --target runtime $PLATFORM $BUILD_ARGS $CACHE_FROM $CACHE_TO --tag $DYNAMO_BASE_IMAGE $BUILD_CONTEXT_ARG $BUILD_CONTEXT $NO_CACHE
897+
fi
898+
899+
# Start framework build
900+
echo "======================================"
901+
echo "Starting Build 2: Framework Image"
902+
echo "======================================"
903+
904+
FRAMEWORK_BUILD_LOG="${BUILD_LOG_DIR}/framework-${FRAMEWORK,,}-build.log"
905+
906+
BUILD_ARGS+=" --build-arg DYNAMO_BASE_IMAGE=${DYNAMO_BASE_IMAGE}"
907+
908+
# Use BuildKit for enhanced metadata
909+
if [ -z "$RUN_PREFIX" ]; then
910+
if docker buildx version &>/dev/null; then
911+
docker buildx build --progress=plain --load -f $DOCKERFILE $TARGET_STR $PLATFORM $BUILD_ARGS $CACHE_FROM $CACHE_TO $TAG $LATEST_TAG $BUILD_CONTEXT_ARG $BUILD_CONTEXT $NO_CACHE 2>&1 | tee "${FRAMEWORK_BUILD_LOG}"
912+
BUILD_EXIT_CODE=${PIPESTATUS[0]}
913+
else
914+
DOCKER_BUILDKIT=1 docker build --progress=plain -f $DOCKERFILE $TARGET_STR $PLATFORM $BUILD_ARGS $CACHE_FROM $CACHE_TO $TAG $LATEST_TAG $BUILD_CONTEXT_ARG $BUILD_CONTEXT $NO_CACHE 2>&1 | tee "${FRAMEWORK_BUILD_LOG}"
915+
BUILD_EXIT_CODE=${PIPESTATUS[0]}
916+
fi
917+
918+
if [ ${BUILD_EXIT_CODE} -ne 0 ]; then
919+
exit ${BUILD_EXIT_CODE}
920+
fi
883921
else
884-
# Define base image tag with framework suffix to prevent clobbering
885-
# Different frameworks require different base configurations:
886-
# - VLLM: Python 3.12, ENABLE_KVBM=true, BASE_IMAGE=cuda-dl-base
887-
# - SGLANG: Python 3.10, BASE_IMAGE=cuda-dl-base
888-
# - TRTLLM: Python 3.12, ENABLE_KVBM=true, BASE_IMAGE=pytorch
889-
# Without unique tags, building different frameworks would overwrite each other's names
890-
DYNAMO_BASE_IMAGE="dynamo-base:${VERSION}-${FRAMEWORK,,}"
891-
# Start base image build
892-
echo "======================================"
893-
echo "Starting Build 1: Base Image"
894-
echo "======================================"
895-
896-
# Create build log directory for BuildKit reports
897-
BUILD_LOG_DIR="${BUILD_CONTEXT}/build-logs"
898-
mkdir -p "${BUILD_LOG_DIR}"
899-
BASE_BUILD_LOG="${BUILD_LOG_DIR}/base-image-build.log"
900-
901-
# Use BuildKit for enhanced metadata; fallback to legacy docker if buildx absent
902-
if [ -z "$RUN_PREFIX" ]; then
903-
if docker buildx version &>/dev/null; then
904-
# Build with BuildKit and explicit 'runtime' target
905-
docker buildx build --progress=plain --load -f "${SOURCE_DIR}/Dockerfile" --target runtime $PLATFORM $BUILD_ARGS $CACHE_FROM $CACHE_TO --tag $DYNAMO_BASE_IMAGE $BUILD_CONTEXT_ARG $BUILD_CONTEXT $NO_CACHE 2>&1 | tee "${BASE_BUILD_LOG}"
906-
BUILD_EXIT_CODE=${PIPESTATUS[0]}
907-
else
908-
DOCKER_BUILDKIT=1 docker build --progress=plain -f "${SOURCE_DIR}/Dockerfile" --target runtime $PLATFORM $BUILD_ARGS $CACHE_FROM $CACHE_TO --tag $DYNAMO_BASE_IMAGE $BUILD_CONTEXT_ARG $BUILD_CONTEXT $NO_CACHE 2>&1 | tee "${BASE_BUILD_LOG}"
909-
BUILD_EXIT_CODE=${PIPESTATUS[0]}
910-
fi
911-
912-
if [ ${BUILD_EXIT_CODE} -ne 0 ]; then
913-
exit ${BUILD_EXIT_CODE}
914-
fi
922+
$RUN_PREFIX docker build -f $DOCKERFILE $TARGET_STR $PLATFORM $BUILD_ARGS $CACHE_FROM $CACHE_TO $TAG $LATEST_TAG $BUILD_CONTEXT_ARG $BUILD_CONTEXT $NO_CACHE
923+
fi
924+
else
925+
# Create build log directory for BuildKit reports
926+
BUILD_LOG_DIR="${BUILD_CONTEXT}/build-logs"
927+
mkdir -p "${BUILD_LOG_DIR}"
928+
SINGLE_BUILD_LOG="${BUILD_LOG_DIR}/single-stage-build.log"
929+
930+
# Use BuildKit for enhanced metadata
931+
if [ -z "$RUN_PREFIX" ]; then
932+
if docker buildx version &>/dev/null; then
933+
docker buildx build --progress=plain --load -f $DOCKERFILE $TARGET_STR $PLATFORM $BUILD_ARGS $CACHE_FROM $CACHE_TO $TAG $LATEST_TAG $BUILD_CONTEXT_ARG $BUILD_CONTEXT $NO_CACHE 2>&1 | tee "${SINGLE_BUILD_LOG}"
934+
BUILD_EXIT_CODE=${PIPESTATUS[0]}
915935
else
916-
$RUN_PREFIX docker build -f "${SOURCE_DIR}/Dockerfile" --target runtime $PLATFORM $BUILD_ARGS $CACHE_FROM $CACHE_TO --tag $DYNAMO_BASE_IMAGE $BUILD_CONTEXT_ARG $BUILD_CONTEXT $NO_CACHE
936+
DOCKER_BUILDKIT=1 docker build --progress=plain -f $DOCKERFILE $TARGET_STR $PLATFORM $BUILD_ARGS $CACHE_FROM $CACHE_TO $TAG $LATEST_TAG $BUILD_CONTEXT_ARG $BUILD_CONTEXT $NO_CACHE 2>&1 | tee "${SINGLE_BUILD_LOG}"
937+
BUILD_EXIT_CODE=${PIPESTATUS[0]}
917938
fi
939+
940+
if [ ${BUILD_EXIT_CODE} -ne 0 ]; then
941+
exit ${BUILD_EXIT_CODE}
942+
fi
943+
else
944+
$RUN_PREFIX docker build -f $DOCKERFILE $TARGET_STR $PLATFORM $BUILD_ARGS $CACHE_FROM $CACHE_TO $TAG $LATEST_TAG $BUILD_CONTEXT_ARG $BUILD_CONTEXT $NO_CACHE
918945
fi
919946
fi
920947
fi

0 commit comments

Comments
 (0)