= Arion options == docker-compose.extended Attribute set that will be turned into the x-arion section of the docker-compose.yaml file. [discrete] === details Type:: attribute set No Default:: {blank} No Example:: {blank} == docker-compose.raw Attribute set that will be turned into the docker-compose.yaml file, using Nix's toJSON builtin. [discrete] === details Type:: attribute set No Default:: {blank} No Example:: {blank} == enableDefaultNetwork Whether to define the default network: ```nix networks.default = { name = config.project.name; }; ``` [discrete] === details Type:: boolean Default:: + ---- true ---- No Example:: {blank} == host.nixStorePrefix Prefixes store paths on the host, allowing the Nix store to be stored at an alternate location without altering the format of store paths. For example: instead of mounting the host's /nix/store as the container's /nix/store, this will mount /mnt/foo/nix/store as the container's /nix/store. [discrete] === details Type:: string Default:: + ---- "" ---- Example:: + ---- "/mnt/foo" ---- == host.uid The numeric user id (UID) of the user running arion. This lets you to write modules that interact with the host user's files, which is helpful for local development, but not intended for production-like deployment scenarios. [discrete] === details Type:: signed integer No Default:: {blank} No Example:: {blank} == networks See link:https://docs.docker.com/compose/compose-file/#networks-top-level-element[Docker Compose#networks-top-level-element] [discrete] === details Type:: lazy attribute set of (submodule) No Default:: {blank} No Example:: {blank} == networks..attachable See link:https://docs.docker.com/compose/compose-file/#attachable[Docker Compose#attachable] [discrete] === details Type:: boolean No Default:: {blank} Example:: + ---- true ---- == networks..driver `"none"`, `"host"`, or a platform-specific value. See link:https://docs.docker.com/compose/compose-file/#driver[Docker Compose#driver] [discrete] === details Type:: string No Default:: {blank} No Example:: {blank} == networks..driver_opts See link:https://docs.docker.com/compose/compose-file/#driver_opts[Docker Compose#driver_opts] [discrete] === details Type:: lazy attribute set of raw value No Default:: {blank} No Example:: {blank} == networks..enable_ipv6 Whether we've entered the 21st century yet. See link:https://docs.docker.com/compose/compose-file/#enable_ipv6[Docker Compose#enable_ipv6] [discrete] === details Type:: boolean No Default:: {blank} No Example:: {blank} == networks..external When `true`, don't create or destroy the network, but assume that it exists. See link:https://docs.docker.com/compose/compose-file/#external[Docker Compose#external] [discrete] === details Type:: boolean No Default:: {blank} No Example:: {blank} == networks..internal Achieves "external isolation". See link:https://docs.docker.com/compose/compose-file/#internal[Docker Compose#internal] [discrete] === details Type:: boolean Default:: + ---- false ---- No Example:: {blank} == networks..ipam Manage IP addresses. See link:https://docs.docker.com/compose/compose-file/#ipam[Docker Compose#ipam] [discrete] === details Type:: raw value No Default:: {blank} No Example:: {blank} == networks..labels Metadata. See link:https://docs.docker.com/compose/compose-file/#labels[Docker Compose#labels] [discrete] === details Type:: attribute set of string No Default:: {blank} No Example:: {blank} == networks..name Set a custom name for the network. It shares a namespace with other projects' networks. `name` is used as-is. Note the `default` network's default `name` is set to `project.name` by Arion. See link:https://docs.docker.com/compose/compose-file/#name[Docker Compose#name] [discrete] === details Type:: string No Default:: {blank} No Example:: {blank} == out.dockerComposeYaml A derivation that produces a docker-compose.yaml file for this composition. [discrete] === details Type:: package No Default:: {blank} Read Only:: {blank} No Example:: {blank} == out.dockerComposeYamlAttrs The text of out.dockerComposeYaml. [discrete] === details Type:: attribute set of unspecified value No Default:: {blank} Read Only:: {blank} No Example:: {blank} == out.dockerComposeYamlText The text of out.dockerComposeYaml. [discrete] === details Type:: string No Default:: {blank} Read Only:: {blank} No Example:: {blank} == project.name Name of the project. See link:https://docs.docker.com/compose/reference/envvars/#compose_project_name[COMPOSE_PROJECT_NAME] This is not optional, because getting the project name from a directory name tends to produce different results for different repo checkout location names. [discrete] === details Type:: string No Default:: {blank} No Example:: {blank} == services An attribute set of service configurations. A service specifies how to run an image as a container. [discrete] === details Type:: attribute set of (submodule) No Default:: {blank} No Example:: {blank} == services..composition The composition configuration. [discrete] === details Type:: attribute set No Default:: {blank} Read Only:: {blank} No Example:: {blank} == services..host The composition-level host option values. [discrete] === details Type:: attribute set No Default:: {blank} Read Only:: {blank} No Example:: {blank} == services..image.command [discrete] === details Type:: list of string Default:: + ---- [] ---- No Example:: {blank} == services..image.contents Top level paths in the container. [discrete] === details Type:: list of package Default:: + ---- [] ---- No Example:: {blank} == services..image.enableRecommendedContents Add the `/bin/sh` and `/usr/bin/env` symlinks and some lightweight files. [discrete] === details Type:: boolean Default:: + ---- false ---- No Example:: {blank} == services..image.name A human readable name for the docker image. Shows up in the `docker ps` output in the `IMAGE` column, among other places. [discrete] === details Type:: string Default:: + ---- {"_type":"literalExpression","text":"\"localhost/\" + config.service.name"} ---- No Example:: {blank} == services..image.nixBuild Whether to build this image with Nixpkgs' `dockerTools.buildLayeredImage` and then load it with `docker load`. By default, an image will be built with Nix unless `service.image` is set. See also `image.name`, which defaults to the service name. [discrete] === details Type:: boolean No Default:: {blank} No Example:: {blank} == services..image.rawConfig This is a low-level fallback for when a container option has not been modeled in the Arion module system. This attribute set does not have an appropriate merge function. Please use the specific `image` options instead. Run-time configuration of the container. A full list of the options is available in the https://github.com/moby/moby/blob/master/image/spec/v1.2.md#image-json-field-descriptions[Docker Image Specification v1.2.0]. [discrete] === details Type:: attribute set of unspecified value Default:: + ---- {} ---- No Example:: {blank} == services..nixos.build NixOS build products from `config.system.build`, such as `toplevel` and `etc`. This option is unused by default, because not all images use NixOS. One way to use this is to enable `nixos.useSystemd`, but the NixOS configuration can be used in other ways. [discrete] === details Type:: attribute set No Default:: {blank} Read Only:: {blank} No Example:: {blank} == services..nixos.configuration Modules to add to the NixOS configuration. This option is unused by default, because not all images use NixOS. One way to use this is to enable `nixos.useSystemd`, but the NixOS configuration can be used in other ways. [discrete] === details Type:: (list of unspecified value) or unspecified value convertible to it Default:: + ---- {} ---- No Example:: {blank} == services..nixos.evaluatedConfig Evaluated NixOS configuration, to be read by service-level modules. This option is unused by default, because not all images use NixOS. One way to use this is to enable `nixos.useSystemd`, but the NixOS configuration can be used in other ways. [discrete] === details Type:: attribute set No Default:: {blank} Read Only:: {blank} No Example:: {blank} == services..nixos.useSystemd When enabled, call the NixOS systemd-based init system. Configure NixOS with the `nixos.configuration` option. [discrete] === details Type:: boolean Default:: + ---- false ---- No Example:: {blank} == services..out.extendedInfo Information about a service to include in the Docker Compose file, but that will not be used by the `docker-compose`> command itself. It will be inserted in `x-arion.serviceInfo.`. [discrete] === details Type:: attribute set of unspecified value Default:: + ---- {} ---- No Example:: {blank} == services..out.service Raw input for the service in `docker-compose.yaml`. You should not need to use this option. If anything is missing, please contribute the missing option. This option is user accessible because it may serve as an escape hatch for some. [discrete] === details Type:: attribute set of unspecified value No Default:: {blank} No Example:: {blank} == services..service.build.context Locates a Dockerfile to use for creating an image to use in this service. See link:https://docs.docker.com/compose/compose-file/#context[Docker Compose#context] [discrete] === details Type:: null or string Default:: + ---- null ---- No Example:: {blank} == services..service.capabilities Enable/disable linux capabilities, or pick Docker's default. Setting a capability to `true` means that it will be "added". Setting it to `false` means that it will be "dropped". See link:https://docs.docker.com/compose/compose-file/#cap_add-cap_drop[Docker Compose#cap_add-cap_drop] Omitted and `null` capabilities will therefore be set according to Docker's link:https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities[default list of capabilities.] [discrete] === details Type:: attribute set of (null or boolean) Default:: + ---- {} ---- Example:: + ---- {"ALL":true,"NET_ADMIN":false,"SYS_ADMIN":false} ---- == services..service.command See link:https://docs.docker.com/compose/compose-file/#command[Docker Compose#command] [discrete] === details Type:: null or unspecified value Default:: + ---- null ---- No Example:: {blank} == services..service.container_name See link:https://docs.docker.com/compose/compose-file/#container_name[Docker Compose#container_name] [discrete] === details Type:: null or string Default:: + ---- null ---- No Example:: {blank} == services..service.defaultExec Container program and arguments to invoke when calling `arion exec ` without further arguments. [discrete] === details Type:: list of string Default:: + ---- ["/bin/sh"] ---- No Example:: {blank} == services..service.depends_on See link:https://docs.docker.com/compose/compose-file/#depends_on[Docker Compose#depends_on] [discrete] === details Type:: (list of string) or attribute set of (submodule) Default:: + ---- [] ---- No Example:: {blank} == services..service.devices See link:https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities[`docker run --device` documentation] See link:https://docs.docker.com/compose/compose-file/#devices[Docker Compose#devices] [discrete] === details Type:: list of string Default:: + ---- [] ---- No Example:: {blank} == services..service.dns See link:https://docs.docker.com/compose/compose-file/#dns[Docker Compose#dns] [discrete] === details Type:: list of string Default:: + ---- [] ---- Example:: + ---- ["8.8.8.8","8.8.4.4"] ---- == services..service.entrypoint See link:https://docs.docker.com/compose/compose-file/#entrypoint[Docker Compose#entrypoint] [discrete] === details Type:: null or string Default:: + ---- null ---- No Example:: {blank} == services..service.env_file See link:https://docs.docker.com/compose/compose-file/#env_file[Docker Compose#env_file] [discrete] === details Type:: list of string Default:: + ---- [] ---- No Example:: {blank} == services..service.environment See link:https://docs.docker.com/compose/compose-file/#environment[Docker Compose#environment] [discrete] === details Type:: attribute set of (string or signed integer) Default:: + ---- {} ---- No Example:: {blank} == services..service.expose See link:https://docs.docker.com/compose/compose-file/#expose[Docker Compose#expose] [discrete] === details Type:: list of string Default:: + ---- [] ---- No Example:: {blank} == services..service.external_links See link:https://docs.docker.com/compose/compose-file/#external_links[Docker Compose#external_links] [discrete] === details Type:: list of string Default:: + ---- [] ---- No Example:: {blank} == services..service.extra_hosts See link:https://docs.docker.com/compose/compose-file/#extra_hosts[Docker Compose#extra_hosts] [discrete] === details Type:: list of string Default:: + ---- [] ---- No Example:: {blank} == services..service.healthcheck See link:https://docs.docker.com/compose/compose-file/#healthcheck[Docker Compose#healthcheck] [discrete] === details Type:: submodule No Default:: {blank} No Example:: {blank} == services..service.healthcheck.interval See link:https://docs.docker.com/compose/compose-file/#healthcheck[Docker Compose#healthcheck] [discrete] === details Type:: string Default:: + ---- "30s" ---- Example:: + ---- "1m" ---- == services..service.healthcheck.retries See link:https://docs.docker.com/compose/compose-file/#healthcheck[Docker Compose#healthcheck] [discrete] === details Type:: signed integer Default:: + ---- 3 ---- No Example:: {blank} == services..service.healthcheck.start_period See link:https://docs.docker.com/compose/compose-file/#healthcheck[Docker Compose#healthcheck] [discrete] === details Type:: string Default:: + ---- "0s" ---- Example:: + ---- "30s" ---- == services..service.healthcheck.test See link:https://docs.docker.com/compose/compose-file/#healthcheck[Docker Compose#healthcheck] [discrete] === details Type:: null or (list of string) Default:: + ---- null ---- Example:: + ---- ["CMD","pg_isready"] ---- == services..service.healthcheck.timeout See link:https://docs.docker.com/compose/compose-file/#healthcheck[Docker Compose#healthcheck] [discrete] === details Type:: string Default:: + ---- "30s" ---- Example:: + ---- "10s" ---- == services..service.hostStoreAsReadOnly Adds a ':ro' (read-only) access mode to the host nix store bind mount. [discrete] === details Type:: boolean Default:: + ---- true ---- No Example:: {blank} == services..service.hostname Analogous to the `docker run` counterpart. See link:https://docs.docker.com/compose/compose-file/#domainname-hostname-ipc-mac_address-privileged-read_only-shm_size-stdin_open-tty-user-working_dir[Docker Compose#domainname-hostname-ipc-mac_address-privileged-read_only-shm_size-stdin_open-tty-user-working_dir] [discrete] === details Type:: null or string Default:: + ---- null ---- No Example:: {blank} == services..service.image See link:https://docs.docker.com/compose/compose-file/#image[Docker Compose#image] [discrete] === details Type:: string No Default:: {blank} No Example:: {blank} == services..service.labels See link:https://docs.docker.com/compose/compose-file/#labels[Docker Compose#labels] [discrete] === details Type:: attribute set of string Default:: + ---- {} ---- Example:: + ---- {"com.example.foo":"bar","traefik.enable":"true","traefik.http.routers.my-service.entrypoints":"web","traefik.http.routers.my-service.rule":"Host(`my-service.localhost`)"} ---- == services..service.links See link:https://docs.docker.com/compose/compose-file/#links[Docker Compose#links] [discrete] === details Type:: list of string Default:: + ---- [] ---- No Example:: {blank} == services..service.name The name of the service - `` in the composition-level `services.` [discrete] === details Type:: string No Default:: {blank} Read Only:: {blank} No Example:: {blank} == services..service.network_mode See link:https://docs.docker.com/compose/compose-file/#network_mode[Docker Compose#network_mode] [discrete] === details Type:: null or string Default:: + ---- null ---- No Example:: {blank} == services..service.networks See link:https://docs.docker.com/compose/compose-file/#networks[Docker Compose#networks] [discrete] === details Type:: null or (list of string) Default:: + ---- null ---- No Example:: {blank} == services..service.ports Expose ports on host. "host:container" or structured. See link:https://docs.docker.com/compose/compose-file/#ports[Docker Compose#ports] [discrete] === details Type:: list of unspecified value Default:: + ---- [] ---- No Example:: {blank} == services..service.privileged Analogous to the `docker run` counterpart. See link:https://docs.docker.com/compose/compose-file/#domainname-hostname-ipc-mac_address-privileged-read_only-shm_size-stdin_open-tty-user-working_dir[Docker Compose#domainname-hostname-ipc-mac_address-privileged-read_only-shm_size-stdin_open-tty-user-working_dir] [discrete] === details Type:: null or boolean Default:: + ---- null ---- No Example:: {blank} == services..service.restart See link:https://docs.docker.com/compose/compose-file/#restart[Docker Compose#restart] [discrete] === details Type:: null or string Default:: + ---- null ---- No Example:: {blank} == services..service.stop_signal See link:https://docs.docker.com/compose/compose-file/#stop_signal[Docker Compose#stop_signal] [discrete] === details Type:: null or string Default:: + ---- null ---- No Example:: {blank} == services..service.sysctls See link:https://docs.docker.com/compose/compose-file/#sysctls[Docker Compose#sysctls] [discrete] === details Type:: attribute set of (string or signed integer) Default:: + ---- {} ---- No Example:: {blank} == services..service.tmpfs See link:https://docs.docker.com/compose/compose-file/#tmpfs[Docker Compose#tmpfs] [discrete] === details Type:: list of string Default:: + ---- [] ---- No Example:: {blank} == services..service.tty Analogous to the `docker run` counterpart. See link:https://docs.docker.com/compose/compose-file/#domainname-hostname-ipc-mac_address-privileged-read_only-shm_size-stdin_open-tty-user-working_dir[Docker Compose#domainname-hostname-ipc-mac_address-privileged-read_only-shm_size-stdin_open-tty-user-working_dir] [discrete] === details Type:: null or boolean Default:: + ---- null ---- No Example:: {blank} == services..service.useHostNixDaemon Make the host Nix daemon available. [discrete] === details Type:: boolean Default:: + ---- false ---- No Example:: {blank} == services..service.useHostStore Bind mounts the host store if enabled, avoiding copying. [discrete] === details Type:: boolean Default:: + ---- false ---- No Example:: {blank} == services..service.user Analogous to the `docker run` counterpart. See link:https://docs.docker.com/compose/compose-file/#domainname-hostname-ipc-mac_address-privileged-read_only-shm_size-stdin_open-tty-user-working_dir[Docker Compose#domainname-hostname-ipc-mac_address-privileged-read_only-shm_size-stdin_open-tty-user-working_dir] [discrete] === details Type:: null or string Default:: + ---- null ---- No Example:: {blank} == services..service.volumes See link:https://docs.docker.com/compose/compose-file/#volumes[Docker Compose#volumes] [discrete] === details Type:: list of unspecified value Default:: + ---- [] ---- No Example:: {blank} == services..service.working_dir Analogous to the `docker run` counterpart. See link:https://docs.docker.com/compose/compose-file/#domainname-hostname-ipc-mac_address-privileged-read_only-shm_size-stdin_open-tty-user-working_dir[Docker Compose#domainname-hostname-ipc-mac_address-privileged-read_only-shm_size-stdin_open-tty-user-working_dir] [discrete] === details Type:: null or string Default:: + ---- null ---- No Example:: {blank}