From 787fec3a273863ef52009ae0172710d081a133f9 Mon Sep 17 00:00:00 2001 From: biondizzle Date: Wed, 15 Apr 2026 10:15:23 +0000 Subject: [PATCH] build with cuda 13 --- Dockerfile | 17 +++++++++++++++ Jenkinsfile | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 79 insertions(+) create mode 100644 Dockerfile create mode 100644 Jenkinsfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..f883caf --- /dev/null +++ b/Dockerfile @@ -0,0 +1,17 @@ +FROM vllm/vllm-openai:v0.19.0-cu130 + +# Install LMCache for KV cache offloading / sharing across nodes +# Build with system CUDA 13.0 for Blackwell (B200) +RUN apt-get update && apt-get install -y git \ + libcusolver-dev-13-0 \ + libcusparse-dev-13-0 \ + libcublas-dev-13-0 \ + libcurand-dev-13-0 \ + libcufft-dev-13-0 \ + libnvjitlink-dev-13-0 && \ + git clone --depth 1 https://github.com/LMCache/LMCache.git /tmp/lmcache && \ + cd /tmp/lmcache && \ + CUDA_HOME=/usr/local/cuda \ + TORCH_CUDA_ARCH_LIST="10.0" \ + pip install --no-cache-dir --no-build-isolation . && \ + rm -rf /tmp/lmcache \ No newline at end of file diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..3375c84 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,62 @@ +pipeline { + agent any + + environment { + REGISTRY = 'atl.vultrcr.com/vllm' + IMAGE_NAME = 'vllm-with-lmcache' + } + + parameters { + string(name: 'IMAGE_TAG', defaultValue: 'v0.19.0', description: 'Docker image tag') + string(name: 'GIT_REPO', defaultValue: 'https://sweetapi.com/biondizzle/vllm-with-lmcache.git', description: 'Git repository URL (optional, uses workspace if empty)') + string(name: 'GIT_BRANCH', defaultValue: 'master', description: 'Git branch to build') + string(name: 'BASE_IMAGE', defaultValue: 'vllm/vllm-openai:v0.19.0', description: 'Base Docker image') + } + + stages { + stage('Checkout') { + steps { + script { + if (params.GIT_REPO) { + git url: params.GIT_REPO, branch: params.GIT_BRANCH + } + // Otherwise use workspace already checked out + } + } + } + + stage('Build') { + steps { + script { + docker.withRegistry("https://${REGISTRY}", 'ATL_VCR_VLLM') { + sh """ + docker build \ + --build-arg BASE_IMAGE=${params.BASE_IMAGE} \ + -t ${REGISTRY}/${IMAGE_NAME}:${params.IMAGE_TAG} \ + . + """ + } + } + } + } + + stage('Push') { + steps { + script { + docker.withRegistry("https://${REGISTRY}", 'ATL_VCR_VLLM') { + docker.image("${REGISTRY}/${IMAGE_NAME}:${params.IMAGE_TAG}").push() + } + } + } + } + } + + post { + success { + echo "✅ Image pushed: ${REGISTRY}/${IMAGE_NAME}:${params.IMAGE_TAG}" + } + failure { + echo "❌ Build failed" + } + } +}