Docker - Build, Test, Publish
To simplify my deployment process I use Docker, many of my project use docker in some way or another. I like the flexibility I get from Docker to create my deployment artifacts, and by using Docker I don't have to remember how my artifacts are created. This article is for documenting my standard .NET Core Dockerfile that I can easily reference in the future without remembering what project I have used this kind of Dockerfile in before.
This article will mostly be an example Dockerfile with comments in line, look for the "##" the code section below for an explanation of what the line is doing. The one thing to notice is that this Dockerfile is broken up into three stages, the building of the NodeJS/Client side libraries, the building, testing, and publishing of the .NET Core application, and lastly combining it all into a single image. The runtime image is a very small, only generated artifacts, without contain the source or any build generated artifacts.