使用项目自动生成的dokcerfile第一次构建时把加载aps5.0失败无法找到加载的文件

第一次构建初始化项目自带的dockerfile,内容如下:

#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.

#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 AS build
#WORKDIR /src
#COPY ["WaterCloud.Web/WaterCloud.Web.csproj", "WaterCloud.Web/"]
#RUN dotnet restore "WaterCloud.Web/WaterCloud.Web.csproj"
#COPY . .
#WORKDIR "/src/WaterCloud.Web"
#RUN dotnet build "WaterCloud.Web.csproj" -c Release -o /app/build
#
#FROM build AS publish
#RUN dotnet publish "WaterCloud.Web.csproj" -c Release -o /app/publish
#
#FROM base AS final
#WORKDIR /app
#COPY --from=publish /app/publish .
#RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
#RUN echo 'Asia/Shanghai' >/etc/timezone
#ENTRYPOINT ["dotnet", "WaterCloud.Web.dll"]

在根目录按住shift同时右键打开powershell或者直接打开cmd命令面板,执行如下构建命令:

docker build -t yzzxWeb -f ./WaterCloud.Web/Dockerfile .

报错:

 => ERROR [internal] load metadata for mcr.microsoft.com/dotnet/core/sdk:5.0-buster                           0.2s
 => ERROR [internal] load metadata for mcr.microsoft.com/dotnet/core/aspnet:5.0-buster-slim                   0.2s
 => CANCELED [build 1/7] FROM mcr.microsoft.com/dotnet/core/sdk:5.0-buster                                    0.0s
 => => resolve mcr.microsoft.com/dotnet/core/sdk:5.0-buster                                                   0.0s
 => [internal] load build context                                                                             0.0s
 => ERROR [base 1/2] FROM mcr.microsoft.com/dotnet/core/aspnet:5.0-buster-slim                                0.0s
 => => resolve mcr.microsoft.com/dotnet/core/aspnet:5.0-buster-slim

这是由于在 docker 集线器上也提到了更多信息:

作为 .NET 5.0 版本的一部分,所有 .NET Docker 映像(包括 .NET Core 2.1 和 3.1)都已转换为下面描述的一组新的 Docker 存储库。将继续对旧存储库位置中支持的标记进行更新,以实现向后兼容性。请更新对这些新名称的任何存储库引用。有关详细信息,请参阅 .NET 5.0 存储库重命名公告。

解决方式:

FROM mcr.microsoft.com/dotnet/aspnet:5.0-buster-slim AS base

FROM mcr.microsoft.com/dotnet/sdk:5.0-buster-slim AS build

以上代码改成如下:

FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base

FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build

即去掉-buster-slim代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
可以的。下面是一个简单的实现例子: 首先,在 View 页面上,添加一个下拉框和文件上传控件,用于选择文件分类和上传文件: ``` @using (Html.BeginForm("UploadFile", "Home", FormMethod.Post, new { enctype = "multipart/form-data" })) { <div class="form-group"> @Html.Label("Select Category") @Html.DropDownList("SelectedCategory", new List<SelectListItem> { new SelectListItem { Text = "CategoryA", Value = "CategoryA" }, new SelectListItem { Text = "CategoryB", Value = "CategoryB" }, new SelectListItem { Text = "CategoryC", Value = "CategoryC" } }, "Select a Category", new { @class = "form-control" }) </div> <div class="form-group"> @Html.Label("Select File") <input type="file" name="File" /> </div> <button type="submit" class="btn btn-primary">Upload</button> } ``` 接下来,在 Controller 中,创建一个接受文件上传请求的方法 UploadFile,并在该方法中实现文件分类和保存: ``` public ActionResult UploadFile(HttpPostedFileBase file, string selectedCategory) { if (file != null && file.ContentLength > 0) { // 获取上传文件的扩展名 string fileExtension = Path.GetExtension(file.FileName); // 组合文件名 string fileName = Guid.NewGuid().ToString() + fileExtension; // 获取上传文件的保存路径 string savePath = Server.MapPath("~/UploadedFiles/" + selectedCategory + "/"); // 如果目录不存在,则创建 if (!Directory.Exists(savePath)) { Directory.CreateDirectory(savePath); } // 保存文件 file.SaveAs(savePath + fileName); // 重定向到上传成功页面 return RedirectToAction("UploadSuccess"); } // 如果没有选择文件,则返回错误信息 ModelState.AddModelError("", "Please select a file to upload."); return View(); } ``` 在上面的代码中,我们创建了一个保存路径,路径包括了用户选择的分类,然后再将上传的文件保存到该路径下。如果路径不存在,则会自动创建。最后,我们重定向到一个上传成功页面。需要注意的是,我们使用了 Guid 来生成唯一的文件名,以防止重名问题。 这就是一个简单的实现例子,你可以根据需要进行改进。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吱吱喔喔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值