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

时间:2020-07-27 15:46:37

标签: docker visual-studio-2019

我有一个带有两个项目的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"]

1 个答案:

答案 0 :(得分:0)

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

docker build -f PropMan / Dockerfile

文档文件位于项目文件夹中。