我有一个简单的 .net 8 控制台应用程序,我可以使用以下命令构建和创建容器。
dotnet 发布 /t:PublishContainer
我将其配置为不需要 Dockerfile 即可使用 csproj 文件中的所有所需信息进行构建。 但是我无法在 Docker 中从 Visual Studio 调试该项目。
下面是 .csproj 文件中的所有内容,使我能够构建并发布到本地 docker。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<IsPublishable>true</IsPublishable>
<EnableSdkContainerSupport>true</EnableSdkContainerSupport>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<ContainerRepository>whack-a-mole</ContainerRepository>
<ContainerBaseImage>my.com/custom/image:basedon-jammy</ContainerBaseImage>
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
<EnableSdkContainerDebugging>True</EnableSdkContainerDebugging>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.19.6" />
</ItemGroup>
</Project>
我还在项目文件夹中添加了一个 launchSettings.json 文件,其中包含以下内容,但仍然缺少一些内容
{
"profiles": {
"WhackAMole": {
"commandName": "Project"
},
"WSL": {
"commandName": "WSL2",
"distributionName": ""
},
"Run in Docker": {
"commandName": "Docker"
}
}
}