Sign inSign up

nixue/notapp

By nixue

Updated 9 months ago

用于 .net 运行环境空容器,自定义app文件夹,环境变量中指定启动文件。

Image
Networking
Web servers
0

1.4K

nixue/notapp repository overview

NotCore - 预配置的 .NET 运行容器

项目简介

NotCore 是一个专为 .NET 应用程序设计的 Docker 容器镜像,提供了开箱即用的生产环境配置。该镜像经过精心优化,确保在容器化部署中提供稳定、安全且高效的运行环境。

主要特性

🚀 开箱即用
  • 预配置中国时区(Asia/Shanghai)
  • 内置应用程序用户和组权限管理
  • 预设工作目录结构(/app/Bin, /app/Log, /app/Temp)
  • 自动创建并设置目录权限
🔒 安全加固
  • 非 root 用户运行应用程序
  • 用户和组 ID 可自定义配置
  • 预设安全的文件权限(775)
  • 避免权限提升风险
🌐 环境优化
  • 支持 Alpine 和 Debian/Ubuntu 双系统
  • 自动检测操作系统并适配配置
  • 优化 .NET 容器化运行时参数
  • 支持完整的全球化设置
性能优化
  • 精简镜像体积(最小化额外包安装)
  • 优化 .NET GC 和线程池配置
  • 容器化环境特定优化
  • 多层缓存友好设计

技术栈

  • 基础镜像: mcr.microsoft.com/dotnet/aspnet:${DOTNET_VERSION}
  • 支持版本: .NET 8.0+(通过 ARG 可配置)
  • 操作系统: 自动适配 Alpine / Debian/Ubuntu
  • 架构: 支持 x64 架构

使用说明

快速开始
# 构建镜像(使用默认 .NET 10.0)
docker build -t notcore-app .

# 运行容器
docker run -d -p 8080:8080 --name myapp notcore-app

# 使用自定义用户ID
docker build --build-arg USER_ID=1001 --build-arg GROUP_ID=1001 -t notcore-app .
自定义配置

支持以下构建参数:

参数默认值说明
DOTNET_VERSION10.0.NET 运行时版本
USER_ID1000应用程序用户ID
GROUP_ID1000应用程序组ID
挂载卷支持

容器预创建以下目录,建议挂载持久化存储:

docker run -d \
  -p 8080:8080 \
  -v ./logs:/app/Log \
  -v ./temp:/app/Temp \
  notcore-app

目录结构

/app
├── Bin/          # 应用程序二进制文件
├── Log/          # 日志文件目录
└── Temp/         # 临时文件目录

环境变量

变量默认值说明
APP_DLLNotApp.dll主程序DLL名称
TZAsia/Shanghai时区设置
ASPNETCORE_URLShttp://*:8080监听地址
DOTNET_SYSTEM_GLOBALIZATION_INVARIANTfalse全球化支持

生产建议

  1. 安全实践:建议在运行时映射主机用户ID
  2. 资源限制:配置适当的内存和CPU限制
  3. 健康检查:建议添加应用级别的健康检查端点
  4. 日志收集:挂载Log目录到持久化存储或日志收集系统

构建示例

# 构建 .NET 8.0 版本
docker build --build-arg DOTNET_VERSION=8.0 -t notcore-app:8.0 .

# 构建带自定义用户ID
docker build \
  --build-arg DOTNET_VERSION=8.0 \
  --build-arg USER_ID=1500 \
  --build-arg GROUP_ID=1500 \
  -t notcore-app:custom .

许可证

本项目采用 MIT 许可证。

贡献指南

欢迎提交 Issue 和 Pull Request 来改进此项目。


NotCore - 让 .NET 容器化部署更简单、更安全!

Tag summary

Content type

Image

Digest

sha256:394f15878

Size

66.2 MB

Last updated

9 months ago

docker pull nixue/notapp:10.0-alpine