Dockerfile:无法计算缓存键:"/nginx.conf"未找到:未找到



我正在制作Blazor Wasm (ASP)。网络核心组成通常3项目托管客户端,服务器和共享)应用程序,我想部署Linux使用码头工人。我正在复制nginx.conf文件到服务器项目根文件夹,但当尝试发布到Azure应用程序服务容器时,我得到:

计算缓存键失败:"/nginx.conf"Not found: Not found

这是我的Dockerfile:
FROM mcr.microsoft.com/dotnet/aspnet:3.1 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/sdk:3.1 AS build
WORKDIR /src
COPY ["MyLocalShop/Server/MyLocalShop.Server.csproj", "MyLocalShop/Server/"]
COPY ["MyLocalShop.Services.MongoDb/MyLocalShop.Services.MongoDb.csproj", "MyLocalShop.Services.MongoDb/"]
COPY ["MyLocalShop.Server.Contracts/MyLocalShop.Server.Contracts.csproj", "MyLocalShop.Server.Contracts/"]
COPY ["MyLocalShop/Shared/MyLocalShop.Shared.csproj", "MyLocalShop/Shared/"]
COPY ["MyLocalShop/Client/MyLocalShop.Client.csproj", "MyLocalShop/Client/"]
RUN dotnet restore "MyLocalShop/Server/MyLocalShop.Server.csproj"
COPY . .
WORKDIR "/src/MyLocalShop/Server"
RUN dotnet build "MyLocalShop.Server.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "MyLocalShop.Server.csproj" -c Release -o /app/publish
FROM nginx:alpine AS final
WORKDIR /app
COPY --from=publish /app/publish .
COPY nginx.conf /etc/nginx/nginx.conf
ENTRYPOINT ["dotnet", "MyLocalShop.Server.dll"]

如果我运行dotnet publish命令来检查app/publish中的输出目录,我可以看到文件实际上在那里。我错过了什么?

当您要复制的文件也在.dockerignore

目录中时,可能会发生这种情况。

您是否将docker构建的上下文设置为包含nginx.conf的目录,而不是该目录下的目录?

。nginx.conf| -MyLocalShop

Bad:docker build -t something:latest -f ./DockerFile ./MyLocalShop

合格:docker build -t something:latest -f ./DockerFile .

可能你缺少nginx.conf

我也遇到了同样的问题。在我的docker文件中,我调整了nginx.conf的COPY命令。

来自:

COPY nginx.conf /etc/nginx/nginx.conf

:

COPY MyLocalShop/nginx.conf /etc/nginx/nginx.conf

最新更新