# `mix nerves.artifact.build`
[🔗](https://github.com/nerves-project/nerves/blob/v2.0.0-pre.2/lib/mix/tasks/nerves.artifact.build.ex#L5)

Build a Nerves artifact in a container

This is used to build Nerves packages in between tagged releases.
Builds are run using the container provider found
on your computer or by setting the `NERVES_CONTAINER_TOOL` environment
variable to `docker`, `podman`, or `container`.

If this step fails, you can run `mix nerves.artifact.shell` to investigate
what went wrong. Configuration changes made in the shell are copied out of
the container when the shell exits.

Run `mix nerves.artifact.ls` to see the containers created by the Nerves tooling
and `mix nerves.artifact.purge` to delete them.

## Examples

Building from within a Nerves package:

```shell
$ cd nerves_system_rpi0
$ mix nerves.artifact.build
# On success, the resulting tarball will be in your ~/.nerves/dl directory.
```

Building a Nerves-aware dependency:

```shell
$ MIX_TARGET=rpi0 mix nerves.artifact.build nerves_system_rpi0
# On success, the resulting tarball will be in your ~/.nerves/dl directory
# and will be found when you run `MIX_TARGET=rpi0 mix firmware` the next
# time.
```

## Command line options

  * `--full` - Remove the existing build output before building

---

*Consult [api-reference.md](api-reference.md) for complete listing*
