use*_*862 3 .net docker .net-core
发出命令时:docker build -t honda-api:build .
步骤 7/10:运行 dotnet Restore ---> 在 beedd0465f48 MSBUILD 中运行:错误 MSB1003:指定项目或解决方案文件。当前工作目录不包含项目或解决方案文件。
文件夹结构如下所示
Domain/
Honda.Domain/
Honda.Domain.csproj
API/
Honda.API/
Honda.API.csproj
Dockerfile
Run Code Online (Sandbox Code Playgroud)
Docker 文件内容
FROM mcr.microsoft.com/dotnet/core/sdk:3.1
WORKDIR /home/app
COPY . .
COPY ./Domain/Honda.Domain/Honda.Domain.csproj Domain/
COPY ./API/Honda.API/Honda.API.csproj API/
RUN dotnet restore
RUN dotnet publish ./Honda.API.csproj -o /publish/
WORKDIR /publish ENV ASPNETCORE_URLS=https://+:5001;http://+:5000
ENTRYPOINT ["dotnet", "Honda.API.dll"]
Run Code Online (Sandbox Code Playgroud)
如果您没有.sln
在根级别复制对所有项目进行分组的文件,则需要运行dotnet restore
每个项目目录或.csproj
文件,即:
RUN dotnet restore ./API
RUN dotnet restore ./API/Honda.API.csproj
Run Code Online (Sandbox Code Playgroud)
但是,我不会遵循您的方法,复制遵循相同项目结构的所有内容,然后复制.csproj
具有自定义文件的文件,最好保留所有内容,并遵循这种方法。
像这样的东西(另外,可能使用运行时映像来运行应用程序,而不是 sdk 映像,并使用Release
配置):
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
WORKDIR /app
# copy csproj and restore as distinct layers
COPY *.sln .
COPY ./Domain/Honda.Domain/*.csproj ./Domain/Honda.Domain/
COPY ./API/Honda.API/*.csproj ./API/Honda.API/
RUN dotnet restore
# copy everything else and build app
COPY . ./
WORKDIR /app/API/Honda.API
RUN dotnet publish -c Release -o publish
FROM mcr.microsoft.com/dotnet/aspnet:3.1
WORKDIR /app
COPY --from=build /app/API/Honda.API/publish ./
ENV ASPNETCORE_URLS=https://+:5001;http://+:5000
ENTRYPOINT ["dotnet", "Honda.API.dll"]
Run Code Online (Sandbox Code Playgroud)
我还没有对此进行测试,但希望您可以对其进行调整并修复它存在的任何小问题。
归档时间: |
|
查看次数: |
8349 次 |
最近记录: |