Skip to content

部署运维

本文聚焦 youlai-aspnet 的部署最短路径。

依赖服务

MySQL 与 Redis 为必需依赖:

服务版本要求说明
MySQL5.7+ / 8.x数据存储
Redis7.x会话与缓存

发布应用

基础发布

bash
dotnet publish src/Youlai.Api -c Release -o ./publish

独立发布(无运行时依赖)

bash
# Windows x64
dotnet publish src/Youlai.Api -c Release -r win-x64 --self-contained true -o ./publish

# Linux x64
dotnet publish src/Youlai.Api -c Release -r linux-x64 --self-contained true -o ./publish

运行应用

bash
dotnet ./publish/Youlai.Api.dll

Docker 部署

构建镜像

dockerfile
# Dockerfile
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
WORKDIR /app
EXPOSE 8000

FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
WORKDIR /src
COPY . .
RUN dotnet publish "src/Youlai.Api/Youlai.Api.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=build /app/publish .
ENTRYPOINT ["dotnet", "Youlai.Api.dll"]
bash
docker build -t youlai-aspnet:latest .

运行容器

bash
docker run -d --name youlai-aspnet \
  -p 8000:8000 \
  -e ASPNETCORE_ENVIRONMENT=Production \
  -e Database__ConnectionString="Server=mysql;Port=3306;Database=youlai_admin;User=root;Password=123456" \
  -e Redis__ConnectionString="redis:6379" \
  youlai-aspnet:latest

IIS 部署(Windows 推荐)

前置条件

  1. 安装 IIS(控制面板 → 启用或关闭 Windows 功能 → 勾选 Internet Information Services)
  2. 安装 ASP.NET Core Hosting Bundle

部署步骤

  1. 发布项目:

    bash
    dotnet publish src/Youlai.Api -c Release -r win-x64 --self-contained true -o ./publish
  2. IIS 新建站点:

    • 物理路径指向 publish 目录
    • 端口设置为可用端口(如 8000)
    • 应用程序池选择"无托管代码"

访问 http://服务器IP:端口 即可。

配置覆盖建议

环境变量覆盖

生产环境优先使用环境变量覆盖敏感配置:

环境变量说明
Database__ConnectionString数据库连接字符串
Redis__ConnectionStringRedis 连接字符串
Security__Session__Jwt__SecretKeyJWT 密钥

appsettings.Production.json

json
{
  "Database": {
    "ConnectionString": "Server=prod-mysql;Port=3306;Database=youlai_admin;User=prod_user;Password=prod_password;"
  },
  "Redis": {
    "ConnectionString": "prod-redis:6379,password=redis_password"
  },
  "Security": {
    "Session": {
      "Jwt": {
        "SecretKey": "your-production-secret-key-at-least-32-characters"
      }
    }
  }
}

常用验证

  • Swagger 文档:http://localhost:8000/swagger
  • 健康检查:GET /api/v1/health

配置入口

  • 开发环境:src/Youlai.Api/appsettings.Development.json
  • 生产环境:src/Youlai.Api/appsettings.Production.json

基于 MIT 许可发布