部署运维
本文聚焦 youlai-aspnet 的部署最短路径。
依赖服务
MySQL 与 Redis 为必需依赖:
| 服务 | 版本要求 | 说明 |
|---|---|---|
| MySQL | 5.7+ / 8.x | 数据存储 |
| Redis | 7.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.dllDocker 部署
构建镜像
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:latestIIS 部署(Windows 推荐)
前置条件
- 安装 IIS(控制面板 → 启用或关闭 Windows 功能 → 勾选 Internet Information Services)
- 安装 ASP.NET Core Hosting Bundle
部署步骤
发布项目:
bashdotnet publish src/Youlai.Api -c Release -r win-x64 --self-contained true -o ./publishIIS 新建站点:
- 物理路径指向
publish目录 - 端口设置为可用端口(如 8000)
- 应用程序池选择"无托管代码"
- 物理路径指向
访问 http://服务器IP:端口 即可。
配置覆盖建议
环境变量覆盖
生产环境优先使用环境变量覆盖敏感配置:
| 环境变量 | 说明 |
|---|---|
Database__ConnectionString | 数据库连接字符串 |
Redis__ConnectionString | Redis 连接字符串 |
Security__Session__Jwt__SecretKey | JWT 密钥 |
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
