/ docker / README.md
README.md
 1  <p align="center">
 2    <a href="https://haystack.deepset.ai/"><img src="https://raw.githubusercontent.com/deepset-ai/.github/main/haystack-logo-colored.png" alt="Haystack by deepset"></a>
 3  </p>
 4  
 5  [Haystack](https://github.com/deepset-ai/haystack) is an end-to-end LLM framework that allows you to build applications powered by LLMs, Transformer models, vector search and more. Whether you want to perform retrieval-augmented generation (RAG), document search, question answering or answer generation, Haystack can orchestrate state-of-the-art embedding models and LLMs into pipelines to build end-to-end NLP applications and solve your use case.
 6  
 7  ## Haystack 2.x
 8  
 9  For the latest version of Haystack there's only one image available:
10  
11  - `haystack:base-<version>` contains a working Python environment with Haystack preinstalled. This image is expected to
12    be derived `FROM`.
13  
14  ## Image Development
15  
16  Images are built with BuildKit and we use `bake` to orchestrate the process.
17  You can build a specific image by running:
18  ```sh
19  docker buildx bake base
20  ```
21  
22  You can override any `variable` defined in the `docker-bake.hcl` file and build custom
23  images, for example if you want to use a branch from the Haystack repo, run:
24  ```sh
25  HAYSTACK_VERSION=mybranch_or_tag BASE_IMAGE_TAG_SUFFIX=latest docker buildx bake base --no-cache
26  ```
27  
28  ### Multi-Platform Builds
29  
30  Haystack images support multiple architectures. But depending on your operating system and Docker
31  environment, you might not be able to build all of them locally.
32  
33  You may encounter the following error when trying to build the image:
34  
35  ```
36  multiple platforms feature is currently not supported for docker driver. Please switch to a different driver
37  (eg. “docker buildx create --use”)
38  ```
39  
40  To get around this, you need to override the `platform` option and limit local builds to the same architecture as
41  your computer's. For example, on an Apple M1 you can limit the builds to ARM only by invoking `bake` like this:
42  
43  ```sh
44  docker buildx bake base --set "*.platform=linux/arm64"
45  ```
46  
47  # License
48  
49  View [license information](https://github.com/deepset-ai/haystack/blob/main/LICENSE) for
50  the software contained in this image.
51  
52  As with all Docker images, these likely also contain other software which may be under
53  other licenses (such as Bash, etc from the base distribution, along with any direct or
54  indirect dependencies of the primary software being contained).
55  
56  As for any pre-built image usage, it is the image user's responsibility to ensure that any
57  use of this image complies with any relevant licenses for all software contained within.