导出非容器包
场景
Rainbond 提供的应用模板导出机制,主要用来解决面向最终用户的应用交付问题。然而以往的应用模板的运行,始终无法免除对容器运行环境的要求。应用模 板扩展了导出非容器包的能力,专门用于解决最终交付环境中没有容器运行环境的场景中的应用交付问题。
适用的场景包括:
- 交付环境完全离线,导致无法正常安装 Docker 等容器运行时环境。
- 交付环境安全要求极高,不允许使用容器技术。
前提要求
- Rainbond 平台版本不低于 v5.8.1-release 。
- 导出的组件基于 源码构建 部署。
- 参考文档,完成应用发布流程,将应用发布到内部组件库。
导出非容器包
在内部组件库中找到已经发布好的应用模板,在 导出应用模板
页面中,点击导出 导出非容器包
。导出完成后,即可下载导出的非容器包。
得到的非容器包,命名格式为 {应用名称}-{应用模板版本号}-slug.tar.gz
。该包可以在任意 Linux 操作系统中解压,解压后的目录结构如下:
non-docker-demo-0.1-slug
├── golang
│ ├── golang.env
│ ├── golang.sh
│ └── golang-slug.tgz
├── java-demo
│ ├── java-demo.env
│ ├── java-demo.sh
│ └── java-demo-slug.tgz
└── non-docker-demo.sh
- 应用中包含的服务组件,以目录的形式分割,目录命名格式为组件的名字。
- 应用目录下,存在以应用名称命名的全局控制脚本。
- 服务组件目录下,存在单独控制组件的脚本。
- 服务组件目录下,存在以
{服务组件名}.env
结尾的环境变量配置文件,其中包含自定义环境变量、配置组环境变量、连接信息环境变量 以及定义监听端口的变量PORT
。
管理非容器包
通过全局控制脚本,可以批量控制应用下所有组件的启动、关闭、状态查询操作。
- 全局启动
[root@localhost non-docker-demo-0.1-slug]# ./non-docker-demo.sh start
Running app golang with process: 3984 go-demo ... Done
The environment variable $MEMORY_SIZE was not identified,The Java process will not be optimized....
Running app java-demo with process: 11472 java ... Done
- 组件状态查询
[root@localhost non-docker-demo-0.1-slug]# ./non-docker-demo.sh status
AppName Status PID
golang Active(Running) 3984
java-demo Active(Running) 11472
- 全局关闭
[root@localhost non-docker-demo-0.1-slug]# ./non-docker-demo.sh stop
Stopping app golang which running with pid 3984 ... Done
Stopping app java-demo which running with pid 11472 ... Done
通过每个服务组件文件夹内的控制脚本,可以管理单个服务组件的启动、关闭、状态查询操作。
- 启动服务组件
[root@localhost golang]# ./golang.sh start
Handling runtime environment ... Done
Handling custom environment ... Done
Running app golang, you can check the logs in file golang.log
We will start your app with ==> go-demo
Running app golang with process: 24033 go-demo ... Done
- 查询服务组件状态
[root@localhost golang]# ./golang.sh status
AppName Status PID
golang Active(Running) 24033