Have you read my previous post about .NET 7 and the new feature of dotnet publish? I recommend reading that post because I won't cover some steps.
You can try cloning from the
net7.0 branch from this repository.
DockerNetExample/DockerNetExample.csproj. We update the TargetFramework to
ContainerBaseImage. Normally, we don't add
ContainerBaseImage, but because currently still a preview version, I recommend adding it. We also can add
ContainerImageTagsto distinguish from the previous version.
<Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>net8.0</TargetFramework> <Nullable>enable</Nullable> <ImplicitUsings>enable</ImplicitUsings> <ContainerImageName>docker-net-example</ContainerImageName> <ContainerBaseImage>mcr.microsoft.com/dotnet/aspnet:8.0-preview</ContainerBaseImage> <ContainerImageTags>2.0.0;latest</ContainerImageTags> </PropertyGroup> </Project>
Now, let's run the dotnet publish command. Command:
dotnet publish --os linux --arch x64 /t:PublishContainer -c Release.
Checking the docker image.
docker image ls
I will introduce you to a Docker Compose. If you are using Docker Desktop, you already have Docker Compose bundled. More information about Docker Compose. You can create a file
version: "3.9" services: dotnet: image: "docker-net-example:2.0.0" ports: - 8000:80 environment: - ASPNETCORE_URLS=http://+
You can check the detailed PR here.
You can test using
curlor other tools.
If you have any feedback, feel free to share it with me in this post or raise an issue in the repository.