NeuCharFramework (NCF)
  • NCF - NeuCharFramework
  • 项目

    • 准备
    • 基础库源码分析
    • 动态WebApiEngine
    • 部署
    • MCP (Model Context Protocol) 模块
    • Senparc.AI
  • 帮助

    • 在线资源
    • 问答社区
    • QQ群(147054579)
    • Senparc微信SDK
  • Gitee
  • GitHub
  • English
  • 简体中文
GitHub
  • NCF - NeuCharFramework
  • 项目

    • 准备
    • 基础库源码分析
    • 动态WebApiEngine
    • 部署
    • MCP (Model Context Protocol) 模块
    • Senparc.AI
  • 帮助

    • 在线资源
    • 问答社区
    • QQ群(147054579)
    • Senparc微信SDK
  • Gitee
  • GitHub
  • English
  • 简体中文
GitHub
  • NCF 概要

    • NCF - NeuCharFramework
    • 关于 NCF
    • 环境要求
    • 前后端分离模式
    • Xncf模块简介
  • 准备开发

    • 获取 NCF 模板源码
    • 使用 Visual Studio 运行 NCF
    • 使用 CLI 运行 NCF
    • 安装
    • 管理员登录
    • 管理员后台
    • appsettings.json 配置
    • 模块管理
    • 获取文档
  • 配置

    • 入口文件
    • 数据库设置
    • appsettings.json 配置
    • Docker
    • Dapr
    • 配置多租户
    • Redis 缓存
  • 模块化开发

    • NCF 模块化开发思想
    • Xncf 的构成
    • 创建第一个 Xncf 模块
    • Xncf 模块 Sample 详解
    • 实现自己的业务逻辑
    • 更新 Xncf 模块
    • 模块之间如何调用
    • 发布Xncf 模块到nuget.org
    • 更新基础库
    • Xncf 模块开发
    • 嵌入静态资源文件到NCF中
    • 发布本地Nuget包
    • 进阶
  • 数据库

    • 数据库设置
    • 多数据库支持
    • 指定数据库
    • 更新 Senparc.Service 项目的数据库迁移文件(Migrations)
    • 多数据库原理
    • 数据库停机坪(DatabasePlant)
    • 停机坪操作数据库迁移和更新
  • 单元测试

    • NCF 单元测试介绍
    • 开始开发
    • 进阶
    • 附录
  • Q&A

    • NCF名词解释
    • NCF常见问题
  • 新发布

    • 新功能
    • 升级指导
    • 日志

Docker

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

Docker配置

version: '3.4'

services:
  #mysql:
  #  image: mysql:latest
  #  ports:
  #   - "3307:3306"
  #  restart: always
  #  environment:
  #    MYSQL_ROOT_PASSWORD: "123456"

  redis:
    image: redis:latest
    ports:
    - "5379:6379"

  installer:
    image: ${DOCKER_REGISTRY-}installer
    build:
      context: .
      dockerfile: Senparc.Xncf.Installer/Dockerfile
    #depends_on:
    #  - mysql

  installer-dapr:
    image: "daprio/daprd:latest"
    command: [ "./daprd", "-app-id", "installer", "-app-port", "80" ]
    network_mode: "service:installer"
    depends_on:
      - installer

  accounts:
    image: ${DOCKER_REGISTRY-}accounts
    build:
      context: .
      dockerfile: Senparc.Xncf.Accounts/Dockerfile

  accounts-dapr:
    image: "daprio/daprd:latest"
    command: [ "./daprd", "-app-id", "accounts", "-app-port", "80" ]
    network_mode: "service:accounts"
    depends_on:
      - accounts

  senparc-client:
    image: ${DOCKER_REGISTRY-}senparcweb
    build:
      context: .
      dockerfile: Senparc.Web/Dockerfile

  senparc-client-dapr:
    image: "daprio/daprd:latest"
    command: ["./daprd","-app-id","senparc-client","-app-port","80"]
    network_mode: "service:senparc-client"
    depends_on:
      - senparc-client

Windows环境运行Docker

点击图标运行

点击镜像查看

添加项目到Docker配置中

当添加了Docker的支持后,会在项目中生成一个Dockerfile的文件

#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.

-- 使用dotnet6.0的sdk来进行编译
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
-- 设置工作目录为app
WORKDIR /app
-- 开放80端口
EXPOSE 80
-- 开放443端口
EXPOSE 443

-- 使用dotnet6.0的sdk来进行编译
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
-- 将项目编译到src
WORKDIR /src
-- 复制Senparc.Web.csproj项目到Senparc.Web目录下
COPY ["Senparc.Web/Senparc.Web.csproj", "Senparc.Web/"]
-- 执行dotnet restore的还原包命令
RUN dotnet restore "Senparc.Web/Senparc.Web.csproj"
-- 复制所有的文件
COPY . .
-- 定位工作目录到/src/Senparc.Web下
WORKDIR "/src/Senparc.Web"
-- 执行dotnet build命令,将Release的环境build到app/build目录中
RUN dotnet build "Senparc.Web.csproj" -c Release -o /app/build

-- 重命名build为publish目录
FROM build AS publish
-- 执行dotnet publish命令,将Release的环境publish到app/publish目录中
RUN dotnet publish "Senparc.Web.csproj" -c Release -o /app/publish

-- 最后
FROM base AS final
-- 定位工作目录为app
WORKDIR /app
-- 从publish目录复制文件到app/publish
COPY --from=publish /app/publish .
-- 进入项目执行dotnet Senparc.Web.dll
ENTRYPOINT ["dotnet", "Senparc.Web.dll"]
在 GitHub 上编辑此页
上次更新:
贡献者: MLTechnology
Prev
appsettings.json 配置
Next
Dapr