haystack/docker/docker-bake.hcl
2023-03-02 11:12:03 +01:00

98 lines
2.2 KiB
HCL

variable "HAYSTACK_VERSION" {
default = "main"
}
variable "GITHUB_REF" {
default = ""
}
variable "IMAGE_NAME" {
default = "deepset/haystack"
}
variable "IMAGE_TAG_SUFFIX" {
default = "local"
}
variable "BASE_IMAGE_TAG_SUFFIX" {
default = "local"
}
variable "HAYSTACK_EXTRAS" {
default = ""
}
group "base" {
targets = ["base-cpu", "base-gpu"]
}
group "api" {
targets = ["cpu", "gpu"]
}
group "api-latest" {
targets = ["cpu-latest", "gpu-latest"]
}
group "all" {
targets = ["base", "base-gpu", "cpu", "gpu"]
}
target "base-cpu" {
dockerfile = "Dockerfile.base"
tags = ["${IMAGE_NAME}:base-cpu-${IMAGE_TAG_SUFFIX}"]
args = {
build_image = "python:3.10-slim"
base_image = "python:3.10-slim"
haystack_version = "${HAYSTACK_VERSION}"
haystack_extras = notequal("",HAYSTACK_EXTRAS) ? "${HAYSTACK_EXTRAS}" : "[docstores,crawler,preprocessing,pdf,ocr,onnx,beir]"
}
platforms = ["linux/amd64", "linux/arm64"]
}
target "base-gpu" {
dockerfile = "Dockerfile.base"
tags = ["${IMAGE_NAME}:base-gpu-${IMAGE_TAG_SUFFIX}"]
args = {
# pytorch/pytorch:1.13.1-cuda11.6 ships Python 3.10.8
build_image = "pytorch/pytorch:1.13.1-cuda11.6-cudnn8-runtime"
base_image = "pytorch/pytorch:1.13.1-cuda11.6-cudnn8-runtime"
haystack_version = "${HAYSTACK_VERSION}"
haystack_extras = notequal("",HAYSTACK_EXTRAS) ? "${HAYSTACK_EXTRAS}" : "[docstores-gpu,crawler,preprocessing,pdf,ocr,onnx-gpu]"
}
platforms = ["linux/amd64", "linux/arm64"]
}
target "cpu" {
dockerfile = "Dockerfile.api"
tags = ["${IMAGE_NAME}:cpu-${IMAGE_TAG_SUFFIX}"]
args = {
base_image = "${IMAGE_NAME}"
base_image_tag = "base-cpu-${BASE_IMAGE_TAG_SUFFIX}"
}
platforms = ["linux/amd64", "linux/arm64"]
}
target "cpu-latest" {
inherits = ["cpu"]
tags = ["${IMAGE_NAME}:cpu"]
platforms = ["linux/amd64", "linux/arm64"]
}
target "gpu" {
dockerfile = "Dockerfile.api"
tags = ["${IMAGE_NAME}:gpu-${IMAGE_TAG_SUFFIX}"]
args = {
base_image = "${IMAGE_NAME}"
base_image_tag = "base-gpu-${BASE_IMAGE_TAG_SUFFIX}"
}
platforms = ["linux/amd64", "linux/arm64"]
}
target "gpu-latest" {
inherits = ["gpu"]
tags = ["${IMAGE_NAME}:gpu"]
platforms = ["linux/amd64", "linux/arm64"]
}