Skip to main content

Dockerizing a CSharp

So, A simple dockerfile would look something like this

FROM mcr.microsoft.com/dotnet/sdk:7.0

COPY . /app

WORKDIR /app

RUN \["dotnet", "restore"\]

RUN \["dotnet", "build"\]

ENTRYPOINT \["dotnet", "run"\]

Our base image is mcr.microsoft.com/dotnet/sdk:7.0 , which is the dotNet SDK.

Next we cope everything and put it into /app.

here's what the project folder structure looks like:

|-modulescmds

|-Program.cs

|-dockerfile

|-project.csproj

Afterward we set the work directory to /app (any command eg: the next line, will be run in this folder)

Next we run dotnet restoredotnet run

Finally entrypoint is an alternative to the typical CMD, the differences are explained in this doc: https://www.docker.com/blog/docker-best-practices-choosing-between-run-cmd-and-entrypoint/

Finally we can build and run it like so

docker build -t imagename . 

docker run imagename