# 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