使用vs2019創建ASP.Net Core Web應用程式: 右側高級選項中有一項啟用Docker支持,勾選後vs會自動幫我們創建Dockerfile: 看一下Dockerfile的內容: #See https://aka.ms/containerfastmode to understand ho ...
- 使用vs2019創建ASP.Net Core Web應用程式:
- 右側高級選項中有一項啟用Docker支持,勾選後vs會自動幫我們創建Dockerfile:
- 看一下Dockerfile的內容:
#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
WORKDIR /app
EXPOSE 80
FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src
COPY ["WebApplication1/WebApplication1.csproj", "WebApplication1/"]
RUN dotnet restore "WebApplication1/WebApplication1.csproj"
COPY . .
WORKDIR "/src/WebApplication1"
RUN dotnet build "WebApplication1.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "WebApplication1.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "WebApplication1.dll"]
乍一看好像很完美。。。
- 下麵用docker build一下,通常的做法是:
docker build -t mywebapp .
然後進行到第6步就報錯了:COPY failed: stat /var/lib/docker/tmp/docker-builder893785636/WebApplication1/WebApplication1.csproj: no such file or directory
沒有這樣的文件或目錄,仔細一看COPY ["WebApplication1/WebApplication1.csproj", "WebApplication1/"]確實不對,WebApplication1這級目錄是多餘的。
然後我試著修改Dockerfile文件,最後怎麼改都沒能成功。。。
解決方案一:
- 把生成的Dockerfile文件移到上一級目錄,在上一級目錄執行
docker build -t mywebapp .
就可以了。
解決方案二:
- 在上一級目錄執行docker build並使用-f參數指定Dockerfile文件位置:
docker build -t mywebapp1 -f ./WebApplication1/Dockerfile .