ASP.NET Core分层架构项目Docker化及数据库配置问题求助
ASP.NET Core分层架构项目Docker化及数据库配置问题求助
我刚接触Docker,完全搞不懂怎么给我的ASP.NET Core分层项目做镜像。我的项目分成了4个部分:API、领域层(Domain)、业务逻辑层(BLL)、数据访问层(DAL),根目录下每个以“Library”开头的文件夹里都有对应的.csproj文件。
现在我有两个核心困惑:一是Dockerfile该放在哪里,内容怎么写才合理?二是怎么搭配SQL Server数据库,让本地服务器能正常接收请求?
我试过的操作
一开始我把Dockerfile放在根目录,东拼西凑写了一段脚本,虽然能成功构建镜像、启动容器,但访问http://localhost:1433/时一直返回ERR_EMPTY_RESPONSE:
FROM mcr.microsoft.com/dotnet/sdk AS build WORKDIR /app COPY *.sln . COPY ./LibraryAPI/*.csproj ./LibraryAPI/LibraryAPI.csproj COPY ./Library.DAL/*.csproj ./Library.DAL/Library.DAL.csproj COPY ./Library.BLL/*.csproj ./Library.BLL/Library.BLL.csproj COPY ./Library.Domain/*.csproj ./Library.Domain/Library.Domain.csproj RUN dotnet restore "./LibraryAPI/LibraryAPI.csproj" COPY . ./ RUN dotnet publish -c release -o out FROM mcr.microsoft.com/dotnet/aspnet WORKDIR /app COPY --from=build /app/out . EXPOSE 1433 ENTRYPOINT ["dotnet", "LibraryAPI.dll"]
后来我把Dockerfile优化了一下,看起来简洁多了,但还是遇到同样的空响应问题:
FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build WORKDIR /source COPY . . RUN dotnet restore "./LibraryAPI/LibraryAPI.csproj" --disable-parallel RUN dotnet publish "./LibraryAPI/LibraryAPI.csproj" -c release -o /app --no-restore FROM mcr.microsoft.com/dotnet/aspnet:7.0 WORKDIR /app COPY --from=build /app ./ EXPOSE 5000 ENTRYPOINT ["dotnet","LibraryAPI.dll"]
我知道要完整解决方案有点贪心,但真的需要一些靠谱的建议:比如Dockerfile的结构怎么规划,还有怎么配置SQL Server数据库让请求能正常工作,麻烦各位大佬指点一下!
备注:内容来源于stack exchange,提问作者Telyonok
相关产品推荐
相关产品推荐

