dockerfile 中的 RUN 命令未执行

时间:2021-06-03 16:36:18

标签: visual-studio docker dockerfile

我正在使用带有 Docker 的 Visual Studio 2019 构建 dotnet5 API,以部署在 Linux 映像中。我需要向生成的 docker 映像添加一些本机依赖项,​​因此我在 dockerfile 中触发 app-get 命令:

FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
WORKDIR /src
COPY ["CourtBooking/CourtBooking.csproj", "CourtBooking/"]
RUN dotnet restore "CourtBooking/CourtBooking.csproj"
COPY . .
WORKDIR "/src/CourtBooking"
RUN dotnet build "CourtBooking.csproj" -c Release -o /app/build

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

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
RUN apt-get update \
    && apt-get install -y --allow-unauthenticated \
        libc6-dev \
        libgdiplus \
        libx11-dev \
     && rm -rf /var/lib/apt/lists/*
ENTRYPOINT ["dotnet", "CourtBooking.dll"]

然而,apt-get 永远不会运行,这是我构建的输出:

Build started...
1>------ Build started: Project: CourtBooking, Configuration: Debug Any CPU ------
1>Container warmup in progress – waiting for this to complete. See the Container Tools output pane for details.
1>docker exec -i b635c1a8516027a243af7d989247de40137a3feb3b4789d285175c390e050403 /bin/sh -c "if PID=$(pidof dotnet); then kill $PID; fi"
1>CourtBooking -> C:\Users\xxx\Documents\Visual Studio 2019\Projects\CourtBooking\CourtBooking\bin\Debug\net5.0\CourtBooking.dll
1>CourtBooking -> C:\Users\xxx\Documents\Visual Studio 2019\Projects\CourtBooking\CourtBooking\bin\Debug\net5.0\CourtBooking.Views.dll
1>docker build -f "C:\Users\xxx\Documents\Visual Studio 2019\Projects\CourtBooking\CourtBooking\Dockerfile" --force-rm -t courtbooking:dev --target base  --label "com.microsoft.created-by=visual-studio" --label "com.microsoft.visual-studio.project-name=CourtBooking" "C:\Users\xxx\Documents\Visual Studio 2019\Projects\CourtBooking"
1>#1 [internal] load build definition from Dockerfile
1>#1 sha256:8d74a7c202c616fa9ed19d5b13bfed8769dc90f9f14c8c523867204cbea1d071
1>#1 transferring dockerfile: 32B done
1>#1 DONE 0.0s
1>
1>#2 [internal] load .dockerignore
1>#2 sha256:9dfd1a7cd995c5bf764a4eea149ca6d97522e87779ff706849d5e2c2e14ae587
1>#2 transferring context: 35B done
1>#2 DONE 0.0s
1>
1>#3 [internal] load metadata for mcr.microsoft.com/dotnet/aspnet:5.0
1>#3 sha256:3b35130338ebb888f84ec0aa58f64d182f10a676a625072200f5903996d93690
1>#3 DONE 0.0s
1>
1>#5 [base 1/2] FROM mcr.microsoft.com/dotnet/aspnet:5.0
1>#5 sha256:31acc33a1535ed7869167d21032ed94a0e9b41bbf02055dc5f04524507860176
1>#5 DONE 0.0s
1>
1>#4 [base 2/2] WORKDIR /app
1>#4 sha256:56abde746b4f39a24525b2b730b2dfb6d9688bcf704d367c86a4753aefff33f6
1>#4 CACHED
1>
1>#6 exporting to image
1>#6 sha256:e8c613e07b0b7ff33893b694f7759a10d42e180f2b4dc349fb57dc6b71dcab00
1>#6 exporting layers done
1>#6 writing image sha256:c376a1ecfdc048bcd7d818fecc84f1a247a0b4be185ed5163b6d0d6f3b243463 done
1>#6 naming to docker.io/library/courtbooking:dev done
1>#6 DONE 0.0s
1>
1>Use 'docker scan' to run Snyk tests against images to find vulnerabilities and learn how to fix them
1>docker rm -f b635c1a8516027a243af7d989247de40137a3feb3b4789d285175c390e050403
1>b635c1a8516027a243af7d989247de40137a3feb3b4789d285175c390e050403
1>docker run -dt -v "C:\Users\xxx\vsdbg\vs2017u5:/remote_debugger:rw" -v "C:\Users\xxx\Documents\Visual Studio 2019\Projects\CourtBooking\CourtBooking:/app" -v "C:\Users\xxx\Documents\Visual Studio 2019\Projects\CourtBooking:/src/" -v "C:\Users\xxx\AppData\Roaming\Microsoft\UserSecrets:/root/.microsoft/usersecrets:ro" -v "C:\Users\xxx\AppData\Roaming\ASP.NET\Https:/root/.aspnet/https:ro" -v "C:\Users\xxx\.nuget\packages\:/root/.nuget/fallbackpackages2" -v "C:\Program Files\dotnet\sdk\NuGetFallbackFolder:/root/.nuget/fallbackpackages" -e "DOTNET_USE_POLLING_FILE_WATCHER=1" -e "ASPNETCORE_LOGGING__CONSOLE__DISABLECOLORS=true" -e "ASPNETCORE_ENVIRONMENT=Development" -e "ASPNETCORE_URLS=https://+:443;http://+:80" -e "NUGET_PACKAGES=/root/.nuget/fallbackpackages2" -e "NUGET_FALLBACK_PACKAGES=/root/.nuget/fallbackpackages;/root/.nuget/fallbackpackages2" -P --name CourtBooking --entrypoint tail courtbooking:dev -f /dev/null
1>cfb23946b8a058766ba9355ca72b739e8424f407afef12462cb53a865d1bbbb1
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

我正在 Win10 PRO v 20H2 上构建解决方案,使用 WSL2 Debian Linux XXX 5.4.72-microsoft-standard-WSL2 #1 SMP Wed Oct 28 23:40:43 UTC 2020 x86_64 GNU/Linux

Docker WSL2 config

相同的 dockerfile 在 Linux 机器上正确执行。有关如何解决此问题的任何提示?

0 个答案:

没有答案