使用Docker-Compose部署fullstackhero .NET Starter Kit全栈项目指南
前言
在现代软件开发中,Docker已成为不可或缺的工具。本文将详细介绍如何使用Docker-Compose来部署fullstackhero .NET Starter Kit全栈项目,这是一个基于.NET技术栈的优秀启动模板,包含了WebAPI和多种数据库支持。
准备工作
在开始部署前,我们需要完成以下准备工作:
1. 安装Docker环境
- Windows用户需要安装Docker Desktop
- Linux/macOS用户需要安装Docker Engine
2. 配置HTTPS证书
.NET项目通常需要HTTPS证书来确保安全通信。执行以下命令创建开发证书:
dotnet dev-certs https -ep $env:USERPROFILE\.aspnet\https\cert.pfx -p password!
如果遇到证书已存在的错误,先清理现有证书:
dotnet dev-certs https --clean
然后重新执行证书创建命令。
3. 信任证书
为了让本地开发环境信任这个证书,执行:
dotnet dev-certs https --trust
项目架构解析
fullstackhero .NET Starter Kit提供了三种数据库支持方案:
- PostgreSQL(默认)
- Microsoft SQL Server
- MySQL
每种方案都有对应的Docker-Compose配置文件,结构清晰,便于选择。
部署指南
1. PostgreSQL方案(默认)
# 启动服务
docker-compose -f docker-compose.postgresql.yml up -d
# 停止服务
docker-compose -f docker-compose.postgresql.yml down
2. MSSQL方案
# 启动服务
docker-compose -f docker-compose.mssql.yml up -d
# 停止服务
docker-compose -f docker-compose.mssql.yml down
3. MySQL方案
# 启动服务
docker-compose -f docker-compose.mysql.yml up -d
# 停止服务
docker-compose -f docker-compose.mysql.yml down
部署成功后,API服务将在以下地址可用:
- HTTPS:
https://localhost:5100/swagger
- HTTP:
http://localhost:5010/swagger
环境变量详解
项目通过环境变量进行配置,以下是关键变量的说明:
变量名称 | 描述 | 示例值 |
---|---|---|
ASPNETCORE_ENVIRONMENT | 指定运行环境 | Development/Production |
ASPNETCORE_URLS | 服务监听端口 | http://+:5010;https://+:5100 |
ASPNETCORE_HTTPS_PORT | HTTPS端口 | 5100 |
DatabaseSettings__ConnectionString | 数据库连接字符串 | Server=postgres;Port=5432;... |
HangfireSettings__Storage__ConnectionString | Hangfire存储连接字符串 | Server=postgres;Port=5432;... |
DatabaseSettings__DBProvider | 数据库引擎类型 | postgresql/mssql/mysql |
HangfireSettings__Storage__StorageProvider | Hangfire存储引擎 | postgresql/mssql/mysql |
技术细节
-
镜像来源:项目默认使用公开的Docker镜像仓库中的
dotnet-webapi:latest
镜像 -
多数据库支持:通过不同的compose文件实现数据库切换,保持应用层代码不变
-
HTTPS支持:预配置了开发证书,便于本地安全测试
-
端口配置:同时支持HTTP和HTTPS端口,符合生产环境要求
常见问题解决
-
证书问题:如果遇到HTTPS证书错误,请确保执行了信任证书的步骤
-
端口冲突:检查5100和5010端口是否被其他应用占用
-
数据库连接失败:确认数据库容器已正常启动,检查连接字符串配置
最佳实践建议
-
生产环境部署时,建议替换开发证书为正式CA签发的证书
-
可以根据需要修改compose文件中的资源限制(CPU/内存)
-
考虑添加健康检查配置以确保服务可用性
-
对于关键业务系统,建议配置数据库的持久化存储
总结
通过本文的指导,您应该能够轻松地在本地使用Docker-Compose部署fullstackhero .NET Starter Kit项目。这个模板提供了完善的架构设计和多种数据库支持,是开发.NET全栈应用的理想起点。根据您的实际需求选择合适的数据库方案,并遵循最佳实践进行配置,可以快速搭建出健壮的企业级应用框架。