宿主程序只负责初始化运行时环境,作为插件的承载容器其自身并不含有具体的功能实现,我们通过将需要的插件及其相关附属(配置、证书)文件放置在 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
由于一些插件需要使用到 Redis、MySQL 或 PostgreSQL 等,因此可以容器化这些依赖的服务。
建议安装 Podman CLI 进行容器化处理,下面是它的下载地址:
💡 如果是 Windows 环境,请确保安装了 WSL-2。
我们提供了按数据库分类的 Pod 文件:
- zongsoft.pod-mysql.yaml 该文件定义了 Redis 和 MySQL 容器,以及一个为
zongsoft的数据库 (该库已初始化),确保开箱即用。 - zongsoft.pod-postgres.yaml 该文件定义了 Redis 和 PostgreSQL 容器,以及一个名为
zongsoft的数据库 (该库已初始化),确保开箱即用。
💡 请确保 hosting 的同级位置有如下仓库,因为
zongsoft数据库创建后会加载运行这些仓库中的 SQL 脚本,以完成建表和数据初始化。
- 打开 PowerShell 终端,使用如下命令启动 Pod 容器化服务
podman kube play --replace .\zongsoft.pod-mysql.yaml
podman kube play --replace .\zongsoft.pod-postgres.yaml- 使用下列命令检查 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