Docker で「キャッシュ キーの計算に失敗しました: 見つかりません」というエラーが発生します - Visual Studio では問題なく動作します 質問する

Docker で「キャッシュ キーの計算に失敗しました: 見つかりません」というエラーが発生します - Visual Studio では問題なく動作します 質問する

Visual Studio で Dockerfile を生成しました。Visual Studio では問題なく実行でき、今度は Windows 自体からビルドしようとしています ( docker build .、さまざまな組み合わせを試しました)。しかし、次のエラーが発生します。

> [build 3/7] COPY [client/client.csproj, client/]:
------
failed to compute cache key: "/client/client.csproj" not found: not found

コピーを変更すると、./client.csproj続行され、次のようになります。

 => ERROR [build 7/7] RUN dotnet build "client.csproj" -c Release -o /app/build                3.3s
------
> [build 7/7] RUN dotnet build "client.csproj" -c Release -o /app/build:
#15 0.652 Microsoft (R) Build Engine version 16.8.3+39993d9d for .NET
#15 0.652 Copyright (C) Microsoft Corporation. All rights reserved.
#15 0.652
#15 1.169   Determining projects to restore...
#15 1.483   All projects are up-to-date for restore.
#15 3.231 CSC : error CS5001: Program does not contain a static 'Main' method suitable for an entry point [/src/client/client.csproj]
#15 3.240
#15 3.240 Build FAILED.
#15 3.240
#15 3.240 CSC : error CS5001: Program does not contain a static 'Main' method suitable for an entry point [/src/client/client.csproj]
#15 3.240     0 Warning (5)
#15 3.240     1 Error (5)
#15 3.240
#15 3.240 Time Elapsed 00:00:02.51
-----
executor failed running [/bin/sh -c dotnet build "client.csproj" -c Release -o /app/build]: exit code: 1

何が間違っているのでしょうか?Docker LinuxをWindowsに変更し、ワールドワイド、すべてを再起動しました。

#See https://aka.ms/containerfastmode to understand how Visua...

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

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

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

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

ベストアンサー1

ファイルを確認してください.dockerignore。コピー コマンドに必要なファイルが無視され、キャッシュ キーの計算に失敗したというエラーが発生する可能性があります。

.dockerignoreパフォーマンスとセキュリティのために、docker に送信されるファイルを最小限に抑えるように構成できます。

* 
!dist/

最初の行は*すべてのファイルを禁止します。2行目はフォルダを!dist/許可しますdist

これにより、予期しない動作が発生する可能性があります。

FROM nginx:latest

# Fails because of * in .dockerignore
# failed to compute cache key: "/nginx.conf.spa" not found: not found
# Fix by adding `!nginx.conf.spa`  to .dockerignore
COPY nginx.conf.spa /etc/nginx/nginx.conf

RUN mkdir /app

# Works because of !dist/ in .dockerignore
COPY dist/spa /app

ベルトとサスペンダー。

おすすめ記事