Dockerfiles are the recipes for our images; the define the base image, software to be installed and give us the capability to set the various structure that our application needs.
In this section, we are going to look at how we can create a Docker file for our example API. Again, this is not going to be a comprehensive overview of how Dockerfiles work as there are many books and online resources that exist for that explicit purpose. What we will do is to look at the salient points that will give us the basics.
The first thing we are going to do is build our application code as when we package this into a Docker file we will be executing a binary, not using the go run
command. The image we are going to create will have only the software installed that we need to run our application. Limiting the software installed is a Docker best practice when creating images as it reduces the attack surface by only including what is necessary.