我正在尝试使用引用解决方案中的一些其他项目的 Github Action 来构建和部署 .Net 8 Web API。我收到错误
“跳过项目 “/src/x.Auth.Application/x.Auth.Application.csproj” 因为没找到。”
这是我的 Docker 文件:
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
USER app
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
ARG BUILD_CONFIGURATION=Release
WORKDIR /src
COPY ["x.Auth.Api.csproj", "x.Auth.Api/"]
COPY ./nuget.config ./
RUN dotnet restore "./x.Auth.Api/./x.Auth.Api.csproj" --configfile nuget.config
WORKDIR "/src/x.Auth.Api"
COPY . .
RUN dotnet build "./x.Auth.Api.csproj" -c $BUILD_CONFIGURATION -o /app/build
FROM build AS publish
ARG BUILD_CONFIGURATION=Release
RUN dotnet publish "./x.Auth.Api.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "x.Auth.Api.dll"]
我想我还需要复制 Docker 文件中的引用。
COPY ["./x.Auth.Application/x.Auth.Application.csproj", "x.Auth.Api/"]
但是处理Docker文件时,找不到x.Auth.Application.csproj
错误:无法解决:无法计算缓存密钥:无法 计算 ref 的校验和 544d66h1-12d6-4034-81g2-acacd40905b6::5c6647p590crca9mqzatprf96a: “/x.Application/x.Auth.Application.csproj”:未找到
文件夹结构如下:
x/
x.Auth.Application/
|__x.Auth.Application.csproj
x.Auth.Api/
|__x.Auth.Api.csproj
|__DockerFile
我明白了
我更新了调用 Dockerfile 的上下文(Github Action)以指向父文件夹,并将 x.Auth.Api/ 添加到该 Docker 文件中的每个路径中