跳到主要内容
版本:Next

程序环境

Websoft9 程序语言环境(Web Runtime)提供一个可靠的程序语言和应用服务器环境,以方便用户自行部署应用程序。它支持多种主流的开发语言,如 Java、Python、Node.js、PHP、Go、Ruby和 .NET 等。同时,它基于 Git 的工作流、DevOps 流程,支持域名绑定和 HTTPS 设置,加速应用部署流程,提供极佳的体验。

配置参数

在使用 Web Runtime 部署应用之前,需了解一下的基本配置参数:

通用参数

  • 部署方式:docker compose

  • 容器端口:8080

  • 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
    • 其他环境:/usr/src/app

个性配置

Web Runtime 不同的语言环境拥有更多个性的配置:程序根目录、包管理器、安装扩展、编译、命令行、容器操作系统等。

快速入门

Web Runtime 在 Websoft9 的技术体系中,也是作为一个应用对待,它与 WordPress 这种应用没有本质差异。

如果已经安装 Websoft9,且绑定了全局域名,那么通过 Web Runtime 运行程序及其简单:

启动环境

  1. 登录 Websoft9 控制台,打开:"应用商店" 的 运行环境 类目

  2. 任选一个环境应用,点击安装

  3. 等待安装完成,一个基于容器的程序运行环境已经启用

  4. 环境启动后,Websoft9 为它创建了三个资源:

    • 1 个环境容器
    • 1 个网关中的虚拟主机配置,将容器的 8080 端口转发到域名
    • 1 个 Git 仓库

准备源码

Web Runtime 不建议通过 FTP 或 SFTP 上传代码的方式,而是需要用户准备一个可以下载的源码,这样做的好处:

  • 消除了服务器上的文件操作,避免文件权限问题,更安全
  • 便于实现部署自动化

如果待部署的应用程序没有直接的下载地址,可以通过如下方式建一个下载通道:

  1. 通过 Websoft9 控制台的 仓库 菜单,新建一个公开仓库

  2. 将源码的压缩包上传到这个新建的仓库中

  3. 在仓库的呈现页面获取源码的公开下载地址

部署程序

部署应用程序,只需在环境容器中 通过命令 完成一下操作:

  • 上传代码:建议将程序代码以压缩包方式下载、解压到容器中的应用根目录
  • 编译构建:运行程序所需的编译或构建命令
  • 启动程序:运行程序的启动命令(确保运行在容器的 8080 端口,并允许外网访问)

Websoft9 为用户提供了两种运行命令的方式,就对应了两种部署模式:

自动部署

自动部署将相关的部署应用程序的命令写成一个脚本,让容器在启动时自动执行这个命令,从而实现持续部署:

  1. 登录 Websoft9 控制台,进入应用的管理界面的 编排 标签页

  2. 修改编排文件的 src/cmd.sh 脚本(它包含范例),插入个性化命令去掉范例的注释,重建应用后生效

手工部署

手工部署是用户登录到容器中,手工运行相关命令的部署方式:

  1. Websoft9 控制台或 docker exec 进入容器的命令模式

  2. 在容器中运行上传代码、编译构建等准备工作,具体范例参考:

  3. 后台方式启动应用程序:nohup Your Command > output.log 2>&1 &

    • Your Command 用实际命令替换,例如:nohup python manage.py runserver 0.0.0.0:8080 > output.log 2>&1 &
    • nohup 表示以后台运行,> output.log 2>&1 & 是指定日志路径
    • 程序在后台运行后,可以通过 cat output.log 查看日志
  4. 如果容器重启,需重新执行第 3 步命令

版本变更

Web Runtime 中修改版本极其方便:

  1. 通过编排文件的 variables.json 查询所有的版本

  2. 修改编排文件中 .env 中的 W9_VERSION 的值,重建应用生效。

开发部署一体化

作为开发者,可能需要将 Web Runtime 的一套流程转变为 DevOps 工作方式,即开发部署都通过 Websoft9 平台实现。

Websoft9 完全可以支持这个场景,下面介绍详细步骤:

  1. 进入 Websoft9 控制台的 仓库 功能区

  2. 新建一个仓库用户,为正在运行的 Web Runtime 仓库赋予此用户相应的权限

  3. 并将源码同步到 Web Runtime 仓库中的指定的目录下,例如:source

  4. 修改编排文件对应的部分:

    • docker-compose.yml 中增加 source 目录 volume mount 到容器
    • cmd.sh 中适用源码目录

问题与故障

容器镜像来源?

所有的容器镜像采用的是 Docker 官方维护或程序原厂提供的镜像,100% 原生性,没有做出任何修改。

如何进行个性化部署?

可以修改编排文件的:.env, docker-compose.yml, src/cmd.sh 实现

每个程序环境支持多个程序吗?

理论上是可以的,但不建议部署多个应用程序。

如何修改上传的文件权限?

需参考每个语言的个性配置方案。

没有数据库怎么办?

可以通过 Websoft9 控制台安装数据库

如何将程序的启动命设置到容器中?

有两种方式:

  • 将启动命令设置到编排文件 src/cmd.sh 中
  • 进入容器的命令模式,以后台方式运行启动命令(将运行程序的命令改成 nohup Your CMD here > output.log 2>&1 &

如何查看通过 nohup 运行的命令?

运行 jobs 即可

如何删除容器中正在运行的进程?

先运行 ps aux 命令查看,再运行 kill -9 PID