# firstDemo **Repository Path**: my_dotnet_1/first-demo ## Basic Information - **Project Name**: firstDemo - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-03-18 - **Last Updated**: 2025-03-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # FirstNetDemo ## 环境准备 ``` MySQL: rm -rf /mnt/docker/mysql # 创建目录 mkdir -p /mnt/docker/mysql/{conf,data,logs} # 授权文件夹 chmod -R 777 /mnt/docker/mysql/{conf,data,logs} vim /mnt/docker/mysql/conf/my.cnf #==========设置配置=========== [mysqld] # 绑定监听地址(0.0.0.0 允许所有 IP 连接) bind-address = 0.0.0.0 # 设置字符集为 utf8mb4 character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci # 启用 GTID 复制(如果需要) gtid-mode=ON enforce-gtid-consistency=ON # 禁用 SSL(如果有 SSL 相关错误) skip-ssl # 日志相关配置 log-error = /var/log/mysql/error.log slow_query_log = 1 slow_query_log_file = /var/log/mysql/slow.log long_query_time = 2 [client] default-character-set = utf8mb4 #==========设置配置=========== docker run --restart always --name mysql \ -v /mnt/d/docker/mysql/data:/var/lib/mysql \ -v /mnt/d/docker/mysql/conf/my.cnf:/etc/mysql/my.cnf \ -v /mnt/d/docker/mysql/logs:/var/log/mysql \ -e MYSQL_ROOT_PASSWORD=123456 \ -p 3306:3306 -d mysql:8.0.41 RabbitMQ: rm -rf /mnt/docker/rabbitmq # 创建目录 mkdir -p /mnt/docker/rabbitmq/{conf,data,log} # 授权文件夹 chmod -R 777 /mnt/docker/rabbitmq/{conf,data,log} docker run --restart=always --name rabbitmq \ -p 15672:15672 -p 5672:5672 \ -e RABBITMQ_DEFAULT_USER=rabbit \ -e RABBITMQ_DEFAULT_PASS=rabbit \ -v /mnt/docker/rabbitmq/data:/var/lib/rabbitmq \ -v /mnt/docker/rabbitmq/conf:/etc/rabbitmq \ -v /mnt/docker/rabbitmq/log:/var/log/rabbitmq \ -d rabbitmq:3-management Redis: # 删除可能存在的旧目录(如果需要的话) rm -rf /mnt/docker/redis # 创建目录结构 mkdir -p /mnt/docker/redis/{conf,data,log} # 授权文件夹,确保可写入 chmod -R 777 /mnt/docker/redis/{conf,data,log} docker run --restart=always --name redis \ -v /mnt/docker/redis/data:/data \ -v /mnt/docker/redis/conf:/usr/local/etc/redis \ -v /mnt/docker/redis/log:/var/log/redis \ -p 6379:6379 \ -d redis:5.0.7 redis-server --appendonly yes ``` ## 依赖对框架与组件 + [NetCorePal Cloud Framework](https://github.com/netcorepal/netcorepal-cloud-framework) + [ASP.NET Core](https://github.com/dotnet/aspnetcore) + [EFCore](https://github.com/dotnet/efcore) + [CAP](https://github.com/dotnetcore/CAP) + [MediatR](https://github.com/jbogard/MediatR) + [FluentValidation](https://docs.fluentvalidation.net/en/latest) + [Swashbuckle.AspNetCore.Swagger](https://github.com/domaindrivendev/Swashbuckle.AspNetCore) ## 数据库迁移 ```shell # 安装工具 SEE: https://learn.microsoft.com/zh-cn/ef/core/cli/dotnet#installing-the-tools dotnet tool install --global dotnet-ef --version 9.0.0 # 强制更新数据库 dotnet ef database update -p src/FirstNetDemo.Infrastructure # 创建迁移 SEE:https://learn.microsoft.com/zh-cn/ef/core/managing-schemas/migrations/?tabs=dotnet-core-cli dotnet ef migrations add InitialCreate -p src/FirstNetDemo.Infrastructure ``` ## 关于监控 这里使用了`prometheus-net`作为与基础设施prometheus集成的监控方案,默认通过地址 `/metrics` 输出监控指标。 更多信息请参见:[https://github.com/prometheus-net/prometheus-net](https://github.com/prometheus-net/prometheus-net)