gpt4 book ai didi

docker - 如何在Docker容器中托管ASP.NET Core Web API

转载 作者:行者123 更新时间:2023-12-02 18:10:54 26 4
gpt4 key购买 nike

我最近开始学习docker,但是在托管一个使用asp.net core web api Windows容器创建的简单Visual Studio Code样板应用程序时遇到了问题。

我已在项目中设置docker并运行Docker Fie
但是当我运行docker build --tag helloapi .时,出现以下错误:

It was not possible to find any compatible framework version The specified framework 'Microsoft.AspNetCore.App', version '2.1.1' was not found. - Check application dependencies and target a framework version installed at: \ - Alternatively, install the framework version '2.1.1'.



我已经尝试了许多教程 this thisthis

我为asp.net核心 this thisthis尝试了不同的docker镜像。

dotnet核心版本:
 dotnet --info

.NET Core SDK (reflecting any global.json):
Version: 2.1.402

.NET Core SDKs installed:
2.1.402

.NET Core runtimes installed:
Microsoft.AspNetCore.All 2.1.4
Microsoft.AspNetCore.App 2.1.4
Microsoft.NETCore.App 2.1.4

helloapi.csproj文件
<Project Sdk="Microsoft.NET.Sdk.Web">

<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>

<ItemGroup>
<Folder Include="wwwroot\" />
</ItemGroup>

<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>

</Project>

Docker文件:
FROM microsoft/aspnetcore
ARG source
WORKDIR /app
EXPOSE 80
COPY ${source:-/publish} .
ENTRYPOINT ["dotnet", "HelloApi.dll"]

enter image description here

注意:我无法切换到 docker run -p 9000:80 helloapi,因为docker显示某些运行时错误,所以我正在使用 Linux Container,并且在Turn Windows功能中未启用 Windows Container

我无法弄清楚我在做什么错?

谁能指导我使用Windows容器中的 IIS Server托管 api的正确方法。

任何帮助都会很棒。

最佳答案

看起来像生成的dockerfile形式vs没有引用dotnet:2.1-aspnetcore-runtimedotnet:2.1-sdk

尝试这些步骤

将以下Dockerfile添加到您的解决方案文件夹中

FROM microsoft/dotnet:2.1-sdk AS build-env
WORKDIR /build
COPY . /build

#Restore
RUN dotnet restore ./HelloApi.sln

RUN dotnet publish ./HelloApi/ -o /publish --configuration Release

# Build runtime image
FROM microsoft/dotnet:2.1-aspnetcore-runtime
WORKDIR /app
COPY --from=build-env /publish/ .
ENTRYPOINT ["dotnet", "WebApp.dll"]

建立它
docker build -t app1 .
运行
docker run -p 8080:80 --name appcontainer1 app1
测试一下

浏览到 http://localhost:8080

关于docker - 如何在Docker容器中托管ASP.NET Core Web API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52960906/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com