docker - Dockerfile:计算缓存键失败:“/nginx.conf”未找到:未找到
问题描述
我正在开发一个 Blazor Wasm(托管在通常的 3 个项目客户端、服务器和共享上的 ASP.Net 核心)应用程序,我想使用 docker 将其部署到 Linux。我正在将 nginx.conf 文件复制到服务器项目根文件夹,但是在尝试发布到 Azure App Service Containers 时,我得到:
无法计算缓存键:“/nginx.conf”未找到:未找到
这是我的 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
推荐阅读
- sql - SQL 查询从表中选择不存在于不同表开始和结束时间字段中的所有行?
- protractor - 如何从量角器中的中继器内的中继器中获取计数?
- javascript - 将国家代码转换为国家全名
- php - 如何按热门字段(文本字段)对聚合进行排序?或者是否有可能按文本字段对聚合进行排序(不使用_term)
- dart - 在颤动中解析Json
- deployment - 如何让 Tomcat 在完成部署 Web 应用程序的 .war 文件后运行命令
- javascript - 每次点击都想播放gif
- linux - 如何在各种单独的文件中分离与特定模式匹配的文件名和内容
- elasticsearch - 基于动态术语的排序结果
- javascript - 更新数组中数据的 Https 请求