Skip to content

Zongsoft/hosting

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

190 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

部署

宿主程序只负责初始化运行时环境,作为插件的承载容器其自身并不含有具体的功能实现,我们通过将需要的插件及其相关附属(配置、证书)文件放置在 plugins 目录下的相应子目录中,这个行为即为部署。

运行 deploy.cmd (Windows)deploy.sh (Linux/Unix) 脚本以执行由部署文件 (*.deploy) 所定义的部署内容。

提示:部署脚本依赖 Zongsoft.Tools.Deployer 工具进行部署操作,有关该工具的使用说明,请参考其开源项目的相关文档:

部署文件

通常配置文件与特定的 产品项目部署平台 (如:单机、内网、私有云、公有云)环境 (如:开发、测试、生产) 等相关,所以应该将这些特定相关性的文件单独存放在 /hosting/.deploy 目录下,以便于统一管理与维护。

提示:更多部署项的用法请参考宿主程序目录中的 .deploy 部署文件。

配置文件

应该根据配置内容的环境相关性来定义配置文件,相应的环境名作为配置文件名的尾部。下面以 Zongsoft.Security 插件的配置文件为例进行说明:

  • Zongsoft.Security.option

    表示环境无关的配置文件,其配置作为其他环境有关性配置的缺省值;


  • Zongsoft.Security.test.option

    表示测试环境有关的配置文件,譬如该配置文件内的数据库连接字符串指向的是测试数据库并且使用的是内网地址等。

  • Zongsoft.Security.production.option

    表示生产环境有关的配置文件,譬如该配置文件内的数据库连接字符串指向的是生产数据库并且使用的是内网地址等。

  • Zongsoft.Security.development.option

    表示开发环境有关的配置文件,譬如该配置文件内的数据库连接字符串指向的是开发数据库并且使用的是内网地址等。


  • Zongsoft.Security.test-debug.option

    表示测试环境有关的配置文件,譬如该配置文件内的数据库连接字符串指向的是测试数据库并且使用的是外网地址等。

  • Zongsoft.Security.production-debug.option

    表示生产环境有关的配置文件,譬如该配置文件内的数据库连接字符串指向的是生产数据库并且使用的是外网地址等。

  • Zongsoft.Security.development-debug.option

    表示开发环境有关的配置文件,譬如该配置文件内的数据库连接字符串指向的是开发数据库并且使用的是外网地址等。

目录结构

位于 hosting 目录下的 .deploy 目录即为存放部署相关的各种资源的‘根’目录,其下级结构如下:

  • certificates 证书文件目录

    注:部署平台无关的证书文件。

  • {scheme} 部署方案

    • certificates 证书文件目录

      注:与部署方案有关联的证书文件。

    • options 配置文件目录

部署工具

在运行 deploy.cmd 脚本之前必须确保 deploy 工具已经安装,可通过下面命令查看已安装的全局工具:

dotnet tool list -g

如果尚未安装 deploy 工具,可通过下面命令进行全局安装:

dotnet tool install -g zongsoft.tools.deployer

如果已经安装了 deploy 工具,可通过下面命令进行升级更新:

dotnet tool update -g zongsoft.tools.deployer

💡 有关 Zongsoft.Tools.Deployer 部署工具的更多内部原理与实现,请访问该项目的开源网址:https://github.com/Zongsoft/tools/deployer


💡 如果需要本地编译调试 Zongsoft 框架源码,建议安装 Cake.Tool 工具:

dotnet tool install -g cake.tool

容器化

由于一些插件需要使用到 RedisMySQLPostgreSQL 等,因此可以容器化这些依赖的服务。

建议安装 Podman CLI 进行容器化处理,下面是它的下载地址:

💡 如果是 Windows 环境,请确保安装了 WSL-2

我们提供了按数据库分类的 Pod 文件:

  • zongsoft.pod-mysql.yaml 该文件定义了 RedisMySQL 容器,以及一个为 zongsoft 的数据库 (该库已初始化),确保开箱即用。
  • zongsoft.pod-postgres.yaml 该文件定义了 RedisPostgreSQL 容器,以及一个名为 zongsoft 的数据库 (该库已初始化),确保开箱即用。

💡 请确保 hosting 的同级位置有如下仓库,因为 zongsoft 数据库创建后会加载运行这些仓库中的 SQL 脚本,以完成建表和数据初始化。

操作步骤

  1. 打开 PowerShell 终端,使用如下命令启动 Pod 容器化服务
podman kube play --replace .\zongsoft.pod-mysql.yaml
podman kube play --replace .\zongsoft.pod-postgres.yaml
  1. 使用下列命令检查 Pod 是否成功运行

💡 启动成功后稍等一会再连接数据库,因为建表和初始化数据的 SQL 脚本可能需要运行一会。

podman pod ps
podman ps --pod -a

如果启动失败,可通过下列命令查看日志

podman logs zongsoft-redis
podman logs zongsoft-mysql
podman logs zongsoft-postgres

可通过下列命令进入指定容器的 bash

podman exec -it zongsoft-redis bash
podman exec -it zongsoft-mysql bash
podman exec -it zongsoft-postgres bash

可通过下列命令关闭 Pod

podman kube down .\zongsoft.pod-mysql.yaml
podman kube down .\zongsoft.pod-postgres.yaml

停止所有容器服务

podman stop -a

停止并移除所有容器及卷

podman rm -afv

About

Host programs, including: terminal, daemon, and web host programs.

Topics

Resources

License

Stars

Watchers

Forks

Contributors