Win11系统Docker部署Blazor程序

1. 开发环境

  • Windows 11 家庭版,默认支持WSL2

2. Docker安装

安装Docker Desktop需要启用Win11的Linux子系统和虚拟机。以管理员身份运行命令行程序,执行如下命令:

  • 启用适用于 Linux 的 Windows 子系统
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
  • 启用虚拟机功能
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
  • 下载 Linux 内核更新包
wsl --update

再下载Docker Desktop安装程序,直接安装,重启系统即可。

3. Blazor发布

  • 用VS工具右击项目发布,发布设置如下:
    • 目标框架:net8.0
    • 部署模式:框架依赖
    • 目标运行时:可移植
  • 在发布后文件夹中添加Dockerfile文件,文件内容如下:
FROM mcr.microsoft.c
### 部署 Blazor Server 应用程序Docker 的过程 #### 准备工作 在 Ubuntu 系统中安装并配置 Docker容器部署的前提条件。如果系统已经存在旧版的 Docker 版本,则需要先移除这些版本以避免冲突。可以通过以下命令完成清理操作[^1]: ```bash sudo apt-get remove docker docker-engine docker-ce docker.io ``` 接着,按照官方文档中的指南重新安装最新版本的 Docker。 #### 创建 Blazor Server 应用程序 为了构建一个可运行于 Docker 中的应用程序,首先需创建一个新的 Blazor Server 项目。这通常可通过 .NET SDK 实现,因此确保已安装最新的 .NET SDK 和 Visual Studio Code 或其他支持 C# 开发的 IDE 工具[^4]。 执行如下命令生成新的 Blazor Server 应用程序: ```bash dotnet new blazorserver -o MyBlazorApp cd MyBlazorApp ``` #### 编写 Dockerfile 文件 对于 Blazor Server 应用程序而言,其基础架构依赖于 ASP.NET Core 运行时环境。为此,编写一份适合该场景的 `Dockerfile` 就显得尤为重要。下面是一个典型的用于打包和发布 Blazor Server 应用的 Dockerfile 示例[^2]: ```dockerfile # 使用 Microsoft 提供的基础镜像作为构建阶段 FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS base WORKDIR /app EXPOSE 80 # 设置构建环境 FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build WORKDIR /src COPY ["MyBlazorApp.csproj", "./"] RUN dotnet restore "MyBlazorApp.csproj" COPY . . RUN dotnet build "MyBlazorApp.csproj" -c Release -o /app/build # 发布应用程序至最终镜像 FROM build AS publish RUN dotnet publish "MyBlazorApp.csproj" -c Release -o /app/publish # 复制发布的文件回基础镜像 FROM base AS final WORKDIR /app COPY --from=publish /app/publish . ENTRYPOINT ["dotnet", "MyBlazorApp.dll"] ``` 上述脚本分为三个主要部分: 1. **Base Stage**: 基础镜像是用来托管实际应用的轻量级 ASP.NET Core 运行时环境。 2. **Build Stage**: 构建阶段负责恢复 NuGet 包、编译源代码等复杂任务。 3. **Publish & Final Stages**: 最终将优化后的二进制文件复制到最小化的生产环境中,并设置启动入口点。 #### 构建与推送 Docker 镜像 当 Dockerfile 准备就绪后,即可利用它来构建自定义的 Docker 镜像。假设当前目录下已有完整的项目结构及其对应的 Dockerfile 文件,则可以运行以下指令: ```bash docker build -t myblazorservice:v1 . ``` 成功构建之后,可以选择将其上传至远程仓库以便后续拉取使用[^3]: ```bash docker tag myblazorservice:v1 your-dockerhub-username/myblazorservice:v1 docker push your-dockerhub-username/myblazorservice:v1 ``` #### 启动容器实例 最后一步是在本地或其他服务器上基于所创建的镜像启动服务容器: ```bash docker run -d \ --name my-blazor-app \ -p 5000:80 \ your-dockerhub-username/myblazorservice:v1 ``` 这样便完成了整个流程——从准备环境直至正式上线的过程都涵盖了进来。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值