【发布时间】:2021-07-21 17:40:16
【问题描述】:
我阅读了一些关于如何为 asp.net 核心项目设置 docker 文件的文档。 我有一个名为 dsi.rest.app 的 rest api,我尝试创建一个 dockerfile。
我按照教程在 dsi.rest.app 文件夹中创建了一个 Dockerfile。以下文件夹包含我想要 dockerise 的解决方案。
FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
WORKDIR /DockerSource
# Copy csproj and restore as distinct layers
COPY *.sln .
COPY *.csproj ./
RUN dotnet restore
# Copy everything else and build website
COPY /. ./
WORKDIR /DockerSource/dsi.rest.app
# RUN dotnet publish -c release -o /DockerOutput/dsi.rest.app --no-restore
RUN dotnet build "dsi.rest.app.csproj" -c Release -o /DockerOutput/dsi.rest.app --no-restore
# Final stage / image
FROM mcr.microsoft.com/dotnet/aspnet:5.0
WORKDIR /DockerOutput/dsi.rest.app
COPY --from=build /DockerOutput/dsi.rest.app ./
ENTRYPOINT ["dotnet", "dsi.rest.app.dll"]
我尝试构建图像:
docker build --pull -t dsi.rest.rest .
我收到一条错误消息:
=> ERROR [build 8/8] RUN dotnet build "dsi.rest.app.csproj" -c Release -o /DockerOutput/dsi.rest.app --no-restore 0.5s
#15 0.505 MSBUILD : error MSB1009: Project file does not exist.
#15 0.505 Switch: dsi.rest.app.csproj
项目文件与 dockerfile 位于同一级别。 csproj 文件与 Dockerfile 位于同一文件夹级别。
我的 csproj 文件包含以下信息:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<UserSecretsId>4b7e5335-798e-4066-a795-83e772338899</UserSecretsId>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Bcl.AsyncInterfaces" Version="5.0.0" />
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="3.2.4" />
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.10.13" />
<PackageReference Include="MsgReader" Version="3.12.4" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.1.1" />
</ItemGroup>
<ItemGroup>
<Folder Include="Properties\PublishProfiles\" />
</ItemGroup>
</Project>
我运行了命令: dotnet build "dsi.rest.app.csproj" -c Release -o /DockerOutput/dsi.rest.app --no-restore 没有任何问题。它确实在 C:/DockerOutput/dsi.rest.app 中生成了我的应用程序
【问题讨论】:
标签: c# docker asp.net-core dockerfile