首页 > 解决方案 > 如何为 VS 2019 解决方案构建 Docker?

问题描述

我有一个带有 2 个项目的 VS 2019 解决方案:P1(标准库)和 P2(ASP.NET Core exe)。P2 包含一个 Dockerfile。我已将 Docker 文件复制到 up 文件夹,尝试构建运行 cmd 的 docker:

>docker build -f Dockerfile ..
Sending build context to Docker daemon  3.056GB
Step 1/18 : FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
 ---> 5d7a95ed1660
Step 2/18 : WORKDIR /app
 ---> Using cache
 ---> 6e8271ae3df9
Step 3/18 : EXPOSE 80
 ---> Using cache
 ---> e45066aa184b
Step 4/18 : EXPOSE 443
 ---> Using cache
 ---> 0bbce5ed4c30
Step 5/18 : FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
 ---> 925a86b607a3
Step 6/18 : WORKDIR /src
 ---> Using cache
 ---> e4af901c8e34
Step 7/18 : COPY ["PropMan/PropMan.csproj", "PropMan/"]
COPY failed: stat /var/lib/docker/tmp/docker-builder808977273/PropMan/PropMan.csproj: no such file or directory

如何解决?

目录结构

-Solution dir
--ChartJs.Blazor project
---ChartJs.Blazor.csproj
---ChartJs.Blazor files
--PropMan project
---PropMan.csproj
---PropMan files
---Dockerfie (it was created here but later I moved it to solution folder)
-Dockerfie

Dockerfile

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src
COPY ["PropMan/PropMan.csproj", "PropMan/"]
COPY ["ChartJs.Blazor/ChartJs.Blazor.csproj", "ChartJs.Blazor/"]
RUN dotnet restore "PropMan/PropMan.csproj"
COPY . .
WORKDIR "/src/PropMan"
RUN dotnet build "PropMan.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "PropMan.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "PropMan.dll"]

标签: dockervisual-studio-2019

解决方案


我需要转到解决方案文件夹并运行

docker build -f PropMan/Dockerfile 。

Dockefile 位于项目文件夹中。


推荐阅读