Dockerize a C# Core Application With Dockerfile

Developing and Dockerizing C# applications is probably a process that any developer or DevOps engineer will need to go through.

Today we will cover the process of dockerizing a C# application using a Dockerfile. The result will produce a Docker image that runs a C# application every time a container is deployed from the image.

Structure

An essential part of Dockerizing a C# application is to first the files together so the build process works well.

Below I have my C# application directory, and inside, I created a file called Dockerfile.

Dockerfile

In the Dockerfile, I am creating a two-step build process. First, I am building the .NET application, and in the second part, I’m configuring the runtime components that will run the app.

FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
WORKDIR /src
COPY strongpass.csproj .
RUN dotnet restore
COPY . .
RUN dotnet publish -c release -o /app

FROM  mcr.microsoft.com/dotnet/runtime
WORKDIR /app

COPY --from=build /app .
ENTRYPOINT ["dotnet", "strongpass.dll"]

To build the image, I run this command.

docker build --tag strongpassnet .

To run the application, I will run the line below.

docker run --rm -it strongpassnet:latest

To learn more about building a Dockerfile visit this post.


Posted

in

,

by