main
hcl 130 lines 3.33 KB
Raw
1 # docker-bake.hcl - vLLM Docker build configuration
2 #
3 # This file lives in vLLM repo at docker/docker-bake.hcl
4 #
5 # Usage:
6 # cd docker && docker buildx bake # Build default target (openai)
7 # cd docker && docker buildx bake test # Build test target
8 # docker buildx bake --print # Show resolved config
9 #
10 # Reference: https://docs.docker.com/build/bake/reference/
11
12 # Build configuration
13
14 variable "MAX_JOBS" {
15 default = 16
16 }
17
18 variable "NVCC_THREADS" {
19 default = 8
20 }
21
22 variable "TORCH_CUDA_ARCH_LIST" {
23 default = "8.0 8.9 9.0 10.0 11.0 12.0"
24 }
25
26 variable "COMMIT" {
27 default = ""
28 }
29
30 variable "VLLM_BUILD_COMMIT" {
31 default = "unknown"
32 }
33
34 variable "VLLM_BUILD_PIPELINE" {
35 default = "local"
36 }
37
38 variable "VLLM_BUILD_URL" {
39 default = ""
40 }
41
42 variable "VLLM_IMAGE_TAG" {
43 default = "local/vllm-openai:dev"
44 }
45
46 # Groups
47
48 group "default" {
49 targets = ["openai"]
50 }
51
52 group "all" {
53 targets = ["openai", "openai-ubuntu2404"]
54 }
55
56 # Base targets
57
58 target "_common" {
59 dockerfile = "docker/Dockerfile"
60 context = "."
61 args = {
62 max_jobs = MAX_JOBS
63 nvcc_threads = NVCC_THREADS
64 torch_cuda_arch_list = TORCH_CUDA_ARCH_LIST
65 VLLM_BUILD_COMMIT = VLLM_BUILD_COMMIT != "unknown" ? VLLM_BUILD_COMMIT : (COMMIT != "" ? COMMIT : "unknown")
66 VLLM_BUILD_PIPELINE = VLLM_BUILD_PIPELINE
67 VLLM_BUILD_URL = VLLM_BUILD_URL
68 VLLM_IMAGE_TAG = VLLM_IMAGE_TAG
69 }
70 }
71
72 target "_labels" {
73 labels = {
74 "org.opencontainers.image.source" = "https://github.com/vllm-project/vllm"
75 "org.opencontainers.image.vendor" = "vLLM"
76 "org.opencontainers.image.title" = "vLLM"
77 "org.opencontainers.image.description" = "vLLM: A high-throughput and memory-efficient inference and serving engine for LLMs"
78 "org.opencontainers.image.licenses" = "Apache-2.0"
79 "org.opencontainers.image.revision" = VLLM_BUILD_COMMIT != "unknown" ? VLLM_BUILD_COMMIT : (COMMIT != "" ? COMMIT : "unknown")
80 "org.opencontainers.image.version" = VLLM_IMAGE_TAG
81 "org.opencontainers.image.url" = VLLM_BUILD_URL
82 "ai.vllm.build.commit" = VLLM_BUILD_COMMIT != "unknown" ? VLLM_BUILD_COMMIT : (COMMIT != "" ? COMMIT : "unknown")
83 "ai.vllm.build.pipeline" = VLLM_BUILD_PIPELINE
84 "ai.vllm.build.url" = VLLM_BUILD_URL
85 "ai.vllm.image.tag" = VLLM_IMAGE_TAG
86 }
87 annotations = [
88 "index,manifest:org.opencontainers.image.revision=${VLLM_BUILD_COMMIT != "unknown" ? VLLM_BUILD_COMMIT : (COMMIT != "" ? COMMIT : "unknown")}",
89 ]
90 }
91
92 # Build targets
93
94 target "test" {
95 inherits = ["_common", "_labels"]
96 target = "test"
97 tags = ["vllm:test"]
98 output = ["type=docker"]
99 }
100
101 target "openai" {
102 inherits = ["_common", "_labels"]
103 target = "vllm-openai"
104 tags = ["vllm:openai"]
105 output = ["type=docker"]
106 }
107
108 # Ubuntu 24.04 targets
109
110 target "test-ubuntu2404" {
111 inherits = ["_common", "_labels"]
112 target = "test"
113 tags = ["vllm:test-ubuntu24.04"]
114 args = {
115 UBUNTU_VERSION = "24.04"
116 GDRCOPY_OS_VERSION = "Ubuntu24_04"
117 }
118 output = ["type=docker"]
119 }
120
121 target "openai-ubuntu2404" {
122 inherits = ["_common", "_labels"]
123 target = "vllm-openai"
124 tags = ["vllm:openai-ubuntu24.04"]
125 args = {
126 UBUNTU_VERSION = "24.04"
127 GDRCOPY_OS_VERSION = "Ubuntu24_04"
128 }
129 output = ["type=docker"]
130 }