【问题标题】:can't build .net core API image in docker无法在 docker 中构建 .net 核心 API 映像
【发布时间】:2020-05-04 15:32:08
【问题描述】:

我正在尝试为 .net core 3.1 web api 项目构建映像,但无法构建映像 我被困在通过 dotnet restore 恢复项目包 我在使用 dotnet build 命令时卡住了(找不到解决方案或项目文件)

目录结构

https://i.stack.imgur.com/J7sMq.png

FROM mcr.microsoft.com/dotnet/core/sdk:3.1 as base
#FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-nanoserver-1903 AS base
WORKDIR /app

#copy all project and solution files
COPY ./SSFS.Service/.csproj ./SSFS.Service/
COPY ./SSF.EDM/.csproj ./SSF.EDM/
COPY ./API/.csproj ./API/
COPY ./.sln ./

WORKDIR /app/API
RUN dotnet restore "SSFAPI.csproj"
#copy rest of files
COPY . .
WORKDIR /app

#build the project to restore packages
RUN dotnet build --source "./SSFAPI.sln" -c Release -o /publish

#public the project to a folder
RUN dotnet publish --source "SSFAPI.sln" -c Release -o /publish

FROM base AS final
EXPOSE 80
WORKDIR /app
COPY --from=base /app/publish .

ENTRYPOINT ["dotnet", "SSFAPI.dll"] 

上面的输出如下

https://i.stack.imgur.com/xqoKv.png

如果我使用 dotnet 命令构建项目,则输出如下所示 输出如下

https://i.stack.imgur.com/t9bV5.png

【问题讨论】:

    标签: docker asp.net-core dockerfile


    【解决方案1】:

    Dockerfile 设置为从解决方案根目录运行。您可能正在项目目录(即 Dockerfile 实际所在的位置)中运行 docker build

    【讨论】:

    • 即使我从根目录运行它仍然会从 SSF.Service 文件夹中搜索 sln 文件,即 c:\app\SSF.Service\SSFAPI.sln
    • 那么运行这个 dockerfile 的正确方法是什么?
    猜你喜欢
    • 1970-01-01
    • 2019-11-12
    • 2021-12-24
    • 2019-03-17
    • 1970-01-01
    • 2019-04-29
    • 2020-05-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多