Warum schlägt der Docker Build meines C#-Projekts fehl?
Ich versuche gerade mein C#-Projekt mit Docker zu bauen.
Ich baue aus dem Repo Root Context. Das Dockerfile liegt im Unterordner vom Gateway.WebApi.
Der Build schlägt leider mit einem Fehler fehl:
error MSB3030: Could not copy the file "/Jwt.Service.Shared/Configurations/appsettings.json" because it was not found
Das ist mein Dockerfile:
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
WORKDIR /src
COPY ["Gateway.WebApi/Gateway.WebApi.csproj", "./"]
COPY ["Gateway.Application/Gateway.Application.csproj", "../Gateway.Application/"]
COPY ["Entitys.Shared/Entitys.Shared.csproj", "../Entitys.Shared/"]
COPY ["Gateway.Domain/Gateway.Domain.csproj", "../Gateway.Domain/"]
COPY ["Gateway.Infrastructure/Gateway.Infrastructure.csproj", "../Gateway.Infrastructure/"]
COPY ["Jwt.Service.Shared/Jwt.Service.Shared.csproj", "../Jwt.Service.Shared/"]
RUN dotnet restore "Gateway.WebApi.csproj"
COPY . .
WORKDIR "/src/"
RUN dotnet build "Gateway.WebApi.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "Gateway.WebApi.csproj" -c Release -o /app/publish /p:UseAppHost=false
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Gateway.WebApi.dll"]
[1:14 PM]
Die Datei existiert und die Berechtigungen sind richtig. Ich bin auf Linux btw..
1 Antwort
Der Fehler sagt doch schon alles aus. Er kopiert deine appsettings.json nicht mit, da du einen flaschen Pfad angeben hast, oder die Datei nicht vorhanden ist. Ich kenne deine Projektstruktur auch nicht, was es mir jetzt auch nicht möglich macht, dir eine Lösung zu geben.
Woher ich das weiß:eigene Erfahrung – Leidenschaftlicher C# Entwickler und Foren Admin