基于程序环境部署应用
Websoft9 程序语言环境(Web Runtime)提供一个可靠的程序语言和应用服务器环境模板,以方便用户自行部署应用程序。它支持多种主流的开发语言,如 Java、Python、Node.js、PHP、Go、Ruby 和 .NET 等,也支持 Docker 镜像和静态网站部署。
快速了解
在使用 Web Runtime 部署应用之前,需了解环境的分类和基本配置参数:
场景分类
Websoft9 程序环境类应用包括如下几个类型:
模板类型 | 应用场景 | 同时是应用吗? |
---|---|---|
PHP, Node.js, Java, Python, Ruby 等程序环境 | Web应用;Web 开发框架 | 否 |
Apache, Nginx, Caddy 等 HTTP Server 模板 | 免构建的 HTML 静态网站 | 否 |
Docker 环境模板 | Docker 应用 | 否 |
Hugo, Jekyll, Gatsby, Hexo, Next.js 等静态网站模板 | 需构建的静态网站 | 是 |
Laravel, Django 等开发框架模板 | Web 开发框架 | 是 |
其中静态网站模板和开发框架模板本质上是应用,它们都是运行了一个供用户直接使用的程序。
工作原理
以上所有的程序环境类模板,都采用 GitOps 流程实现自动化部署,部署逻辑和使用方式是一致的:
- 程序环境模板运行起来之后,Websoft9 为之创建三个部署核心资源:Git 仓库,容器,网关域名配置项
- 遵循 “先运行,后修改” 的工作逻辑,即先将程序环境模板运行起来,然后再通过编排的方式配置部署的个性化设置
通用参数
-
编排方式:docker compose
-
容器端口:8080
-
Dockerfile(√):请参考 PHP 应用的 Dockerfile 模板
-
容器中手工运行命令(√)
-
自定义自动化命令:存储在编排文件 ./src/cmd.sh,挂载到容器的 /usr/local/bin/cmd.sh 目录
-
字符集:UTF-8
-
多版本:每个语言都支持多版本,合计有几十个可选的版本
-
应用根目录:进入容器后的默认的位置即应用根目录,可运行
pwd
查询- PHP:/var/www/html
- Jetty: /var/lib/jetty/webapps
- Tomee:/usr/local/tomee
- Tomee:/usr/local/tomcat
- Nginx:/usr/share/nginx/html
- Caddy:/srv
- Apache HTTP Server:/usr/local/apache2/htdocs
- 其他环境:/usr/src/app
个性配置
Web Runtime 不同的语言环境拥有更多个性的配置:程序根目录、包管理器、安装扩展、编译、命令行、容器操作系统等。
📄️ Java
配置选项
📄️ Node.js
配置选项
📄️ Python
配置选项
📄️ PHP
Websoft9 将 Docker 官方的 php 镜像以模板化的方式,集成到 Websoft9 控制台,实现自动化的部署和发布 PHP 应用程序。
📄️ Go
配置选项
📄️ .NET
配置选项
📄️ Ruby
配置选项
📄️ HTML
Websoft9 帮助用户使用 Apache 或 NGINX 或 Caddy 等容器实现 HTML/JS 静态网站的部署。
📄️ Docker
基于 Docker 模板环境部署镜像类应用,需要用户具备一定的 Docker Compose 知识,否则难以为继。
部署应用指南
Web Runtime 在 Websoft9 的技术体系中,也是作为一个应用对待,它与 WordPress 这种应用没有本质差异。
如果已经安装 Websoft9,且绑定了全局域名,那么通过 Web Runtime 运行程序及其简单:
启动环境
-
登录 Websoft9 控制台,打开:"应用商店" 的 运行环境 类目
-
任选一个环境应用,点击 "安装"
-
待安装完成后,一个基于 容器 的程序运行环境已经启动。此时,Websoft9 为它创建了三个资源:
- 1 个环境容器
- 1 个网关中的虚拟主机配置,将容器的 8080 端口转发到域名
- 1 个 Git 仓库
修改环境(可选)
启动环境后,可以根据需求对环境进行定制修改(也称之为应用编排),常见的场景包括:
- 替换 docker-compose.yml 默认容器的镜像标签,替换 demo 容器,运行目标容器
- 向 docker-compose.yml 中增加其他容器配置
- 向 .env 中增加环境变量,并保护前缀为 W9_ 的环境变量不被破坏
- 修改 .env 文件中的 W9_VERSION 的值,启用模板化安装中不可选的版本
定制修改后,重建应用后方可生效。
准备安装包
Web Runtime 需要 所有安装包都可以被下载,不建议使用 FTP 或 SFTP 上传代码的方式,这样做的好处:
- 消除了服务器上的文件操作,避免文件权限问题,更安全可靠
- 便于实现部署自动化
若软件包没有下载地址,需为之创建下载地址。参考教程:手动创建 Git 仓库以存储软件包
部署安装包
部署安装包从流程上看,主要是围绕目标容器,通过运行命令,完成以下三个步骤: