# Dockerfile

## Definitions

There are two `Dockerfile`s, one for each step of execution set in
the [definitions document][definitions-doc].

## Containers

- Build

Defined in `Dockerfile.build`

Has installed every program that is needed to build the code.
Gets the source, install the dependencies and makes the final binary
of our app.

The reason for us to have a container just for the building process is
that it demands lots of programs and dependencies to set up the Go
environment and build everything, which aren't needed in the server for
our app to run. Without it, the container for the running process would
be huge, full of useless binaries and softwares.

- Run

Defined in `Dockerfile.run`

This is the container that will run in the servers. Contains nothing,
but our app and what it need to make it run.
 
[definitions-doc]: https://bitbucket.org/nemt/nemt-portal-api/blob/master/docs/wiki/01%20-%20Definitions.md