Docker容器中的ASP.NET API



我有一个新的webapi项目,它刚刚用dotnet工具创建,它正在用这个Dockerfile:创建的Docker容器中运行

FROM mcr.microsoft.com/dotnet/sdk:6.0-focal AS build
WORKDIR /src
COPY net-auth.csproj .
RUN dotnet restore
CMD ["dotnet", "watch", "run"]

我通过一个包含以下组成文件的卷来传递代码:

services:
api:
build:
dockerfile: dockerfile.dev.yml
tags:
- "jk/netauth:latest"
ports:
- "5000:5000"
volumes:
- .:/src

当容器启动时,我失去了IntelliSense,VSCode抱怨:

/usr/local/share/dotnet/sdk/6.0.302/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(267,5): Error: Package Microsoft.EntityFrameworkCore.Analyzers, version 6.0.9 was not found. It might have been deleted since NuGet restore. Otherwise, NuGet restore might have only partially completed, which might have been due to maximum path length restrictions.
[fail]: OmniSharp.MSBuild.ProjectManager
Attempted to update project that is not loaded: /Users/user/repos/net-auth/net-auth.csproj

我做错了什么?

我意识到不需要制作自己的镜像,并删除了API的dev dockerfile,我通过Docker构建了一个带有dotnet sdk的基本容器,如下所示:

api:
container_name: netauth
image: mcr.microsoft.com/dotnet/sdk:6.0
ports:
- 5000:5000
working_dir: /src
environment:
- ASPNETCORE_ENVIRONMENT=Development
- E__API__DB__HOST=edb_dev
volumes:
- ./api/src:/src
command: dotnet watch run --project net-auth.csproj

现在它似乎工作得很好,所以问题无论如何都解决了。

最新更新