docker - 如何为 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"]
解决方案
我需要转到解决方案文件夹并运行
docker build -f PropMan/Dockerfile 。
Dockefile 位于项目文件夹中。
推荐阅读
- python - 想在python中添加“你想关闭程序”警告消息
- arrays - SetInterval 每次在 React Js 中显示默认状态值
- python - 如何以递增的顺序对文件进行排序,然后合并它们
- ruby - 切换 Ruby 版本
- python - 有没有办法在满足条件时跳过代码行
- python - 在程序中注册帐户
- python - len() 和 .nunique 与 pandas 数据帧的区别
- java - java.lang.NoSuchMethodError: com.google.api.client.http.HttpTransport.isMtls()Z
- flutter-web - 如何在flutter web的浏览器中禁用重新加载或刷新按钮?
- android - 如何通过 DataBinding 设置 ConstraintLayout Group 的可见性?