Skip to content

Commit

Permalink
Update index.adoc
Browse files Browse the repository at this point in the history
  • Loading branch information
roberth committed Jun 3, 2021
1 parent 40394f4 commit 3171cf1
Showing 1 changed file with 19 additions and 13 deletions.
32 changes: 19 additions & 13 deletions docs/modules/ROOT/pages/index.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -61,11 +61,18 @@ Add this module to your NixOS configuration:
{ pkgs, ... }: {
environment.systemPackages = [
pkgs.arion
pkgs.docker # docker CLI will use podman socket

# Do install the docker CLI to talk to podman.
# Not needed when virtualisation.docker.enable = true;
pkgs.docker-client
];

# Arion works with Docker, but for NixOS-based containers, you need Podman
# since NixOS 21.05.
virtualisation.docker.enable = false;
virtualisation.podman.enable = true;
virtualisation.podman.dockerSocket.enable = true;
virtualisation.podman.defaultNetwork.dnsname.enable = true;

# Use your username instead of `myuser`
users.extraUsers.myuser.extraGroups = ["podman"];
Expand Down Expand Up @@ -125,16 +132,13 @@ Describe containers using NixOS-style modules. There are a few options:
};
};
}


```

==== NixOS: run only one systemd service

`examples/nixos-unit/arion-compose.nix`:

```nix

{
services.webserver = { config, pkgs, ... }: {

Expand All @@ -157,7 +161,6 @@ Describe containers using NixOS-style modules. There are a few options:
];
};
}

```

==== NixOS: run full OS
Expand Down Expand Up @@ -220,10 +223,10 @@ development environments while working on
https://www.hercules-ci.com[Hercules CI]. (It was also born out of
ancient Greek deities disguised as horses. More on that later.)

If you do want to use Arion for production environments, you’ll probably
want to either build normal container images or manage garbage
collection roots if you control the deployment host. Neither scenario is
made easier by arion at this time.
Arion can be used for simple single host deployments, using Docker's TLS
client verification, or https://search.nixos.org/options?channel=unstable&show=virtualisation.podman.networkSocket.enable&query=virtualisation.podman[`virtualisation.podman.networkSocket` options].
Remote deployments do not support `useHostStore`, although an SSH-based deployment method could support this.
Docker Swarm is not currently supported.

Arion has run successfully on Linux distributions other than NixOS, but we only perform CI for Arion on NixOS.

Expand Down Expand Up @@ -254,6 +257,8 @@ container.

Nope, it’s just Nix and Docker Compose under the hood.

It does xref:hercules-ci-effects:ROOT:reference/nix-functions/runArion.adoc[integrate] nicely though.

=== What about garbage collection?

Arion removes the need for garbage collecting docker images, delegating
Expand All @@ -266,8 +271,9 @@ generate images that can be used in production.

=== Why is my container not running latest code?

Restart it with `arion restart <name>` or if you've changed the image rebuild
them using `arion up -d --always-recreate-deps <name>`.
Rebuild the image using `arion up -d --always-recreate-deps <name>` or simply `arion up -d`.

Like `docker-compose restart`, `arion restart` does not update the image before starting.

=== What is messing with my environment variables?

Expand All @@ -278,11 +284,11 @@ reference a script from `pkgs.writeScript` or escape the dollar sign as

=== Why name it ``Arion``?

Arion comes from Greek mythology. Poseidon, the god of ~Docker~ the seas
Arion comes from Greek mythology. Poseidon, the god of Docker -- I mean the seas --
had his eye on Demeter. Demeter tried to trick him by disguising as a
horse, but Poseidon saw through the deception and they had Arion.

So Arion is a super fast divine horse; the result of some weird mixing.
Also it talks.

(And we feel morally obliged to name our stuff after Greek mythology)
(And we felt morally obliged to name our stuff after Greek mythology)

0 comments on commit 3171cf1

Please sign in to comment.