33 lines
1.4 KiB
Text
33 lines
1.4 KiB
Text
|
|
= Introduction
|
|
|
|
Arion is a tool for building and running applications that
|
|
consist of multiple docker containers. It has special support
|
|
for docker images that are built with Nix, for a smooth
|
|
development experience and improved performance.
|
|
|
|
It is built on top of https://docs.docker.com/compose/overview/[Docker
|
|
Compose], which implements the container orchestration functionality.
|
|
|
|
Instead of configuring the compositions in YAML files like
|
|
`docker-compose.yaml`, Arion uses the https://nixos.org/nix/[Nix]
|
|
language to declare the compositions. Because of this, Arion gives you
|
|
the ability to declare your deployments, configuration and packaging
|
|
in the same language. By replacing multiple tools with a single
|
|
language, you decrease your mental load and you can more easily
|
|
refactor and maintain your configurations.
|
|
|
|
Although Arion can be used as a Docker Compose with an improved
|
|
configuration front end, there is more to be gained from integrating
|
|
with Nix. In particular, the more structured approach of Nix compared
|
|
to Dockerfiles allows the following:
|
|
|
|
* Build components of your image in _parallel, automatically_.
|
|
* Share packages between images, regardless of the order they were
|
|
added.
|
|
* Improve performance by _skipping_ container
|
|
image creation.
|
|
* Work with _structured data_ instead of strings,
|
|
templates and a multitude of expression languages.
|
|
* Refactor across deployments, configuration and
|
|
packaging.
|